Solucionar um erro de acesso negado no Amazon SQS - Amazon Simple Queue Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solucionar um erro de acesso negado no Amazon SQS

Os tópicos a seguir abordam as causas AccessDenied ou AccessDeniedException erros mais comuns nas chamadas de API do Amazon SQS. Para obter mais informações sobre como solucionar esses erros, consulte Como soluciono erros de "" ou AccessDenied "AccessDeniedExceção” em chamadas de API do Amazon SQS? no Guia do Centro de AWS Conhecimento.

Exemplos de mensagens de erro:

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

- ou -

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 filas do Amazon SQS e política do IAM

Para verificar se o solicitante tem as permissões adequadas para realizar uma operação do Amazon SQS, faça o seguinte:

  • Identifique o diretor do IAM que está fazendo a chamada de API do Amazon SQS. Se o diretor do IAM for da mesma conta, a política de filas do Amazon SQS ou a política de AWS Identity and Access Management (IAM) devem incluir permissões para permitir explicitamente o acesso à ação.

  • Se o principal for uma entidade do IAM:

    • Você pode identificar seu usuário ou função do IAM verificando o canto superior direito do AWS Management Console ou usando o aws sts get-caller-identitycomando.

  • Se o principal for um AWS serviço, a política de filas do Amazon SQS deve permitir explicitamente o acesso.

  • Se o principal for um principal entre contas, tanto a política de filas do Amazon SQS quanto a política do IAM devem permitir explicitamente o acesso.

  • Se a política usar um elemento condicional, verifique se a condição restringe o acesso.

Importante

Uma negação explícita em qualquer política substitui uma permissão explícita. Aqui estão alguns exemplos básicos das políticas do Amazon SQS.

AWS Key Management Service permissões

Se sua fila do Amazon SQS tiver a criptografia do lado do servidor (SSE) ativada com um cliente gerenciado AWS KMS key, as permissões deverão ser concedidas tanto aos produtores quanto aos consumidores. Para confirmar se uma fila está criptografada, você pode usar o KmsMasterKeyId atributo da GetQueueAttributesAPI ou do console da fila em Criptografia.

Você pode usar qualquer um dos seguintes para habilitar a criptografia para uma fila do Amazon SQS:

No entanto, se você estiver usando uma chave KMS AWS gerenciada, não poderá modificar a política de chaves padrão. Portanto, para fornecer acesso a outros serviços e contas cruzadas, use a chave gerenciada pelo cliente. Isso permite que você edite a política de chaves.

Política de endpoint da VPC

Se você acessar o Amazon SQS por meio de um endpoint Amazon Virtual Private Cloud (Amazon VPC), a política de endpoint VPC do Amazon SQS deve permitir o acesso. Você pode criar uma política para endpoints Amazon VPC para Amazon SQS, onde você pode especificar o seguinte:

  1. A entidade principal que pode executar ações.

  2. As ações que podem ser executadas.

  3. Os recursos sobre os quais as ações podem ser realizadas.

No exemplo a seguir, a política de endpoint da VPC especifica que o usuário MyUserdo IAM tem permissão para enviar mensagens para a fila do Amazon SQS. MyQueue Outras ações, usuários do IAM e recursos do Amazon SQS têm acesso negado por meio do VPC endpoint.

{ "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 controle de serviços da organização

Se você Conta da AWS pertence a uma organização, AWS Organizations as políticas podem impedir que você acesse suas filas do Amazon SQS. Por padrão, AWS Organizations as políticas não bloqueiam nenhuma solicitação para o Amazon SQS. No entanto, certifique-se de que suas AWS Organizations políticas não tenham sido configuradas para bloquear o acesso às filas do Amazon SQS. Para obter instruções sobre como verificar suas AWS Organizations políticas, consulte Listar todas as políticas no Guia AWS Organizations do usuário.