Como posso resolver o erro de operação de publicação no Amazon SNS?
Eu recebo um erro no Amazon Simple Notification Service (Amazon SNS). O erro acontece quando estou usando uma sub-rede e tento publicar um tópico do SNS a partir de uma instância do Amazon Elastic Compute Cloud (Amazon EC2) entre contas.
Breve descrição
Se você receber um erro de autorização ao chamar a operação Publicar, conclua as etapas da seção Verificar o perfil do IAM da instância do EC2 e as permissões da política de acesso do tópico do SNS.
Se você tiver problemas com um tópico do SNS que está usando criptografia do lado do servidor e receber um erro "KMSAccessDenied", conclua as etapas da seção Verificar as configurações da chave do KMS e as permissões do perfil do IAM do EC2.
Observação: se a sua instância do EC2 não conseguir se conectar à Internet com um gateway da Internet, consulte Por que minha instância do Amazon EC2 não consegue se conectar à Internet usando um gateway da Internet?
Resolução
Verifique o perfil do IAM da instância do EC2 e as permissões da política de acesso do tópico do SNS
As permissões do perfil do AWS Identity and Access Management (IAM) configuradas incorretamente para sua instância do EC2 e a política de acesso de tópicos do Amazon SNS podem causar o seguinte erro:
"An error occurred (AuthorizationError) when calling the Publish operation: User: arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role/i-0123456789f804d is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-2:123456789012:cross-account-ec2-sns."
Para resolver esse erro, consulte Como faço para publicar em um tópico do Amazon SNS a partir de uma instância do Amazon EC2 entre contas usando um perfil do IAM do EC2?
Verifique as configurações da chave do KMS e as permissões do perfil do IAM do EC2
Se as permissões para o perfil IAM da sua instância do EC2 e a política de chave do AWS Key Management Service (AWS KMS) da sua chave do AWS KMS (chave do KMS) estiverem incorretas, você poderá receber o seguinte erro:
An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re quest ID: IDNumber; Proxy: null)
Observação: o erro anterior ocorre somente quando seu tópico do SNS usa criptografia do lado do servidor.
Para resolver o erro, verifique as configurações de chave do KMS e as permissões da política de chave do AWS KMS:
1. Confirme se sua chave do KMS está ativada.
2. Confirme se seu perfil do IAM da instância do EC2 tem permissão para executar kms:GenerateDataKey* e kms:Decrypt na política de chave do AWS KMS. Essa é a política de chave da chave do KMS usada para criptografia do lado do servidor em seu tópico do SNS. Por exemplo:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }
3. Confirme se as permissões kms:GenerateDataKey* e kms:Decrypt estão anexadas ao perfil do IAM da sua instância do EC2.
Observação: é uma prática recomendada fornecer os privilégios mínimos necessários. Portanto, certifique-se de substituir o valor Recurso pelo ARN da chave do KMS na seguinte política do perfil do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" } ] }
Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 4 anos
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 10 meses