Je souhaite résoudre les erreurs d'autorisation Gestion des identités et des accès AWS (AWS IAM) que je reçois lorsque j'ajoute des abonnés à ma rubrique Amazon Simple Notification Service (Amazon SNS).
Brève description
Lorsqu'une entité IAM essaie d'ajouter un abonnement à une rubrique Amazon SNS sans les autorisations d'action d'API Subscribe, SNS renvoie l'erreur suivante :
An error occurred (AuthorizationError) when calling the Subscribe operation: User: your_IAM_user_or_role is not authorized to perform: sns:Subscribe on resource: YOUR_SNS_TOPIC_ARN
Remarque : l'entité IAM peut être un rôle ou un utilisateur IAM.
Pour corriger cette erreur, vous devez accorder à l'entité IAM l'autorisation d'exécuter l'action d'API Subscribe dans la rubrique Amazon SNS.
Si vous recevez une erreur similaire qui se termine par « explicit deny »
Supprimez toutes les déclarations de politique qui interdisent explicitement à l'entité IAM l'accès à la ressource SNS.
Résolution
Si l'entité IAM et la rubrique SNS se trouvent dans des comptes AWS différents
Effectuez les deux opérations suivantes :
Attachez une déclaration de politique IAM à l'entité IAM qui permet à l'entité d'exécuter l'action « sns:Subscribe »
Pour obtenir des instructions, consultez la page Ajout et suppression d'autorisations basées sur l'identité IAM. Attachez l'exemple de déclaration de politique IAM suivant :
Important : remplacez « YOUR_SNS_TOPIC_ARN » par l’Amazon Resource Name (ARN) de votre rubrique Amazon SNS.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SNSSubscribePermission",
"Effect": "Allow",
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
]
}
**Attachez une déclaration de politique Amazon SNS à la politique d'accès de votre rubrique qui permet à l'entité IAM d'exécuter l'action « sns:Subscribe » **
Pour obtenir des instructions, consultez la page Comment modifier la stratégie d’accès à ma rubrique Amazon SNS ?Attachez l'exemple de déclaration de politique Amazon SNS suivant :
Important : remplacez « YOUR_IAM USER/ROLE_ARN » par l'ARN de votre entité IAM. Remplacez « YOUR_SNS_TOPIC_ARN » par l'ARN de votre rubrique Amazon SNS.
{
"Sid": "AllowIAMEntity",
"Effect": "Allow",
"Principal": {
"AWS": "YOUR_IAM USER/ROLE_ARN "
},
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
Si l'entité IAM et la rubrique SNS se trouvent dans le même compte
Effectuez l'une des opérations suivantes :
Attachez une déclaration de politique IAM à l'entité IAM qui permet à l'entité d'exécuter l'action « sns:Subscribe ».
-ou-
Attachez une déclaration de politique Amazon SNS à la politique d'accès de votre rubrique qui permet à l'entité IAM d'exécuter l'action « sns:Subscribe ».
Pour obtenir des exemples de déclarations de politique, consultez la section Si l'entité IAM et la rubrique SNS se trouvent dans des comptes AWS différents de cet article.
Vérifiez que ni la politique de l'entité IAM ni la stratégie d’accès de la rubrique SNS ne refusent explicitement l'accès à la ressource SNS
Examinez la politique de l'entité IAM et la stratégie d’accès de la rubrique SNS. Supprimez ensuite toutes les déclarations de politique qui interdisent explicitement à l'entité IAM l'accès à la ressource SNS.
Pour en savoir plus, consultez la page Différence entre les refus explicites et implicites.
Informations connexes
Utilisation de politiques basées sur l'identité avec Amazon SNS