IAM-Richtlinienelemente: Variablen und Tags - AWS Identity and Access Management

IAM-Richtlinienelemente: Variablen und Tags

Sie können AWS Identity and Access Management (IAM)-Richtlinienvariablen als Platzhalter verwenden, wenn Sie beim Schreiben einer Richtlinie den genauen Wert einer Ressource oder eines Bedingungsschlüssels nicht kennen.

Anmerkung

Wenn AWS eine Variable nicht auflösen kann, kann dies dazu führen, dass die gesamte Anweisung ungültig ist. Wenn Sie beispielsweise die Variable aws:TokenIssueTime verwenden, wird diese nur dann in einen Wert aufgelöst, wenn der Anforderer für die Authentifizierung temporäre Anmeldeinformationen (eine IAM-Rolle) verwendet hat. Um zu verhindern, dass Variablen ungültige Anweisungen verursachen, verwenden Sie den ... IfExists-Bedingungsoperator.

Introduction

In IAM-Richtlinien ermöglichen Ihnen viele Aktionen, einen Namen für die speziellen Ressourcen bereitzustellen, für die Sie den Zugriff steuern möchten. Die folgende Richtlinie erlaubt dem Benutzer zum Beispiel, Objekte mit dem Präfix David im Amazon S3-Bucket mybucket aufzulisten, zu lesen und zu schreiben.

{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket"], "Condition": {"StringLike": {"s3:prefix": ["David/*"]}} }, { "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket/David/*"] } ] }

In manchen Fällen kennen Sie vielleicht den genauen Namen der Ressource nicht, wenn Sie die Richtlinie schreiben. Sie können die Richtlinie so verallgemeinern, dass sie für viele Benutzer funktioniert, ohne dass eine eindeutige Kopie der Richtlinie für jeden Benutzer erstellt werden muss. Zum Beispiel könnten Sie eine Richtlinie schreiben, die jedem Benutzer erlaubt, auf seine eigenen Objekte in einem Amazon S3-Bucket zuzugreifen, wie im vorherigen Beispiel. Erstellen Sie jedoch keine separate Richtlinie für jeden Benutzer, die den Namen des Benutzers explizit als Teil der Ressource angibt. Erstellen Sie stattdessen eine einzelne Gruppenrichtlinie, die für jeden Benutzer in dieser Gruppe funktioniert.

Sie können dies mithilfe von Richtlinienvariablen tun, einer Funktion, mit der Sie Platzhalter in einer Richtlinie angeben können. Wenn die Richtlinie ausgewertet wird, werden die Richtlinienvariablen mit Werten aus dem Kontext der Anforderung selbst ersetzt.

Das folgende Beispiel zeigt eine Richtlinie für einen Amazon S3-Bucket, die eine Richtlinienvariable verwendet.

{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket"], "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}} }, { "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"] } ] }

Wenn diese Richtlinie ausgewertet wird, ersetzt IAM die Variable ${aws:username} durch den benutzerfreundlichen Namen des aktuellen Benutzers. Das bedeutet, dass eine einzelne Richtlinie, angewendet auf eine Gruppe von Benutzern, den Zugriff auf einen Bucket steuern kann. Dies geschieht, indem der Benutzername als Teil des Ressourcennamens verwendet wird.

Die Variable wird mithilfe des Präfix $, gefolgt von einem Paar geschweifter Klammern ({ }), gekennzeichnet. Innerhalb der ${ }-Zeichen können Sie den Namen des Wertes aus der Anforderung einfügen, den Sie in der Richtlinie verwenden möchten. Die Werte, die Sie verwenden können, werden weiter unten auf dieser Seite besprochen.

Anmerkung

Zur Verwendung der Richtlinienvariablen müssen Sie das Version-Element in eine Anweisung einfügen und die Version muss auf eine Version gesetzt werden, die Richtlinienvariablen unterstützt. Variablen wurden in Version eingeführt 2012-10-17. Frühere Versionen der Richtliniensprache unterstützen Richtlinienvariablen nicht. Wenn Sie das Version-Element nicht einfügen und nicht auf ein geeignetes Versionsdatum festlegen, werden Variablen wie ${aws:username} als tatsächliche Zeichenfolgen in der Richtlinie behandelt.

Das Richtlinienelement Version unterscheidet sich von einer Richtlinienversion. Das Richtlinienelement Version wird innerhalb einer Richtlinie verwendet und gibt die Version der Richtliniensprache an. Eine Richtlinienversion hingegen wird erstellt, wenn Sie in IAM eine kundenverwaltete Richtlinie bearbeiten. Die vorhandene Richtlinie wird von der geänderten Richtlinie nicht überschrieben. IAM erstellt stattdessen eine neue Version der verwalteten Richtlinie. Weitere Informationen zum Richtlinienelement Version finden Sie unter IAM-JSON-Richtlinienelemente: Version. Weitere Informationen zu den Richtlinienversionen finden Sie unter Versioning von IAM-Richtlinien.

Sie können Richtlinienvariablen auf ähnliche Weise verwenden, um jedem Benutzer zu erlauben, die eigenen Zugriffsschlüssel zu verwalten. Eine Richtlinie, die einem Benutzer das programmgesteuerte Ändern des Zugriffsschlüssels für Benutzer David erlaubt, sieht folgendermaßen aus:

{ "Version": "2012-10-17", "Statement": [{ "Action": ["iam:*AccessKey*"], "Effect": "Allow", "Resource": ["arn:aws:iam::account-id:user/David"] }] }

Wenn diese Richtlinie an den Benutzer David angefügt wird, kann dieser Benutzer seinen eigenen Zugriffsschlüssel ändern. Wie bei den Richtlinien für den Zugriff auf benutzerspezifische Amazon S3-Objekte müssten Sie für jeden Benutzer eine separate Richtlinie erstellen, die den Namen des Benutzers enthält. Anschließend müssten Sie die einzelnen Richtlinien an die jeweiligen Benutzer anfügen.

Mithilfe von Richtlinienvariablen können Sie eine Richtlinie wie die folgende erstellen:

{ "Version": "2012-10-17", "Statement": [{ "Action": ["iam:*AccessKey*"], "Effect": "Allow", "Resource": ["arn:aws:iam::account-id:user/${aws:username}"] }] }

Wenn Sie eine Richtlinienvariable auf diese Weise für den Benutzernamen verwenden, benötigen Sie keine separate Richtlinie für jeden einzelnen Benutzer. Stattdessen können Sie diese neue Richtlinie einer IAM-Gruppe anfügen, die alle Benutzer enthält, denen erlaubt sein soll, die eigenen Zugriffsschlüssel zu verwalten. Wenn ein Benutzer eine Anforderung zur Änderung seines Zugriffsschlüssels sendet, ersetzt IAM die ${aws:username}-Variable mit dem Benutzernamen aus der aktuellen Anforderung und wertet die Richtlinie.

Tags als Richtlinienvariablen

Bei einigen AWS-Services können Sie eigene benutzerdefinierte Attribute an Ressourcen anfügen, die von diesen Services erstellt werden. Sie können beispielsweise Tags auf Amazon S3-Buckets oder IAM-Benutzer anwenden. Diese Tags sind Schlüssel-Wert-Paare. Sie definieren den Tag-Schlüsselnamen und den Wert, der diesem Schlüsselnamen zugeordnet ist. Beispielsweise können Sie ein Tag mit einem department-Schlüssel und einem Human Resources-Wert erstellen. Weitere Informationen zum Markieren von IAM-Entitäten finden Sie unter Markieren von IAM-Ressourcen. Informationen über das Markieren von Ressourcen, die von anderen AWS-Services erstellt wurden, finden Sie in der Dokumentation des jeweiligen Services. Informationen zur Verwendung des Tag-Editors finden Sie unter Arbeiten mit dem Tag-Editor im AWS Management Console-Leitfaden.

Sie können IAM-Ressourcen markieren, um das Entdecken, Organisieren und Nachverfolgen Ihrer IAM-Ressourcen zu vereinfachen. Sie können IAM-Identitäten auch markieren, um den Zugriff auf Ressourcen oder auf die Markierung zu kontrollieren. Weitere Informationen über die Verwendung von Tags zur Zugriffskontrolle finden Sie unter Steuerung des Zugriffs auf und für IAM-Benutzer und IAM-Rollen mithilfe von Tags.

Wo Richtlinienvariablen verwendet werden können

Sie können Richtlinienvariablen im Resource-Element und in Zeichenfolgenvergleichen im Condition-Element verwenden.

"Resource"-Element

Sie können eine Richtlinienvariable im Resource-Element verwenden, jedoch nur im Ressourcenbereich des ARN. Dieser Teil des ARN erscheint nach dem 5. Doppelpunkt (:). Sie können keine Variable verwenden, um Teile des ARN vor dem 5. Doppelpunkt zu ersetzen, z. B. den Service oder das Konto. Weitere Informationen zum ARN-Format finden Sie unter IAM-ARNs.

Die folgende Richtlinie kann an eine Gruppe angefügt werden. Jeder Benutzer der Gruppe erhält vollen programmatischen Zugriff auf ein benutzerspezifisches Objekt (sein eigenes "Heimatverzeichnis") in Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Action": ["s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket"], "Condition": {"StringLike": {"s3:prefix": ["${aws:username}/*"]}} }, { "Action": [ "s3:GetObject", "s3:PutObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::mybucket/${aws:username}/*"] } ] }
Anmerkung

In diesem Beispiel wird der aws:username-Schlüssel verwendet, der den Anzeigenamen des Benutzers (z. B. "Adele" oder "David") zurückgibt. Unter bestimmten Umständen sollten Sie stattdessen den aws:userid-Schlüssel verwenden, einen global eindeutigen Wert. Weitere Informationen finden Sie unter Eindeutige Bezeichner.

Die folgende Richtlinie kann für eine IAM-Gruppe verwendet werden. Sie gibt den Benutzern dieser Gruppe die Möglichkeit, Warteschlangen zu erstellen, zu verwenden und zu löschen, die ihren Namen tragen und sich in der Region us-east-2 befinden.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListForConsole", "Effect": "Allow", "Action": "sqs:ListQueues", "Resource": "*" }, { "Sid": "AllQueueActions", "Effect": "Allow", "Action": "sqs:*", "Resource": "arn:aws:sqs:us-east-2:*:${aws:username}-queue" } ] }

Um einen Teil eines ARN durch einen Tag-Wert zu ersetzen, umgeben Sie das Präfix und den Schlüsselnamen mit ${}. Zum Beispiel bezieht sich das folgende Resource-Element nur auf einen Bereich, der den gleichen Namen wie der Wert im department-Tag des anfragenden Benutzers hat.

"Resource": ["arn:aws:s3:::bucket/${aws:PrincipalTag/department}"]

"Condition"-Element

Sie können eine Richtlinienvariable für Condition-Werte in jeder Bedingung verwenden, die die String-Operatoren oder die ARN-Operatoren beinhaltet. String-Operatoren beinhalten StringEquals, StringLike und StringNotLike. ARN-Operatoren beinhalten ArnEquals und ArnLike. Sie können eine Richtlinienvariable nicht mit anderen Operatoren wie Numeric, Date, Boolean, Binary, IP Address oder Null verwenden. Weitere Hinweise zu Bedingungsoperatoren finden Sie unter IAM-JSON-Richtlinienelemente: Bedingungsoperatoren.

Mit der folgenden Amazon SNS-Themarichtlinie können Benutzer im AWS-Konto 999999999999 das Thema verwalten (d. h. alle Aktionen für das Thema durchführen). Diese Erlaubnis wird jedoch nur erteilt, wenn die URL mit ihrem AWS-Benutzernamen übereinstimmt.

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "999999999999" }, "Effect": "Allow", "Action": "sns:*", "Condition": { "StringLike": { "sns:endpoint": "https://example.com/${aws:username}/" }, "StringEquals": { "sns:Protocol": "https" } } } ] }

Beim Referenzieren eines Tags in einem Condition-Elementausdruck verwenden Sie das entsprechende Präfix und den Schlüsselnamen als Bedingungsschlüssel. Verwenden Sie dann den Wert, den Sie testen möchten, im Bedingungswert. Das folgende Richtlinienbeispiel erlaubt beispielsweise vollen Zugriff auf IAM-Benutzer, aber nur, wenn das Tag costCenter dem Benutzer zugeordnet ist. Das Tag muss auch einen Wert von entweder 12345 oder 67890 haben. Wenn das Tag keinen Wert oder einen anderen Wert hat, schlägt die Anforderung fehl.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:*user*" ], "Resource": "*", "Condition": { "StringLike": { "iam:ResourceTag/costCenter": [ "12345", "67890" ] } } } ] }

Anforderungsinformationen, die Sie für Richtlinienvariablen verwenden können

Sie können das Condition-Element einer JSON-Richtlinie verwenden, um Schlüssel im Anforderungskontext mit Schlüsselwerten zu vergleichen, die Sie in Ihrer Richtlinie angeben. Wenn Sie eine Richtlinienvariable verwenden, ersetzt AWS anstelle der Variablen in Ihrer Richtlinie einen Wert aus dem Anforderungskontextschlüssel.

In allen Anforderungen verfügbare Informationen

Richtlinien enthalten Schlüssel, deren Werte Sie als Richtlinienvariablen verwenden können. (Unter bestimmten Umständen erhalten die Schlüssel keinen Wert. Informationen hierzu finden Sie im Anschluss an diese Liste.)

  • aws:CurrentTime Dies kann für Bedingungen verwendet werden, die das Datum und die Uhrzeit überprüfen.

  • aws:EpochTime Dies ist das Datum in Epoch- oder Unix-Zeit, für die Verwendung mit Datums- und Zeitbedingungen.

  • aws:TokenIssueTime Dies ist das Datum und die Uhrzeit der Ausstellung temporärer Sicherheitsanmeldeinformationen und kann mit Datums- und Uhrzeitbedingungen verwendet werden. Hinweis: Dieser Schlüssel ist nur in Anforderungen verfügbar, die mithilfe temporärer Sicherheitsanmeldeinformationen signiert werden. Weitere Informationen über temporäre Sicherheitsanmeldeinformationen finden Sie unter Temporäre IAM Sicherheitsanmeldeinformationen.

  • aws:PrincipalType Dieser Wert gibt an, ob der Auftraggeber ein Konto, ein Benutzer, eine verbundene oder eine angenommene Rolle ist. Weitere Informationen finden Sie in der weiter unten folgenden Erläuterung.

  • aws:SecureTransport Dies ist ein boolescher Wert, der angibt, ob die Anforderung mithilfe von SSL gesendet wurde.

  • aws:SourceIp Dies ist die IP-Adresse des Auftraggebers, für die Verwendung mit Bedingungen im Zusammenhang mit der IP-Adresse. Unter Bedingungsoperatoren für IP-Adressen finden Sie Informationen dazu, wann SourceIp gültig ist und wann Sie stattdessen einen VPC-spezifischen Schlüssel verwenden sollten.

  • aws:UserAgent Dieser Wert ist eine Zeichenfolge, die Informationen zu der Client-Anwendung des Auftraggebers enthält. Diese Zeichenfolge wird vom Client erzeugt und kann unzuverlässig sein. Sie können diesen Kontext-Schlüssel nur von der verwenden AWS CLI.

  • aws:userid Dieser Wert ist die eindeutige ID für den aktuellen Benutzer. Weitere Informationen finden Sie im nachfolgenden Diagramm.

  • aws:username Dies ist eine Zeichenfolge, die den Anzeigenamen des aktuellen Benutzers enthält. Weitere Informationen finden Sie im nachfolgenden Diagramm.

  • ec2:SourceInstanceARN Dies ist der Amazon-Ressourcenname (ARN) der Amazon EC2-Instance, von der die Anforderung gestellt wird. Dieser Schlüssel ist nur vorhanden, wenn die Anforderung von einer Amazon EC2-Instance kommt, die eine einem EC2-Instance-Profil zugeordnete IAM-Rolle verwendet.

Wichtig

Bei Schlüsselnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Beispiel: aws:CurrentTime ist gleichbedeutend mit AWS:currenttime.

Auftraggeber-Schlüsselwerte

Die Werte für aws:username, aws:userid und aws:PrincipalType hängen davon ab, welche Art von Auftraggeber die Anfrage ausgelöst hat. Die Anfrage kann beispielsweise über die Anmeldeinformationen eines IAM-Benutzers, einer IAM-Rolle oder AWS-Konto-Stammbenutzer erfolgen. In der folgenden Tabelle sind die Werte für diese Schlüssel für verschiedene Auftraggebertypen .

Auftraggeber aws:username aws:userid aws:PrincipalType
AWS-Konto-Stammbenutzer (Nicht vorhanden) AWS-Konto-ID Account
IAM-Benutzer IAM-Benutzername Eindeutige ID User
Verbundbenutzer (Nicht vorhanden) Konto:Vom-Aufrufer-angegebener-Name FederatedUser
Web-Verbundbenutzer (Login with Amazon, Amazon Cognito, Facebook, Google)

Informationen über Richtlinienschlüssel, die verfügbar sind, wenn Sie den Web-Identitätsverbund verwenden, finden Sie unter Identifizieren von Benutzern mit Web-Identitätsverbund.

(Nicht vorhanden)

role-id:caller-specified-role-name

Hierbei ist role-id die eindeutige ID der Rolle und „caller-specified-role-name“ wird vom RoleSessionName-Parameter angegeben, der an die AssumeRoleWithWebIdentity-Anforderung übergeben wird.

AssumedRole
SAML-Verbundbenutzer

Informationen über Richtlinienschlüssel, die verfügbar sind, wenn Sie den SAML-Verbund verwenden, finden Sie unter Eindeutige Identifizierung von Benutzern im SAML-basierten Verbund.

(Nicht vorhanden)

role-id:caller-specified-role-name

wobei role-id die eindeutige Kennung der Rolle ist und der vom Anrufer angegebene Rollenname durch das Element "Attribut" mit dem Namensattribut auf https://aws.amazon.com/SAML/attributes/RoleSessionName festgelegt ist.

AssumedRole
Angenommene Rolle (Nicht vorhanden)

role-id:caller-specified-role-name

Hierbei ist role-id die eindeutige ID der Rolle und wird „caller-specified-role-name“ von dem RoleSessionName-Parameter angegeben, der an die AssumeRole-Anforderung übergeben wird.

AssumedRole
Eine einer Amazon EC2-Instance zugeordnete Rolle (Nicht vorhanden)

Rollen-ID:EC2-Instance-ID

Hierbei ist role-id die eindeutige ID der Rolle und „es2-instance-id“ der eindeutige Bezeichner der EC2-Instance.

AssumedRole
Anonymer Anrufer (nur Amazon SQS, Amazon SNS und Amazon S3) (Nicht vorhanden) (Nicht vorhanden) Anonymous

Beachten Sie für die Elemente in dieser Tabelle Folgendes:

  • Nicht vorhanden bedeutet, dass der Wert nicht in den aktuellen Anforderungsinformationen vorhanden ist und jeder Versuch, ihn zuzuordnen, fehlschlägt und dafür sorgt, dass die Anforderung abgelehnt wird.

  • Rollen-ID ist ein eindeutiger Bezeichner, der jeder Rolle bei der Erstellung zugeordnet wird. Sie können diese Rollen-ID mit dem AWS CLI-Befehl aws iam get-role --role-name rolename anzeigen:

  • Vom-Aufrufer-angegebener-Name und Vom-Aufrufer-angegebener-Rollenname sind Namen, die vom aufrufenden Prozess (wie etwa einer Anwendung oder einem Service) übergeben werden, wenn er einen Aufruf tätigt, um temporäre Anmeldeinformationen zu erhalten.

  • EC2-Instance-ID ist ein Wert, der der Instance zugeordnet wird, wenn sie gestartet und auf der Seite Instances der Amazon EC2-Konsole angezeigt wird. Sie können auch die Instance-ID anzeigen, indem Sie den AWS CLI-Befehl ausführen: aws ec2 describe-instances

In Anforderungen für Verbundbenutzer verfügbare Informationen

Verbundbenutzer sind Benutzer, die über ein anderes System als IAM authentifiziert werden. Beispielsweise kann ein Unternehmen eine Anwendung zur internen Verwendung haben, die Aufrufe an tätigt AWS. Es könnte unpraktisch sein, jedem Unternehmensbenutzer, der die Anwendung verwendet, eine IAM-Identität zu geben. Das Unternehmen kann stattdessen eine Proxy-Anwendung (Middle-Tier) verwenden, die eine einzige IAM-Identität aufweist, oder das Unternehmen könnte einen SAML-Identitätsanbieter nutzen. Die Proxy-Anwendung oder der SAML-Identitätsanbieter authentifiziert einzelne Benutzer, die das Unternehmensnetzwerk verwenden. Eine Proxy-Anwendung kann dann ihre IAM-Identität verwenden, um temporäre Sicherheitsanmeldeinformationen für einzelne Benutzer abzurufen. Ein SAML-Identitätsanbieter kann faktisch Identitätsinformationen gegen temporäre AWS-Sicherheitsanmeldeinformationen austauschen. Die temporären Anmeldeinformationen können dann für den Zugriff auf AWS-Ressourcen verwendet werden.

Ebenso können Sie eine Anwendung für ein mobiles Gerät erstellen, in dem die Anwendung auf AWS-Ressourcen zugreifen muss. In diesem Fall können Sie den Web-Identitätsverbund verwenden, wobei die Anwendung den Benutzer mithilfe eines bekannten Identitätsanbieters authentifiziert, wie Login with Amazon, Amazon Cognito, Facebook oder Google. Die Anwendung kann dann die Authentifizierungsinformationen des Benutzers von diesen Anbietern verwenden, um temporäre Sicherheitsanmeldeinformationen für den Zugriff auf AWS-Ressourcen abzurufen.

Für die Verwendung des Web-Identitätsverbunds wird empfohlen, Amazon Cognito und die AWS-SDKs für Mobilgeräte zu nutzen. Weitere Informationen finden Sie unter:

Servicespezifische Informationen

Anforderungen können auch servicespezifische Schlüssel und Werte in ihrem Anforderungskontext umfassen. Beispiele sind unter anderem:

  • s3:prefix

  • s3:max-keys

  • s3:x-amz-acl

  • sns:Endpoint

  • sns:Protocol

Informationen zu servicespezifischen Schlüsseln, die Sie verwenden können, um Werte für Richtlinienvariablen abzurufen, finden Sie in der Dokumentation für die einzelnen Services. Lesen Sie beispielsweise die folgenden Themen:

Sonderzeichen

Es gibt einige spezielle vordefinierte Richtlinienvariablen, die feste Werte haben. Diese bieten Ihnen die Möglichkeit, Zeichen darzustellen, die sonst eine besondere Bedeutung haben. Wenn diese Sonderzeichen Teil der Zeichenfolge sind, die Sie versuchen zusammenzubringen, und Sie sie einfach einfügen, würden sie fehlinterpretiert werden. Beispielsweise würde das Einfügen eines Sternchens (*) in die Zeichenfolge als Platzhalter interpretiert werden, der für andere Zeichen steht, und nicht tatsächlich als *. In solchen Fällen können Sie die folgenden vordefinierten Richtlinienvariablen verwenden:

  • ${*} - zu verwenden, wenn Sie ein * (Sternchen) benötigen

  • ${?} - zu verwenden, wenn Sie ein ? (Fragezeichen) benötigen

  • ${$} - zu verwenden, wenn Sie ein $ (Dollarzeichen) benötigen

Diese vordefinierten Richtlinienvariablen können in einer beliebigen Zeichenfolge verwendet werden, in der Sie reguläre Richtlinien nutzen können.

Festlegen von Standardwerten

Wenn Sie Ihrer Richtlinie eine Variable hinzufügen, können Sie einen Standardwert für die Variable angeben. Wenn eine Variable nicht vorhanden ist, verwendet AWS den von Ihnen bereitgestellten Standardtext.

Um einer Variablen einen Standardwert hinzuzufügen, umgeben Sie den Standardwert mit einfachen Anführungszeichen (' '), und trennen Sie den Variablentext und den Standardwert durch Komma und Leerzeichen (, ) enthalten.

Zum Beispiel, wenn ein Prinzipal mit team=yellow gekennzeichnet ist, können sie auf ExampleCorp's-Amazon-S3-Bucket namens DOC-EXAMPLE-BUCKET-yellow zugreifen. Eine Richtlinie mit dieser Ressource ermöglicht es Teammitgliedern, auf ihren Team-Bucket zuzugreifen, nicht jedoch auf die anderer Teams. Für Benutzer ohne Team-Tags wird der Standardwert von company-wide für den Bucket-Namen eingestellt. Diese Benutzer können nur auf DOC-EXAMPLE-BUCKET-company-wideBucket zugreifen, wo umfassende Informationen anzeigt werden können, z. B. Anweisungen für den Beitritt zu einem Team.

"Resource":"arn:aws:s3:::DOC-EXAMPLE-BUCKET-${aws:PrincipalTag/team, 'company-wide'}"

Weitere Informationen

Weitere Informationen zu Richtlinien finden Sie in den folgenden Themen: