Wie behebe ich den AWS-KMS-Schlüsselrichtlinienfehler „Policy contains a statement with one or more invalid principals“ (Richtlinie enthält Aussage mit einem oder mehreren ungültigen Pinzipalen)?

Letzte Aktualisierung: 22.03.2022

Ich habe versucht, meine Schlüsselrichtlinie aus dem AWS Key Management Service (AWS KMS) zu ändern, und in der AWS-Managementkonsole wurde ein Fehler ähnlich dem folgenden angezeigt:

„PutKeyPolicy request failed

MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals“

Die AWS KMS-Schlüsselrichtlinie enthält nicht den Amazon-Ressourcennamen (ARN) und enthält einen Prinzipal mit einer eindeutigen ID in der Form AIDACKCEVSQ6C2EXAMPLE.

Kurzbeschreibung

Der AWS KMS-API-Aufruf PutKeyPolicy-Anforderung schlägt fehl, wenn die Anforderung abgelehnt wurde, weil die angegebene Schlüsselrichtlinie syntaktisch oder semantisch nicht korrekt ist.

Auflösung

JSON-Syntax

Vergewissern Sie sich, dass der Ressourcentyp des JSON-Richtliniendokuments gültig ist. Um JSON-Syntaxfehler zu beheben, fügen Sie das JSON-Richtliniendokument in einen JSON-Beautifier ein, um die Formatierung zu überprüfen. Entfernen Sie alle unnötigen Zeichen und fügen Sie fehlende Zeichen hinzu. Suchen Sie nach doppelten JSON-Richtlinienelementen und doppelten SID-Werten und entfernen Sie sie.

Ungültige Prinzipale

Überprüfen Sie das Hauptelement in der JSON-Richtlinie und stellen Sie sicher, dass die Entität AWS Identity and Access Management (IAM) vorhanden ist. Stellen Sie sicher, dass die IAM-Identität korrekt mit einem gültigen ARN angegeben ist.

Hinweis: Sie können keinen Platzhalter in dem Teil des ARN verwenden, der den Ressourcentyp angibt.

Wenn Sie IAM-Identitäten erstellen, geben Sie ihnen Anzeigenamen wie Bob oder Entwickler. Aus Sicherheitsgründen wird diesen IAM-Entitäten auch eine eindeutige ID zugewiesen, wie AIDACKCEVSQ6C2EXAMPLE.

Beispielsweise haben Sie einen IAM-Benutzer namens Alice, der in einer AWS KMS-Schlüsselrichtlinie angegeben ist. Dann verlässt Alice das Unternehmen. Danach wird ein neuer Benutzer namens Alice eingestellt und es wird ein IAM-Benutzer mit demselben Namen erstellt. Eindeutige IDs stellen sicher, dass die neue Alice keine Berechtigungen erben kann, die der alten Alice erteilt wurden.

Entfernen Sie die verwaisten eindeutigen IDs aus der Schlüsselrichtlinie. Weitere Informationen finden Sie unter Schlüsselrichtlinien in AWS KMS.

Hinweis: Wenn die AWS KMS-Schlüsselrichtlinie über Berechtigungen für ein anderes Konto oder einen anderen Prinzipal verfügt, gilt die Schlüsselrichtlinie nur in der AWS-Region, die den KMS-Schlüssel enthält. Weitere Informationen finden Sie unter Überblick über die wichtigsten Richtlinien.

Ungültige AWS-Services

Wenn ein AWS-Service als Prinzipal aufgeführt ist, stellen Sie sicher, dass der Service von AWS KMS unterstützt wird. Der Prinzipal sollte die IAM-Entität sein, und kms:ViaService sollte für die AWS-Services verwendet werden, die die Anfragen im Namen der IAM-Entität stellen.

Prüfen Sie, ob der AWS-Service AWS KMS direkt aufruft. Nicht alle AWS-Services rufen AWS KMS direkt auf, wie z. B. Amazon Elastic Compute Cloud (Amazon EC2). Stattdessen nehmen AWS-Services wie Amazon EC2 Aufrufe im Namen eines Prinzipals im AWS-Konto vor. AWS-Services, die AWS KMS direkt aufrufen, wie Amazon Simple Notification Service (Amazon SNS), müssen den Service-Prinzipal im Hauptelement haben.

Weitere Informationen finden Sie unter Dienste, die den Bedingungsschlüssel KMS:ViaService unterstützen.

AWS-Region zur Anmeldung

AWS KMS-Schlüssel, die für ein AWS-Konto freigegeben wurden, das sich nicht für die AWS-Region angemeldet hat, in der sich der Schlüssel im Empfängerkonto befindet, sind für diese Region ungültig.

Stellen Sie sicher, dass die AWS-Region im Empfängerkonto aktiviert ist, oder geben Sie einen anderen AWS KMS-Schlüssel in einer Region frei, die im AWS-Konto und Empfängerkonto aktiviert ist. Weitere Informationen finden Sie unter AWS-Regionen verwalten.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?