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 “AccessDenied” o “AccessDeniedException” en las llamadas a la API de Amazon SQS? en la Guía del Centro de conocimiento de AWS.

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 Consola de administración de AWS o utilice el comando aws sts get-caller-identity.

  • Si la entidad principal es un servicio de AWS, 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 ServicePermisos de

Si su cola de Amazon SQS tiene el cifrado del servidor (SSE) activado y una AWS KMS key administrada por el cliente, 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 de KMS administrada por AWS, 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 la política de puntos de conexión de VPC del ejemplo siguiente, se especifica que el usuario de IAM MyUser puede enviar mensajes a la cola MyQueue de Amazon SQS. 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 su Cuenta de AWS pertenece a una organización, las políticas de AWS Organizations pueden impedirle acceder a las colas de Amazon SQS. Las políticas de AWS Organizations no bloquean ninguna solicitud a Amazon SQS de forma predeterminada. Sin embargo, asegúrese de que sus políticas de AWS Organizations no estén configuradas para bloquear el acceso a las colas de Amazon SQS. Para obtener instrucciones sobre cómo comprobar sus políticas de AWS Organizations, consulte Enumeración de todas las políticas en la Guía del usuario de AWS Organizations.