Como resolvo erros de autorização ao tentar adicionar assinantes a um tópico do Amazon SNS?
Quero resolver erros de autorização do AWS Identity and Access Management (IAM) que recebo quando adiciono assinantes ao meu tópico do Amazon Simple Notification Service (Amazon SNS).
Breve descrição
Quando uma entidade do IAM tenta adicionar uma assinatura a um tópico do Amazon SNS sem as permissões de ação da API Inscrever, o SNS retorna o seguinte erro:
An error occurred (AuthorizationError) when calling the Subscribe operation: User: your_IAM_user_or_role is not authorized to perform: sns:Subscribe on resource: YOUR_SNS_TOPIC_ARN
**Observação:**A entidade do IAM pode ser um usuário ou um perfil do IAM.
Para resolver o erro, conceda à entidade do IAM permissão para executar a ação da API Inscrever no tópico do Amazon SNS.
Se você receber um erro semelhante que termine em uma "negação explícita"
Remova todas as declarações de política que neguem explicitamente o acesso da entidade do IAM ao recurso SNS.
Resolução
Se a entidade do IAM e o tópico do SNS estiverem em contas diferentes da AWS
Faça as duas coisas a seguir:
Anexe uma declaração de política do IAM à entidade do IAM que permita que a entidade execute a ação "sns:Subscribe"
Para obter instruções, consulte Adicionar e remover permissões de identidade do IAM. Anexe o seguinte exemplo de declaração de política do IAM:
Importante: substitua "YOUR_SNS_TOPIC_ARN" pelo nome do recurso da Amazon (ARN) do seu tópico do Amazon SNS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SNSSubscribePermission", "Effect": "Allow", "Action": "sns:Subscribe", "Resource": "YOUR_SNS_TOPIC_ARN" } ] }
Anexe uma declaração de política do Amazon SNS à política de acesso do seu tópico que permita que a entidade do IAM execute a ação "sns:Subscribe"
Para obter instruções, consulte Como edito a política de acesso do meu tópico do Amazon SNS?Anexe o seguinte exemplo de declaração de política do Amazon SNS:
Importante: substitua "YOUR_IAM USER/ROLE_ARN" pelo ARN da sua entidade do IAM. Substitua "YOUR_SNS_TOPIC_ARN" pelo ARN do seu tópico do Amazon SNS.
{ "Sid": "AllowIAMEntity", "Effect": "Allow", "Principal": { "AWS": "YOUR_IAM USER/ROLE_ARN " }, "Action": "sns:Subscribe", "Resource": "YOUR_SNS_TOPIC_ARN" }
Se a entidade do IAM e o tópico do SNS estiverem na mesma conta
Em seguida, faça o seguinte:
-ou-
Anexe uma declaração de política do Amazon SNS à política de acesso do seu tópico que permita que a entidade do IAM execute a ação "sns:Subscribe".
Para obter exemplos de declarações de política, consulte a seção Se a entidade do IAM e o tópico do SNS estiverem em contas diferentes da AWS deste artigo.
Certifique-se de que a política da entidade do IAM e a política de acesso do tópico do SNS não neguem explicitamente o acesso ao recurso SNS
Analise a política da entidade do IAM e a política de acesso do tópico do SNS. Em seguida, remova todas as declarações de política que neguem explicitamente o acesso da entidade do IAM ao recurso SNS.
Para obter mais informações, consulte A diferença entre negações explícitas e implícitas.
Informações relacionadas
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 3 anos