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á.
Solução de problemas de um erro de acesso negado no Amazon SQS
Os tópicos a seguir abordam as causas mais comuns de erros AccessDenied ou AccessDeniedException nas chamadas de API do Amazon SQS. Consulte mais informações sobre como solucionar esses erros em Como soluciono erros de “AccessDenied” ou “AccessDeniedException” 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.
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 a entidade principal do IAM que está fazendo a chamada de API do Amazon SQS. Se a entidade principal do IAM for da mesma conta, nem a política de filas do Amazon SQS nem a política do AWS Identity and Access Management (IAM) devem incluir permissões para autorizar explicitamente o acesso à ação.
-
Se o a entidade principal for uma entidade do IAM:
-
É possível identificar o perfil ou usuário do IAM no canto superior direito doConsole de gerenciamento da AWS ou usando o comando
aws sts get-caller-identity.
-
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 simulador de políticas do IAM.
-
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 a entidade principal for um serviço da AWS, a política de filas do Amazon SQS deve permitir explicitamente o acesso.
-
Se a entidade principal for 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 de políticas do Amazon SQS.
AWS Key Management ServicePermissões
Se a fila do Amazon SQS tiver a criptografia do lado do servidor (SSE) ativada com uma AWS KMS key gerenciada pelo cliente, as permissões deverão ser concedidas tanto aos produtores quanto aos consumidores. Para confirmar se uma fila está criptografada, é possível usar o atributo KmsMasterKeyId atributo da API GetQueueAttributes ou do console da fila em Criptografia.
-
Permissões para produtores exigidas:
{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" } -
Permissões para consumidores exigidas:
{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<Key ARN>" } -
Permissões para acesso entre contas exigidas:
{ "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }
Escolha uma das seguintes opções para habilitar a criptografia de uma fila do Amazon SQS:
-
SSE-Amazon SQS (chave de criptografia criada e gerenciada pelo serviço Amazon SQS.)
-
Chave padrão gerenciada pela AWS (alias/aws/sqs)
No entanto, se você estiver usando uma chave do KMS gerenciada pela AWS, não poderá modificar a política de chave padrão. Portanto, para conceder acesso a outros serviços e contas cruzadas, use a chave gerenciada pelo cliente. Isso permite que você edite a política de chave.
Política de endpoint da VPC
Se você acessar o Amazon SQS por meio de um endpoint da Amazon Virtual Private Cloud (Amazon VPC), a política de endpoint da VPC do Amazon SQS deverá permitir acesso. É possível criar uma política para endpoints da Amazon VPC para o Amazon SQS, em que 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 do IAM MyUser tem permissão para enviar mensagens para a fila MyQueue do Amazon SQS. Outras ações, usuários do IAM e recursos do Amazon SQS têm acesso negado por meio do endpoint da 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 controle de serviço da organização
Se a Conta da AWS pertence a uma organização, as políticas do AWS Organizations podem impedir que você acesse as filas do Amazon SQS. Por padrão, as políticas do AWS Organizations não bloqueiam nenhuma solicitação ao Amazon SQS. No entanto, verifique se as políticas do AWS Organizations não foram configuradas para bloquear o acesso às filas do Amazon SQS. Para obter instruções sobre como verificar as políticas do AWS Organizations, consulte Listar todas as políticas no Guia do usuário do AWS Organizations.