Wie kann ich den Fehler beim Veröffentlichungsvorgang in Amazon SNS beheben?

Lesedauer: 3 Minute
0

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": "*"
    }
  ]
}

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren