Solución de problemas de error de acceso rechazado en Amazon SQS - Amazon Simple Queue Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de error de acceso rechazado en Amazon SQS

En los siguientes temas se describen las causas más comunes de los errores AccessDenied o AccessDeniedException en las llamadas a la API de Amazon SQS. Para obtener más información sobre cómo solucionar estos errores, consulte ¿Cómo soluciono los errores «» o «AccessDenied» en las llamadas a la API de Amazon SQS? AccessDeniedException en la Guía del Centro de AWS Conocimiento.

Ejemplos de mensajes de error:

An error occurred (AccessDenied) when calling the SendMessage operation: Access to
        the resource https://sqs.us-east-1.amazonaws.com/ is denied.

-o bien-

An error occurred (KMS.AccessDeniedException) when calling the SendMessage
        operation: User: arn:aws:iam::xxxxx:user/xxxx is not authorized to perform:
        kms:GenerateDataKey on resource: arn:aws:kms:us-east-1:xxxx:key/xxxx with an explicit
        deny.

Política de colas y política de IAM de Amazon SQS

Para comprobar si el solicitante tiene los permisos adecuados para realizar una operación de Amazon SQS, haga lo siguiente:

  • Identifique la entidad principal de IAM que realiza la llamada a la API de Amazon SQS. Si la entidad principal de IAM es de la misma cuenta, la política de colas de Amazon SQS o la política de AWS Identity and Access Management (IAM) deben incluir permisos que permitan explícitamente el acceso a la acción.

  • Si la entidad principal es una entidad de IAM:

    • Para comprobar su rol o usuario de IAM, consulte la esquina superior derecha de la AWS Management Console o utilice el comando aws sts get-caller-identity.

  • Si el principal es un AWS servicio, la política de colas de Amazon SQS debe permitir el acceso de forma explícita.

  • Si la entidad principal es una entidad principal multicuenta, tanto la política de colas de Amazon SQS como la política de IAM deben permitir el acceso de forma explícita.

  • Si la política utiliza un elemento de condición, compruebe que la condición restrinja el acceso.

importante

Una denegación explícita en cualquier política invalida todos los permisos concedidos. Estos son algunos ejemplos básicos de políticas de Amazon SQS.

AWS Key Management Service permisos

Si su cola de Amazon SQS tiene el cifrado del lado del servidor (SSE) activado y una opción gestionada por el cliente AWS KMS key, se deben conceder permisos tanto a los productores como a los consumidores. Para confirmar si una cola está cifrada, puede utilizar el atributo KmsMasterKeyId de la API GetQueueAttributes o la consola de colas, en Cifrado.

  • Permisos necesarios para los productores:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }
  • Permisos necesarios para los consumidores:

    { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<Key ARN>" }
  • Permisos necesarios para el acceso entre cuentas:

    { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }

Elija una de las siguientes opciones para habilitar el cifrado de una cola de Amazon SQS:

Sin embargo, si utiliza una clave KMS AWS administrada, no puede modificar la política de claves predeterminada. Por lo tanto, para proporcionar acceso a otros servicios y entre cuentas, utilice la clave administrada por el cliente. Esto le permite editar la política de claves.

Política de punto de conexión de VPC

Si accede a Amazon SQS a través de un punto de conexión de Amazon Virtual Private Cloud (Amazon VPC), la política de puntos de conexión de VPC de Amazon SQS debe permitir el acceso. Puede crear una política para los puntos de conexión de Amazon VPC correspondiente a Amazon SQS, en la que podrá especificar lo siguiente:

  1. La entidad principal que puede realizar acciones.

  2. Las acciones que se pueden realizar.

  3. Los recursos en los que se pueden llevar a cabo las acciones.

En el siguiente ejemplo, la política de puntos finales de la VPC especifica que el usuario MyUser de IAM puede enviar mensajes a la cola de Amazon SQS. MyQueue A otras acciones, a los usuarios de IAM y a los recursos de Amazon SQS se les niega el acceso a través del punto de conexión de VPC.

{ "Statement": [{ "Action": ["sqs:SendMessage"], "Effect": "Allow", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyQueue", "Principal": { "AWS": "arn:aws:iam:123456789012:user/MyUser" } }] }

Política de control de servicios de la organización

Si Cuenta de AWS pertenece a una organización, AWS Organizations las políticas pueden impedir que acceda a sus colas de Amazon SQS. De forma predeterminada, AWS Organizations las políticas no bloquean ninguna solicitud a Amazon SQS. Sin embargo, asegúrese de que sus AWS Organizations políticas no se hayan configurado para bloquear el acceso a las colas de Amazon SQS. Para obtener instrucciones sobre cómo comprobar sus AWS Organizations políticas, consulte Enumerar todas las políticas en la Guía del AWS Organizations usuario.