Como resolvo um “erro de autorização” ao tentar visualizar ou modificar os atributos de uma assinatura SQS entre contas no console do Amazon SNS?

3 minuto de leitura
0

Eu inscrevi minha fila do Amazon Simple Queue Service (Amazon SQS) em um tópico do Amazon Simple Notification Service (Amazon SNS) em uma conta diferente da AWS. Ao visualizar ou editar os atributos da minha assinatura entre contas no console do Amazon SNS, recebo um “erro de autorização” que preciso resolver.

Breve descrição

Se você criar uma assinatura de tópico do SNS para uma fila SQS a partir de uma conta que não é proprietária do tópico, a conta proprietária da fila SQS será proprietária da assinatura. Se você então visualizar ou editar atributos de assinatura do SNS na conta que criou o tópico do SNS, receberá um erro de autorização.

Observação: as permissões de visualização e edição relacionadas à assinatura não podem ser incluídas nas ações da Política de Tópicos do SNS. Em vez disso, use as soluções a seguir.

Resolução

Uso do console da AWS

  1. Abra o console do Amazon SNS na conta proprietária do tópico SNS.
  2. No painel de navegação, selecione Tópicos.
  3. Selecione o nome do tópico. Em seguida, na guia Assinaturas, copie o ID de assinatura da assinatura da fila SQS.
  4. Abra o console do Amazon SNS na conta que possui a fila SQS.
  5. Na opção do menu Assinaturas, selecione o ID de assinatura que você copiou na etapa 3.
  6. Visualize e edite os atributos da assinatura conforme necessário.

Uso do GetSubscriptionAttributes

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Visualize os atributos da assinatura usando GetSubscriptionAttributes na conta que foi usada para criar a assinatura usando a AWS Command Line Interface (AWS CLI) ou o SDK. Para executar esse comando, o usuário ou função do IAM deve ter permissões para as ações do SNS SetSubscriptionAttributes e GetSubscriptionAttributes.

O exemplo a seguir usa o GetSubscriptionAttributes da AWS CLI, usando SubscriptionArn como um parâmetro de solicitação. Para recuperar SubscriptionArn, use ListSubscriptionsByTopic.

aws sns get-subscription-attributes --subscription-arn arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
{
  "Attributes": {
    "Owner": "9876543210",
    "RawMessageDelivery": "false",
    "TopicArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS",
    "Endpoint": "example@amazon.com",
    "Protocol": "email",
    "PendingConfirmation": "false",
    "ConfirmationWasAuthenticated": "false",
    "SubscriptionArn": "arn:aws:sns:eu-central-1:1234567890:TestTopicSubOwnerSQS:53XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
   }
}

Exclua e recrie a assinatura

Se você quiser que a conta da AWS que possui o tópico do SNS controle os atributos da assinatura do tópico do SNS:

  1. Exclua a assinatura existente.
  2. Crie a mesma assinatura a partir da conta proprietária do tópico SNS.

A conta da AWS que possui o tópico SNS agora é proprietária do recurso de assinatura criado.

Informações relacionadas

Como recrio uma assinatura de tópico do Amazon SNS “excluída” para uma fila do Amazon SQS em outra conta da AWS?

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

Como resolvo erros de “AccessDeniedException” de HTTP 400 do Amazon SNS?

Como posso fazer com que minha assinatura do Amazon SQS receba com êxito uma notificação do meu tópico do Amazon SNS?

Por que recebo um erro de autorização quando tento inscrever minha função do Lambda no meu tópico do Amazon SNS?

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos