Ich habe versucht, Abonnenten zu einem Amazon Simple Notification Service (Amazon SNS)-Thema hinzuzufügen, habe aber einen Identity and Access Management (IAM)-Autorisierungsfehler erhalten.
Kurzbeschreibung
Wenn eine IAM-Entität versucht, einem Amazon SNS-Thema ein Abonnement ohne Berechtigungen für die API-Aktion Subscribe (Abonnieren) hinzuzufügen, gibt SNS den folgenden Fehler zurück:
„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“
Hinweis: Prüfe die spezifische Fehlermeldung, um festzustellen, ob der Fehler von einer identitätsbasierten Richtlinie oder einer ressourcenbasierten Richtlinie herrührt.
Um diesen Fehler zu beheben, gewähre der IAM-Entität die Berechtigung, die API-Aktion Subscribe (Abonnieren) für das Amazon-SNS-Thema auszuführen.
Lösung
Gehe wie folgt vor, um der IAM-Entität die Berechtigung zu erteilen, die API-Aktion Subscribe (Abonnieren) für das Amazon-SNS-Thema auszuführen:
Kontoübergreifender Zugriff
Wenn sich die IAM-Entität in einem übergreifenden AWS-Konto für das SNS-Thema befindet, gehe wie folgt vor:
-
Füge die folgende identitätsbasierte Richtlinie an die IAM-Entität an, die es der Entität ermöglicht, die API-Aktion sns:Subscribe auszuführen:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SNSSubscribePermission",
"Effect": "Allow",
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
]
}
Hinweis: Ersetze YOUR_SNS_TOPIC_ARN durch den Amazon-Ressourcennamen (ARN) deines Amazon-SNS-Themas.
-
Füge die folgende ressourcenbasierte Richtlinie an die Zugriffsrichtlinie des Themas an, die es der IAM-Entität ermöglicht, die API-Aktion sns:Subscribe auszuführen:
{
"Sid": "AllowIAMEntity",
"Effect": "Allow",
"Principal": {
"AWS": "YOUR_IAM_ENTITY_ARN "
},
"Action": "sns:Subscribe",
"Resource": "YOUR_SNS_TOPIC_ARN"
}
Hinweis: Ersetze YOUR_IAM_ENTITY_ARN durch den ARN deiner IAM-Entität. Ersetze YOUR_SNS_TOPIC_ARN durch den ARN deines Amazon-SNS-Themas.
Derselbe Kontozugriff
Wenn sich die IAM-Entität im selben AWS-Konto wie das SNS-Thema befindet, füge eine Richtlinie an, um die Berechtigung für die Aktion sns:Subscribe zu erteilen. Füge entweder eine identitätsbasierte Richtlinie oder eine ressourcenbasierte Richtlinie aus den vorherigen Schritten an.
Ähnliche Informationen
Verwendung identitätsbasierter Richtlinien mit Amazon SNS