SCP-Syntax - AWS Organizations

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

SCP-Syntax

Service Control Policies (SCPs) verwenden eine ähnliche Syntax wie AWS Identity and Access Management (IAM) -Berechtigungsrichtlinien und ressourcenbasierte Richtlinien (wie Amazon S3 S3-Bucket-Richtlinien). Weitere Informationen über IAM-Richtlinien und ihre Syntax finden Sie in der Übersicht über IAM-Richtlinien im IAM-Benutzerhandbuch.

Eine Service-Kontrollrichtlinie ist eine Textdatei, die den Regeln der JSON-Struktur folgt. Sie verwendet die Elemente, die in diesem Thema beschrieben werden.

Anmerkung

Alle Zeichen in Ihrer SCP werden auf deren Maximalgröße angerechnet. In den Beispiele in diesem Handbuch sind die dargestellten Service-Kontrollrichtlinien mit zusätzlichen Leerzeichen formatiert, um die Lesbarkeit zu verbessern. Um Platz zu sparen, wenn sich die Größe Ihrer Richtlinie der Maximalgröße nähert, können Sie aber alle Leerraumzeichen, wie z. B. Leerzeichen und Zeilenumbrüche, außerhalb von Anführungszeichen löschen.

Allgemeine Informationen zu SCPs finden Sie unter Service-Kontrollrichtlinien (SCPs).

Übersicht über die Elemente

In der folgenden Tabelle finden Sie eine Übersicht der Richtlinienelemente, die Sie in SCPs verwenden können. Einige Richtlinienelemente sind nur in SCPs verfügbar, die Aktionen ablehnen. Die Spalte Unterstützte Auswirkungen enthält die Art von Auswirkungen, die Sie mit jedem Richtlinienelement in SCPs verwenden können.

Element Zweck Unterstützte Auswirkungen
Version Gibt die Regeln für die Sprachsyntax an, die für die Verarbeitung der Richtlinie verwendet wird.

Allow, Deny

Statement Dient als Container für Richtlinienelemente. Sie können mehrere Anweisungen in SCPs verwenden. Allow, Deny
Anweisungs-ID (SID) (Optional) Stellt einen Anzeigenamen für die Anweisung bereit. Allow, Deny
Effect (Effekt) Definiert, ob die SCP-Anweisung den Zugriff auf die IAM-Benutzer und -Rollen in einem Konto erlaubt oder verweigert. Allow, Deny

Action (Aktion)

Gibt den AWS Service und die Aktionen an, die der SCP zulässt oder verweigert.

Allow, Deny

NotAction

Gibt AWS Dienste und Aktionen an, die vom SCP ausgenommen sind. Wird anstelle des Elements Action verwendet.

Deny

Ressource Gibt die AWS Ressourcen an, für die der SCP gilt. Deny
Bedingung Gibt die Bedingungen dafür an, wann die Anweisung wirksam ist. Deny

In den folgenden Abschnitten finden Sie weitere Informationen und Beispiele dazu, wie Richtlinienelemente in SCPs verwendet werden.

Version-Element

Jede SCP muss ein Version-Element mit dem Wert "2012-10-17" enthalten. Dieser Wert entspricht der aktuellen Version der IAM-Berechtigungsrichtlinien.

"Version": "2012-10-17",

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Version im IAM-Benutzerhandbuch.

Statement-Element

Eine SCP besteht aus einem oder mehreren Statement-Elementen. Es kann nur ein Statement-Schlüsselwort in einer Richtlinie enthalten sein, doch der Wert kann ein JSON-Array von Anweisungen sein (in eckigen Klammern []).

Das folgende Beispiel zeigt eine einzelne Anweisung, die aus einzelnen Effect-, Action- und Resource-Elementen besteht.

"Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" }

Das folgende Beispiel enthält zwei Anweisungen als Array-Liste innerhalb eines Statement-Elements. Die erste Anweisung lässt sämtliche Aktionen zu, während die zweite alle EC2-Aktionen ablehnt. Das Ergebnis ist, dass ein Administrator im Konto alle Berechtigungen außer denen von Amazon Elastic Compute Cloud (Amazon EC2) delegieren kann.

"Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" }, { "Effect": "Deny", "Action": "ec2:*", "Resource": "*" } ]

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Anweisung im IAM-Benutzerhandbuch.

Element der Anweisungs-ID (Sid)

Die Sid (Anweisungs-ID) ist eine optionale ID, die Sie für die Richtlinie angeben können. Sie können jeder Anweisung in einem Statement-Array einen Sid-Wert zuweisen. Die folgende Beispiel-SCP zeigt eine beispielhafte Sid-Anweisung.

{ "Statement": { "Sid": "AllowsAllActions", "Effect": "Allow", "Action": "*", "Resource": "*" } }

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Id im IAM-Benutzerhandbuch.

Effect-Element

Jede Anweisung muss ein Effect-Element enthalten. Der Wert kann entweder Allow oder Deny sein. Dieser Wert wirkt sich auf alle in derselben Anweisung aufgeführten Aktionen aus.

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Effect im IAM-Benutzerhandbuch.

"Effect": "Allow"

Das folgende Beispiel zeigt eine SCP mit einer Anweisung, die ein Effect-Element mit dem Wert Allow enthält, der Kontobenutzern erlaubt, Aktionen für den Amazon-S3-Service auszuführen. Dieses Beispiel ist in einer Organisation nützlich, die die Zulassungslistenstrategie verwendet (wo die FullAWSAccess-Standardrichtlinien alle getrennt sind, sodass Berechtigungen standardmäßig implizit verweigert werden). Das Ergebnis ist, dass die Anweisung die Amazon-S3-Berechtigungen für alle angehängten Konten erlaubt:

{ "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } }

Trotz der Verwendung desselben Allow-Wertschlüsselworts der Anweisung als IAM-Berechtigungsrichtlinie werden in einer Service-Kontrollrichtlinie (SCP) nicht tatsächlich Benutzerberechtigungen für irgendeine Aktion erteilt. Stattdessen dienen SCPs als Filter, die die maximalen Berechtigungen für die IAM-Benutzer und IAM-Rollen in einer Organisation angeben. Auch wenn im vorherigen Beispiel für einen Benutzer im Konto die verwaltete AdministratorAccess-Richtlinie angehängt wäre, beschränkt die verwaltete SCP alle Benutzer im Konto auf Amazon-S3-Aktionen.

"Effect": "Deny"

In einer Anweisung, in der das Effect-Element den Wert Deny hat, können Sie auch den Zugriff auf bestimmte Ressourcen beschränken oder Bedingungen dafür definieren, wann die SCPs wirksam sind.

Nachfolgend sehen Sie ein Beispiel für die Verwendung eines Bedingungsschlüssel in einer Zugriffsverweigerungsanweisung.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:InstanceType": "t2.micro" } } } }

Diese Anweisung in einer SCP dient als Leitlinie, um zu verhindern, dass betroffene Konten Amazon-EC2-Instances starten, wenn für die Amazon-EC2-Instance nicht t2.micro festgelegt ist (wobei die SCP dem Konto selbst oder dem Organisationsstamm oder der Organisationseinheit zugeordnet ist, der bzw. die das Konto enthält). Auch wenn dem Konto eine IAM-Richtlinie, die diese Aktion zulässt, zugeordnet ist, wird dies von der Leitlinie der SCP verhindert.

Elemente Action und NotAction

Jede Anweisung muss eines der folgenden Elemente enthalten:

  • In Anweisungen zum Zulassen oder Ablehnen des Zugriffs ein Action-Element.

  • Nur in Zugriffsverweigerungsanweisungen (wobei der Wert des Effect-Elements Deny lautet) ein Action oder NotAction-Element.

Der Wert für das NotAction Element Action or ist eine Liste (ein JSON-Array) von Zeichenfolgen, die AWS Dienste und Aktionen identifizieren, die durch die Anweisung zugelassen oder verweigert werden.

Jede Zeichenfolge besteht aus der Abkürzung für den Service (z. B. "s3", "ec2", "iam" oder "organizations"), in Kleinbuchstaben, gefolgt von einem Doppelpunkt und einer Aktion aus dem entsprechenden Service. Bei den Aktionen (bzw. Nicht-Aktionen) muss auf Groß- und Kleinschreibung geachtet werden. Daher müssen sie wie in der Dokumentation des jeweiligen Service dargestellt eingegeben werden. In der Regel werden sie alle so eingegeben, dass alle Wörter mit einem Großbuchstaben beginnen und der Rest in Kleinbuchstaben folgt. Zum Beispiel: "s3:ListAllMyBuckets".

Sie können auch Platzhalterzeichen wie Sternchen (*) oder ein Fragezeichen (?) in einem SCP verwenden:

  • Sie können auch ein Sternchen als Platzhalter verwenden, der mit mehreren Aktionen übereinstimmt, die Teile eines Namens gemeinsam haben. Der Wert "s3:*" bezeichnet alle Aktionen im Amazon-S3-Service. Der Wert "ec2:Describe*" entspricht nur den EC2-Aktionen, die mit "Describe" beginnen.

  • Verwenden Sie das Fragezeichen (?) als Platzhalter für die Übereinstimmung mit einem einzelnen Zeichen.

Anmerkung

In einem SCP können die Platzhalter (*) und (?) in einem Action- oder NotAction-Element nur von sich selbst oder am Ende einer Zeichenfolge verwendet werden. Er darf nicht am Anfang oder in der Mitte der Zeichenfolge stehen. Daher ist "servicename:action*" gültig, aber "servicename:*action" und "servicename:some*action" sind in SCPs ungültig.

Eine Liste aller Dienste und der Aktionen, die sie sowohl in AWS Organizations SCPs als auch in IAM-Berechtigungsrichtlinien unterstützen, finden Sie im IAM-Benutzerhandbuch unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS Dienste.

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Aktion und IAM-JSON-Richtlinienelemente: NotAction im IAM-Benutzerhandbuch.

Beispiel für das Action-Element

Das folgende Beispiel zeigt eine SCP mit einer Anweisung, die Kontoadministratoren erlaubt, Berechtigungen für EC2-Instances zu delegieren, zu starten, zu stoppen und zu beenden. Dies ist ein Beispiel für eine Whitelist. Es ist hilfreich, wenn die Allow *-Standardrichtlinien nicht zugewiesen sind, sodass Berechtigungen implizit automatisch abgelehnt werden. Wenn die Allow *-Standardrichtlinie nach wie vor an den Root-Benutzer, die Organisationseinheit oder das Konto angehängt ist, an die die folgende Richtlinie angehängt ist, ist die Richtlinie wirkungslos.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:DescribeImages", "ec2:DescribeKeyPairs", "ec2:DescribeSecurityGroups", "ec2:DescribeAvailabilityZones", "ec2:RunInstances", "ec2:TerminateInstances", "ec2:StopInstances", "ec2:StartInstances" ], "Resource": "*" } }

Das folgende Beispiel zeigt, wie Sie Services, die Sie nicht in zugewiesenen Konten verwenden möchten, in eine Sperrliste aufnehmen können. Es wird vorausgesetzt, dass die standardmäßigen "Allow *"-SCPs nach wie vor an alle Organisationseinheiten und an den Root angefügt sind. Dieses Beispielrichtlinie verhindert, dass die Kontoadministratoren in angefügten Konten Berechtigungen für die Services IAM, Amazon EC2 und Amazon RDS delegieren können. Aktionen von anderen Services können delegiert werden, solange keine Richtlinie angefügt ist, die diese abgelehnt.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "iam:*", "ec2:*", "rds:*" ], "Resource": "*" } }

Beispiel für das NotAction-Element

Das folgende Beispiel zeigt, wie Sie ein NotAction Element verwenden können, um AWS Dienste von der Wirkung der Richtlinie auszuschließen.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "LimitActionsInRegion", "Effect": "Deny", "NotAction": "iam:*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": "us-west-1" } } } ] }

Mit dieser Aussage können die betroffenen Konten nur Aktionen in den angegebenen Fällen ausführen, es sei denn AWS-Region, sie verwenden IAM-Aktionen.

Resource-Element

In Anweisungen, in denen das Effect-Element den Wert Allow hat, können Sie nur "*" im Resource-Element einer SCP angeben. Sie können keine einzelnen Amazon Resource Names (ARNs) angeben.

Sie können auch Platzhalterzeichen wie Sternchen (*) oder ein Fragezeichen (?) im Ressourcenelement verwenden:

  • Sie können auch ein Sternchen als Platzhalter verwenden, der mit mehreren Aktionen übereinstimmt, die Teile eines Namens gemeinsam haben.

  • Verwenden Sie das Fragezeichen (?) als Platzhalter für die Übereinstimmung mit einem einzelnen Zeichen.

In Anweisungen, in denen das Effect-Element den Wert Deny hat, können Sie einzelne ARNs angeben, wie im folgenden Beispiel gezeigt.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAccessToAdminRole", "Effect": "Deny", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRole", "iam:DeleteRolePermissionsBoundary", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:PutRolePermissionsBoundary", "iam:PutRolePolicy", "iam:UpdateAssumeRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": [ "arn:aws:iam::*:role/role-to-deny" ] } ] }

Dieser SCP schränkt IAM-Benutzer und -Rollen in betroffenen Konten ein, Änderungen an einer gemeinsamen administrativen IAM-Rolle vorzunehmen, die in allen Konten in Ihrer Organisation erstellt wurde.

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Resource im IAM-Benutzerhandbuch.

Condition-Element

Sie können ein Condition-Element in Zugriffsverweigerungsanweisungen in einer SCP angeben.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllOutsideEU", "Effect": "Deny", "NotAction": [ "cloudfront:*", "iam:*", "route53:*", "support:*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "eu-central-1", "eu-west-1" ] } } } ] }

Diese SCP verweigert den Zugriff auf alle Operationen außerhalb der Regionen eu-central-1 und eu-west-1, mit Ausnahme von Aktionen in den aufgeführten Services.

Weitere Informationen finden Sie unter IAM-JSON-Richtlinienelemente: Bedingung im IAM-Benutzerhandbuch.

Nicht unterstützte Elemente

Die folgenden Elemente werden in SCPs nicht unterstützt:

  • Principal

  • NotPrincipal

  • NotResource