Ich möchte den Fehler „Has prohibited field Principal“ beheben, der bei der Erstellung oder Aktualisierung meiner AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Richtlinie angezeigt wird.
Lösung
Wenn die auf IAM-Identität basierende Richtlinie das Prinzipal-Element enthält, erhältst du die Fehlermeldung „Has prohibited field Principal“. Du kannst das Prinzipal-Element nur in ressourcenbasierten Richtlinien verwenden, um die IAM-Identität zu steuern, die auf die Ressource zugreifen darf. Du musst das Prinzipal-Element nicht in einer identitätsbasierten Richtlinie verwenden, da du die Richtlinie an IAM-Identitäten anfügst.
Stelle sicher, dass du die ressourcenbasierte Richtlinie in dem AWS-Service erstellst, der der Ressource zugeordnet ist. Informationen dazu, ob ein AWS-Service ressourcenbasierte Richtlinien verwendet, findest du unter AWS-Services, die mit IAM funktionieren.
Die einzige ressourcenbasierte Richtlinie, die du für eine Rolle in IAM erstellen kannst, ist eine Vertrauensrichtlinie. Um Berechtigungen für die IAM-Rolle hinzuzufügen oder zu entfernen, stelle sicher, dass du die Vertrauensrichtlinie für die Rolle und nicht die Berechtigungsrichtlinie aktualisierst.
Beispiel für eine Vertrauensrichtlinie für Rollen:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "sts:AssumeRole"
}
]
}
Beispiel für eine Berechtigungsrichtlinie:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::111122223333/Test"
}
}
Ähnliche Informationen
Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien
Wie verwende ich IAM, um auf Ressourcen in einem anderen AWS-Konto zuzugreifen?
Einem Benutzer die Berechtigung erteilen, die Rollen zu wechseln