Comment puis-je corriger l'erreur d'opération de publication dans Amazon SNS ?

Date de la dernière mise à jour : 28/07/2021

Une erreur s'affiche dans Amazon Simple Notification Service (Amazon SNS). L'erreur se produit lorsque j'utilise un sous-réseau et essaie de publier ma rubrique SNS à partir d'une instance Amazon Elastic Compute Cloud (Amazon EC2) inter-comptes.

Brève description

Si vous recevez une erreur d'autorisation lorsque vous appelez l'opération Publier, procédez comme suit dans la section Vérifier le rôle IAM de l'instance EC2 et les autorisations de stratégie d'accès aux rubriques SNS.

Si vous rencontrez des problèmes avec une rubrique SNS utilisant le chiffrement côté serveur et que vous recevez une erreur « KMSAccessDenied », procédez comme indiqué dans la section Vérifier les paramètres de clé KMS et les autorisations de rôle IAM d'EC2.

Remarque : si votre instance EC2 ne se connecte pas à Internet avec une passerelle Internet, consultez Pourquoi mon instance EC2 ne peut-elle pas se connecter à Internet via une passerelle Internet ?

Résolution

Vérifiez le rôle IAM de l'instance EC2 et les autorisations de stratégie d'accès aux rubriques SNS.

Des autorisations de rôle AWS Identity and Access Management (IAM) mal configurées pour votre instance EC2 et la stratégie d'accès aux rubriques Amazon SNS peuvent provoquer l'erreur suivante :

"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."

Vérifiez les paramètres de clé KMS et les autorisations de rôle IAM EC2

Si les autorisations relatives au rôle IAM de votre instance EC2 et à la politique de clé AWS Key Management Service (AWS KMS) de votre clé AWS KMS (clé KMS) sont incorrectes, l'erreur suivante peut s'afficher :

An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re
quest ID: IDNumber; Proxy: null)

Remarque : l'erreur précédente se produit uniquement lorsque votre rubrique SNS utilise le chiffrement côté serveur.

Pour résoudre l'erreur, vérifiez les paramètres de clé KMS et les autorisations de politique de clé AWS KMS :

1.    Vérifiez que votre clé KMS est activée.

2.    Vérifiez que votre rôle IAM d'instance EC2 est autorisé à exécuter kms:GenerateDataKey* et kms:Decrypt dans la politique de clé AWS KMS. Il s'agit de la politique de clé KMS utilisée pour le chiffrement côté serveur sur votre rubrique SNS. Par exemple :

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role"
  },
  "Action": [
    "kms:GenerateDataKey*",
    "kms:Decrypt"
  ],
  "Resource": "*"
}

3.    Vérifiez que les autorisations kms:GenerateDataKey* et kms:Decrypt sont attachées au rôle IAM de votre instance EC2. Par exemple :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
      ],
      "Resource": "*"
    }
  ]
}

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?