Direkt zum Inhalt

Wie behebe ich den Fehler „Has prohibited field Principal“, der angezeigt wird, wenn ich eine IAM-Richtlinie erstelle oder aktualisiere?

Lesedauer: 2 Minute
0

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