Como resolvo erros de autorização ao tentar adicionar assinantes a um tópico do Amazon SNS?

3 minuto de leitura
0

Eu recebo erros de autorização do AWS Identity and Access Management (IAM) quando adiciono assinantes ao meu tópico do Amazon Simple Notification Service (Amazon SNS). Como resolvo esses erros?

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

Execute uma das seguintes ações, mas não as duas:

Anexe uma declaração de política do IAM à entidade do IAM que permita que a entidade execute a ação "sns:Subscribe".

-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

Usar políticas baseadas em identidade com o Amazon SNS

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos