Warum erhalte ich die Fehlermeldung „Invalid principal in policy“, wenn ich versuche, meine Amazon-S3-Bucket-Richtlinie zu aktualisieren?

Lesedauer: 3 Minute
0

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:

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

AWS-Richtliniengenerator

Elemente der AWS-JSON-Richtlinie: Prinzipal

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr