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

Lecture de 3 minute(s)
0

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 rubrique Vérifier les paramètres de clé KMS et les autorisations de rôle IAM d'EC2.

Remarque : si votre instance EC2 ne peut pas se connecter à Internet avec une passerelle Internet, consultez Pourquoi mon instance Amazon 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."

Pour résoudre cette erreur, consultez Comment publier dans une rubrique Amazon SNS à partir d'une instance Amazon EC2 inter-comptes à l'aide d'un rôle IAM EC2 ?

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.

Remarque : Il est recommandé de fournir les moindres privilèges nécessaires. Par conséquent, veillez à remplacer la valeur Resource par l'ARN de votre clé KMS dans la stratégie de rôle IAM suivante :

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

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans