Behebung eines Fehlers „Zugriff verweigert“ in Amazon SQS - Amazon Simple Queue Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Behebung eines Fehlers „Zugriff verweigert“ in Amazon SQS

Die folgenden Themen behandeln die häufigsten Ursachen AccessDenied oder AccessDeniedException Fehler Amazon SQS SQS-API-Aufrufen. Weitere Informationen zur Behebung dieser Fehler finden Sie unter Wie behebe ich "" - oder AccessDenied "AccessDeniedException" -Fehler Amazon SQS SQS-API-Aufrufen? im AWS Knowledge Center-Leitfaden.

Beispiele für Fehlermeldungen:

An error occurred (AccessDenied) when calling the SendMessage operation: Access to
        the resource https://sqs.us-east-1.amazonaws.com/ is denied.

- oder -

An error occurred (KMS.AccessDeniedException) when calling the SendMessage
        operation: User: arn:aws:iam::xxxxx:user/xxxx is not authorized to perform:
        kms:GenerateDataKey on resource: arn:aws:kms:us-east-1:xxxx:key/xxxx with an explicit
        deny.

Amazon SQS SQS-Warteschlangenrichtlinie und IAM-Richtlinie

Gehen Sie wie folgt vor, um zu überprüfen, ob der Anforderer über die erforderlichen Berechtigungen zur Durchführung eines Amazon SQS SQS-Vorgangs verfügt:

  • Identifizieren Sie den IAM-Prinzipal, der den Amazon SQS SQS-API-Aufruf durchführt. Wenn der IAM-Principal von demselben Konto stammt, müssen entweder die Amazon SQS SQS-Warteschlangenrichtlinie oder die AWS Identity and Access Management (IAM) -Richtlinie Berechtigungen enthalten, um den Zugriff für die Aktion explizit zuzulassen.

  • Wenn der Principal eine IAM-Entität ist:

    • Sie können Ihren IAM-Benutzer oder Ihre IAM-Rolle identifizieren, indem Sie die obere rechte Ecke von überprüfen oder den AWS Management Console Befehl verwenden. aws sts get-caller-identity

  • Wenn der Principal ein AWS Service ist, muss die Amazon SQS SQS-Warteschlangenrichtlinie den Zugriff explizit zulassen.

  • Wenn es sich bei dem Principal um einen kontoübergreifenden Principal handelt, müssen sowohl die Amazon SQS SQS-Warteschlangenrichtlinie als auch die IAM-Richtlinie den Zugriff explizit zulassen.

  • Wenn die Richtlinie ein Bedingungselement verwendet, überprüfen Sie, ob die Bedingung den Zugriff einschränkt.

Wichtig

Eine ausdrückliche Ablehnung in einer der Richtlinien hat Vorrang vor einer ausdrücklichen Zulassung. Hier sind einige grundlegende Beispiele für Amazon SQS SQS-Richtlinien.

AWS Key Management Service Berechtigungen

Wenn in Ihrer Amazon SQS SQS-Warteschlange serverseitige Verschlüsselung (SSE) aktiviert ist und ein Kunde verwaltet wird AWS KMS key, müssen sowohl Produzenten als auch Verbrauchern Berechtigungen erteilt werden. Um zu überprüfen, ob eine Warteschlange verschlüsselt ist, können Sie das GetQueueAttributesKmsMasterKeyIdAPI-Attribut oder die Warteschlangenkonsole unter Verschlüsselung verwenden.

  • Erforderliche Berechtigungen für Produzenten:

    { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }
  • Erforderliche Berechtigungen für Verbraucher:

    { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "<Key ARN>" }
  • Erforderliche Berechtigungen für den kontoübergreifenden Zugriff:

    { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:Decrypt", "kms:ReEncrypt", "kms:GenerateDataKey" ], "Resource": "<Key ARN>" }

Wählen Sie eine der folgenden Optionen, um die Verschlüsselung für eine Amazon SQS SQS-Warteschlange zu aktivieren:

Wenn Sie jedoch einen AWS-verwalteten KMS-Schlüssel verwenden, können Sie die Standardschlüsselrichtlinie nicht ändern. Verwenden Sie daher den vom Kunden verwalteten Schlüssel, um Zugriff auf andere Dienste und kontenübergreifende Konten zu gewähren. Auf diese Weise können Sie die Schlüsselrichtlinie bearbeiten.

VPC-Endpunktrichtlinie

Wenn Sie über einen Amazon Virtual Private Cloud (Amazon VPC) -Endpunkt auf Amazon SQS zugreifen, muss die Amazon SQS VPC-Endpunktrichtlinie den Zugriff zulassen. Sie können eine Richtlinie für Amazon VPC-Endpunkte für Amazon SQS erstellen, in der Sie Folgendes angeben können:

  1. Prinzipal, der die Aktionen ausführen kann.

  2. Aktionen, die ausgeführt werden können

  3. Die Ressourcen, für die Aktionen ausgeführt werden können.

Im folgenden Beispiel legt die VPC-Endpunktrichtlinie fest, dass der IAM-Benutzer Nachrichten an die Amazon MyUser SQS SQS-Warteschlange senden darf. MyQueue Anderen Aktionen, IAM-Benutzern und Amazon SQS-Ressourcen wird der Zugriff über den VPC-Endpunkt verweigert.

{ "Statement": [{ "Action": ["sqs:SendMessage"], "Effect": "Allow", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyQueue", "Principal": { "AWS": "arn:aws:iam:123456789012:user/MyUser" } }] }

Richtlinie zur Dienstkontrolle der Organisation

Wenn Sie zu einer Organisation AWS-Konto gehören, können AWS Organizations Richtlinien Sie daran hindern, auf Ihre Amazon SQS SQS-Warteschlangen zuzugreifen. Standardmäßig blockieren AWS Organizations Richtlinien keine Anfragen an Amazon SQS. Stellen Sie jedoch sicher, dass Ihre AWS Organizations Richtlinien nicht so konfiguriert wurden, dass sie den Zugriff auf Amazon SQS SQS-Warteschlangen blockieren. Anweisungen, wie Sie Ihre AWS Organizations Richtlinien überprüfen können, finden Sie im AWS Organizations Benutzerhandbuch unter Alle Richtlinien auflisten.