Ich möchte den Fehler meiner AWS Key Management Service (AWS KMS)-Schlüsselrichtlinie beheben.
Kurzbeschreibung
Wenn du die AWS-KMS-Schlüsselrichtlinie nicht richtig geändert hast, schlägt der AWS-KMS-API-Vorgang PutKeyPolicy fehl. Möglicherweise erhältst du eine der folgenden Fehlermeldungen:
„PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals.“
„Policy contains a statement with one or more invalid principals“
Um dieses Problem zu beheben, führe eine oder mehrere der folgenden Lösungsmaßnahmen durch.
Lösung
Eine gültige JSON-Syntax verwenden
Vergewissere dich, dass du einen gültigen Ressourcentyp für JSON-Richtliniendokumente verwendest. Um JSON-Syntaxfehler zu beheben, füge das JSON-Richtliniendokument in ein JSON-Formatierungstool ein. Entferne unnötige Zeichen und füge dann fehlende Zeichen hinzu. Stelle sicher, dass du alle doppelten JSON-Richtlinienelemente und Sicherheitsidentifizierungs (SID)-Werte entfernst.
Prinzipal-Elemente angeben
Vergewissere dich im Prinzipal-Element der JSON-Richtlinie, dass du eine AWS Identity and Access Management (IAM)-Identität und einen gültigen Amazon-Ressourcennamen (ARN) erstellt hast.
Die Schlüsselrichtlinie gilt nur in der AWS-Region, die den AWS-KMS-Schlüssel enthält. Wenn die AWS-KMS-Schlüsselrichtlinie über Berechtigungen für ein anderes AWS-Konto oder einen anderen Prinzipal verfügt, ist die Schlüsselrichtlinie möglicherweise nicht gültig. Stelle sicher, dass die Schlüsselrichtlinie den AWS-KMS-Schlüssel in der richtigen Region enthält.
Du musst das Prinzipal-Element als IAM-Identität angeben. Wenn du einen AWS-Service als Prinzipal angegeben hast, stelle sicher, dass AWS KMS den Service unterstützt. Verwende für die AWS-Services, die den Bedingungsschlüssel unterstützen und Anforderungen mit einer Forward Access Session stellen, den AWS-KMS-Bedingungsschlüssel kms:ViaService.
AWS-Services, die AWS KMS direkt aufrufen, müssen den Service-Prinzipal im Prinzipal-Element haben. Vergewissere dich, dass der AWS-Service, den du verwendest, direkt AWS KMS aufruft.
Sich für die Region anmelden
Das Konto, mit dem du die AWS-KMS-Schlüssel teilst, muss sich im Empfängerkonto für die Region anmelden. Stelle sicher, dass du die Region im Empfängerkonto aktivierst. Du kannst auch einen anderen AWS-KMS-Schlüssel in einer Region teilen, den du im AWS-Konto und im Empfängerkonto aktiviert hast.