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
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.
Tópicos
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-identity
comando.
-
Verifique as políticas do IAM relacionadas ao perfil ou usuário do IAM. É possível usar um dos seguintes métodos:
-
Teste as políticas do IAM com o IAM Policy Simulator.
-
Analise os diferentes tipos de política do IAM.
-
-
Se necessário, edite a política de usuário do IAM.
-
Verifique a política de filas e edite, se necessário.
-
-
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 GetQueueAttributes
API ou do console da fila em Criptografia.
-
Permissões necessárias para produtores:
{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "<Key ARN>" }
-
Permissões necessárias para consumidores:
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<Key ARN>" }
-
Permissões necessárias para acesso entre contas:
{ "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }
Você pode usar qualquer um dos seguintes para habilitar a criptografia para uma fila do Amazon SQS:
-
SSE-Amazon SQS (chave de criptografia criada e gerenciada pelo serviço Amazon SQS.)
-
AWS chave padrão gerenciada (alias/aws/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:
-
A entidade principal que pode executar ações.
-
As ações que podem ser executadas.
-
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 MyUser
do 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.