Como posso resolver o erro de operação de publicação no Amazon SNS?

3 minuto de leitura
0

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": "*"
    }
  ]
}

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos