Direkt zum Inhalt

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

Lesedauer: 4 Minute
0

Wenn ich versuche, meine Amazon Simple Storage Service (Amazon S3)-Bucket-Richtlinie hinzuzufügen oder zu bearbeiten, erhalte ich die Fehlermeldung „Invalid principal in policy“.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Wenn deine Amazon-S3-Bucket-Richtlinie einen ungültigen Wert des Prinzipal-Elements enthält, erhältst du die Fehlermeldung „Invalid principal in policy“. Befolge diese Schritte zur Problembehandlung, um diesen Fehler zu beheben.

Stelle sicher, dass deine Bucket-Richtlinie unterstützte Werte für das Prinzipal-Element verwendet

Stelle sicher, dass du die folgenden unterstützten Werte für das Prinzipal-Element in deiner S3-Bucket-Richtlinie angibst:

Hinweis: Allen authentifizierten und anonymen Benutzern wird Zugriff gewährt, wenn du das Platzhalterzeichen (*) als Prinzipal-Element verwendest.

Stelle sicher, dass der Prinzipalwert korrekt formatiert ist

Stelle sicher, dass die Prinzipal-Elemente in der Bucket-Richtlinie richtig formatiert sind. Wenn das Prinzipal-Element eine(n) Benutzer:in enthält, verwende das folgende Format:

"Principal": {    "AWS": "arn:aws:iam::111111111111:user/user-name1"
}

Hinweis: Ersetze user-name1 durch den Namen deines IAM-Benutzers.

Wenn das Prinzipal-Element mehr als eine(n) IAM-Benutzer:in oder eine IAM-Rolle enthält, verwende das folgende Format:

"Principal": {  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "arn:aws:iam::111111111111:role/role-name1"
  ]
}

Hinweis: Ersetze username1 durch den Namen deines IAM-Benutzers und role-name1 durch den Namen deiner IAM-Rolle.

Wenn das Prinzipal-Element alle Benutzer umfasst, verwende das folgende Format:

{  "Principal": "*"
}

Hinweis: Es hat sich bewährt, im Prinzipal-Element eine ressourcenbasierten Richtlinie mit dem Effekt Zulassen keinen Platzhalter (*) zu verwenden. Verwende den Platzhalter (*) nur, um öffentlichen oder anonymen Zugriff zu gewähren. Gib im Prinzipal-Element die gewünschten Prinzipale, Services oder AWS-Konten an. Verwende dann das Bedingungs-Element, um den Zugriff einzuschränken.

Hinweis: Wenn du anonymen Zugriff gewährst, können alle auf den Bucket zugreifen. Wir empfehlen, keinen anonymen Schreibzugriff auf den S3-Bucket zu gewähren. Weitere Informationen findest du unter So funktioniert Amazon S3 mit IAM.

Stelle sicher, dass der/die IAM-Benutzer:in oder die IAM-Rolle nicht gelöscht wurde

Wenn du versuchst, die Bucket-Richtlinie mit einem eindeutigen Bezeichner als Prinzipal-Element zu speichern, erhältst du 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, musst du alle eindeutigen Bezeichner aus dem Prinzipal-Element entfernen.

Wenn deine Bucket-Richtlinie IAM-Benutzer oder -Rollen im Prinzipal-Element enthält, stelle sicher, dass die IAM-Identitäten nicht gelöscht werden. Um die gelöschten IAM-Benutzer und -Rollen in deiner Bucket-Richtlinie zu identifizieren, gib die eindeutigen Bezeichner anstelle der vollständigen ARNs im Prinzipal-Element an.

Beispiel:

"Principal": {  "AWS": [
    "arn:aws:iam::111111111111:user/user-name1",
    "AIDAJQABLZS4A3QDU576Q",
    "arn:aws:iam::111111111111:user/user-name2"
  ]
}

Hinweis: Ersetze username1 und user-name2 durch die Namen deiner IAM-Benutzer.

Stelle sicher, dass für das Konto des IAM-Prinzipals eine Region aktiviert ist

Wenn du eine S3-Bucket-Richtlinie anwendest, überprüft AWS, ob die erforderlichen AWS-Regionen im Konto des IAM-Prinzipals verfügbar sind. Der Bucket befindet sich möglicherweise in einer AWS-Region, die AWS standardmäßig nicht aktiviert. Vergewissere dich in diesem Fall, dass du die Region im Konto des IAM-Prinzipals aktiviert hast. Aktiviere in einem kontoübergreifenden Szenario die AWS-Region für beide AWS-Konten. Weitere Informationen findest du unter AWS-Regionen in deinem Konto aktivieren oder deaktivieren.

IAM Access Analyzer verwenden, um den Bucket-Zugriff zu validieren

Verwende AWS Identity and Access Management Access Analyzer, um den Zugriff auf die S3-Buckets zu überprüfen, bevor du Berechtigungen bereitstellst. Du kannst die S3-Bucket-Richtlinien überprüfen, die dir Ressourcen von einem anderen AWS-Konto gewähren.

Du kannst IAM Access Analyzer auch verwenden, um AWS-CloudTrail-Ereignisse zu analysieren und auf der Grundlage dieser Aktivität eine IAM-Richtlinie zu generieren. Weitere Informationen findest du unter Generierung von IAM-Access-Analyzer-Richtlinien.

Informationen zur Aktivierung von IAM Access Analyzer findest du unter Erste Schritte mit AWS Identity and Access Management Access Analyzer.

Hinweis: AWS berechnet dir jede ungenutzte Zugriffsanalyse, die du pro Monat erstellst. Weitere Informationen findest du unter Preise für IAM Access Analyzer.

Informationen zur Fehlerbehebung bei IAM-Access-Analyzer-Berechtigungen findest du unter Wie löse ich Berechtigungsprobleme mit Richtlinien, die von IAM Access Analyzer generiert wurden?