Wie kann ich den Fehler beim Veröffentlichungsvorgang in Amazon SNS beheben?
Ich erhalte eine Fehlermeldung in Amazon Simple Notification Service (Amazon SNS). Der Fehler tritt auf, wenn ich ein Subnetz verwende und versuche, mein SNS-Thema von einer kontoübergreifenden Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus zu veröffentlichen.
Kurzbeschreibung
Wenn Sie beim Aufrufen des Veröffentlichungsvorgangs einen Autorisierungsfehler erhalten, führen Sie die Schritte im Abschnitt EC2-Instance IAM-Rolle und SNS-Themenzugriffsberechtigungen überprüfen durch.
Wenn Sie Probleme mit einem SNS-Thema haben, das eine serverseitige Verschlüsselung verwendet, und der Fehler „KMSAccessDenied“ angezeigt wird, führen Sie die Schritte im Abschnitt KMS-Schlüsseleinstellungen und EC2-IAM-Rollenberechtigungen überprüfen aus.
Hinweis: Wenn Ihre EC2-Instance mit einem Internet-Gateway keine Verbindung zum Internet herstellen kann, finden Sie weitere Informationen unter Warum kann meine Amazon EC2-Instance über ein Internet-Gateway keine Verbindung zum Internet herstellen?
Behebung
Überprüfen Sie die IAM-Rolle der EC2-Instanz und die Zugriffsrichtlinienberechtigungen für SNS-Themen
Falsch konfigurierte AWS Identity und Access Management (IAM)-Rollenberechtigungen für Ihre EC2-Instance und die Zugriffsrichtlinie für die Amazon SNS-Themen können den folgenden Fehler verursachen:
"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."
Informationen zur Behebung dieses Fehlers finden Sie unter Wie veröffentliche ich mithilfe einer IAM EC2-Rolle von einer kontoübergreifenden Amazon EC2-Instance aus zu einem Amazon SNS-Thema?
Überprüfen Sie die KMS-Schlüsseleinstellungen und die EC2-IAM-Rollenberechtigungen
Wenn die Berechtigungen für die IAM-Rolle Ihrer EC2-Instance und die Schlüsselrichtlinie des AWS Key Management Service (AWS KMS) Ihres AWS KMS-Schlüssels (KMS-Schlüssel) falsch sind, kann die folgende Fehlermeldung angezeigt werden:
An error occurred (KMSAccessDenied) when calling the Publish operation: null (Service: AWSKMS; Status Code: 400; Error Code: AccessDeniedException; Re quest ID: IDNumber; Proxy: null)
Hinweis: Der vorherige Fehler tritt nur auf, wenn Ihr SNS-Thema eine serverseitige Verschlüsselung verwendet.
Um den Fehler zu beheben, überprüfen Sie Ihre KMS-Schlüsseleinstellungen und Ihre Berechtigungen für die AWS-KMS-Schlüsselrichtlinien:
1.Vergewissern Sie sich, dass Ihr KMS-Schlüssel aktiviert ist.
2.Bestätigen Sie, dass Ihre EC2-Instance-IAM-Rolle berechtigt ist, die Befehle kms:GenerateDataKey* und kms:Decrypt in der AWS-KMS-Schlüsselrichtlinie auszuführen. Dies ist die Schlüsselrichtlinie des KMS-Schlüssels, der für die serverseitige Verschlüsselung zu Ihrem SNS-Thema verwendet wird. Zum Beispiel:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }
3.Vergewissern Sie sich, dass die Berechtigungen für die Befehle ** kms:GenerateDataKey*** und kms:Decrypt mit der IAM-Rolle Ihrer EC2-Instance verknüpft sind.
Hinweis: Es ist eine bewährte Methode, die geringsten Berechtigungen bereitzustellen, die benötigt werden. Ersetzen Sie daher in der folgenden IAM-Rollenrichtlinie unbedingt den Ressourcenwert durch Ihren KMS-Schlüssel-ARN:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*" } ] }
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 9 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren