Warum erhalte ich die Fehlermeldung „Invalid principal in policy“, wenn ich versuche, meine Amazon-S3-Bucket-Richtlinie zu aktualisieren?
Ich versuche, die Bucket-Richtlinie meines Amazon Simple Storage Service (Amazon S3)-Buckets mithilfe der Konsole hinzuzufügen oder zu bearbeiten. Ich erhalte jedoch die Fehlermeldung „Error: Invalid principal in policy“.
Lösung
Sie erhalten die Meldung Error: Invalid principal in policy, wenn der Wert eines Prinzipals in Ihrer Bucket-Richtlinie ungültig ist. Um diesen Fehler zu beheben, überprüfen Sie Folgendes:
- Ihre Bucket-Richtlinie verwendet unterstützte Werte für ein Prinzipal-Element.
- Das Prinzipal-Element ist korrekt formatiert.
- Wenn der Prinzipal ein AWS Identity and Access Management (IAM)-Benutzer oder eine -Rolle ist, vergewissern Sie sich, dass der Benutzer oder die Rolle nicht gelöscht wurde.
Ihre Bucket-Richtlinie verwendet unterstützte Werte für ein Prinzipal-Element
Überprüfen Sie die Prinzipal-Elemente Ihrer Bucket-Richtlinie. Vergewissern Sie sich, dass sie einen der folgenden unterstützten Werte verwenden:
- Den ARN eines IAM-Benutzers oder einer IAM-Rolle
Hinweis: Um den ARN eines IAM-Benutzers zu ermitteln, führen Sie den Befehl get-user in der AWS Command Line Interface (AWS CLI) aus. Führen Sie den AWS-CLI-Befehl get-role aus, um den ARN einer IAM-Rolle zu ermitteln. Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden. - Eine AWS-Konto-ID oder AWS-Service-Prinzipals
- Die Zeichenfolge „*“ zur Darstellung aller Benutzer
Warnung: In Kombination mit „Action:“ „Allow“ gewährt das Prinzipal-Element „*“ allen authentifizierten und anonymen Benutzern Zugriff. Bevor Sie diese Kombination in Ihrer Bucket-Richtlinie verwenden, stellen Sie sicher, dass Ihre Inhalte diese Zugriffsebene unterstützen.
Der Prinzipal-Wert ist korrekt formatiert
Überprüfen Sie die Prinzipal-Elemente der Richtlinie und stellen Sie sicher, dass sie korrekt formatiert sind. Wenn Prinzipal einen Benutzer enthält, muss das Element das folgende Format haben:
"Principal": { "AWS": "arn:aws:iam::111111111111:user/user-name1" }
Wenn Sie Benutzer in einem Prinzipal-Element angeben, können Sie „*“ nicht verwenden, um alle Benutzer anzugeben. Sie müssen bestimmte Benutzer für das Prinzipal-Element angeben.
Wenn das Prinzipal-Element mehr als einen IAM-Benutzer oder eine IAM-Rolle enthält, muss das Element das folgende Format haben:
"Principal": { "AWS": [ "arn:aws:iam::111111111111:user/user-name1", "arn:aws:iam::111111111111:role/role-name1" ] }
Wenn der Prinzipal aus allen Benutzern besteht, muss das Element das folgende Format haben:
{ "Principal": "*" }
Es hat sich bewährt, im Prinzipal-Element einer ressourcenbasierten Richtlinie mit dem Effekt Allow keinen Platzhalter (*) zu verwenden. Verwenden Sie den Platzhalter nur, wenn Sie öffentlichen oder anonymen Zugriff gewähren möchten. Geben Sie im Prinzipal-Element die gewünschten Prinzipals, Services oder AWS-Konten an. Verwenden Sie dann das Bedingungs-Element, um den Zugriff einzuschränken. Dies gilt insbesondere für Vertrauensrichtlinien von IAM-Rollen, da diese Richtlinien es anderen Prinzipals ermöglichen, Prinzipals in Ihrem Konto zu werden.
Der IAM-Benutzer oder die IAM-Rolle wurde nicht gelöscht
Wenn Ihre Bucket-Richtlinie IAM-Benutzer oder -Rollen im Prinzipal-Element enthält, stellen Sie sicher, dass diese IAM-Identitäten nicht gelöscht wurden. Stellen Sie sicher, dass Sie im Prinzipal-Element die eindeutigen Kennungen anstelle der vollständigen ARNs angeben. Dies kann helfen, die gelöschten IAM-Benutzer und -Rollen in der aktuellen Bucket-Richtlinie zu identifizieren.
Beispiel:
"Principal": { "AWS": [ "arn:aws:iam::111111111111:user/user-name1", "AIDAJQABLZS4A3QDU576Q", "arn:aws:iam::111111111111:user/user-name2" ] }
Wenn Sie versuchen, die Bucket-Richtlinie mit einer eindeutigen Kennung als Prinzipal-Element zu speichern, erhalten Sie den Fehler Invalid principal in policy. Dies liegt daran, dass das Prinzipal-Element nur gültige IAM-ARNs unterstützt. Um diesen Fehler zu beheben, müssen Sie alle eindeutigen Kennungen aus dem Prinzipal-Element entfernen.
Für das Konto des IAM-Prinzipals ist keine AWS-Region aktiviert
Wenn sich Ihr S3-Bucket in einer AWS-Region befindet, die standardmäßig nicht aktiviert ist, stellen Sie sicher, dass die Region für das Konto des IAM-Prinzipals aktiviert ist. Weitere Informationen finden Sie unter AWS-Regionen verwalten.
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 7 Monaten
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren