Wie erstelle ich eine IAM-Richtlinie für tagbasierte Einschränkungen mit den Bedingungsschlüsseln PrincipalTag, ResourceTag, RequestTag und TagKeys?
Ich möchte eine AWS Identity and Access Management (IAM)-Richtlinie für tagbasierte Einschränkungen erstellen. Ich möchte die Bedingungsschlüssel PrincipalTag, ResourceTag, RequestTag und TagKeys verwenden.
Behebung
Die folgenden IAM-Beispielrichtlinien verwenden Bedingungsschlüssel, um tagbasierte Einschränkungen zu erstellen.
**Hinweis:**Um zu ermitteln, welche API-Aktionen Sie ausführen können, empfiehlt es sich, die API-Dokumentation für den Dienst, den Sie verwenden, zu überprüfen.
PrincipalTag-Bedingungsschlüssel
Verwenden Sie den Bedingungsschlüssel aws:PrincipalTag/tag-key, um das Tag, das an den Prinzipal angehängt ist, der die Anfrage stellt, mit dem Tag in der IAM-Richtlinie abzugleichen.
Die folgende Beispiel-IAM-Richtlinie sieht Einschränkungen für einen Amazon Simple Storage Service (Amazon S3) Bucket vor. Die Amazon-S3-Aktion PutObject verweigerte allen Benutzern außer denen mit dem Titel Product-Manager den Zugriff auf den Bucket:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAllButProductManagers", "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::productionbucket/*" ], "Condition": { "StringNotEquals": { "aws:PrincipalTag/job-title": "Product-Manager" } } } ] }
ResourceTag-Bedingungsschlüssel
Der Bedingungsschlüssel aws:ResourceTag/tag-key vergleicht das in der IAM-Richtlinie angegebene Tag-Schlüssel-Wert-Paar mit dem Schlüssel-Wert-Paar, das an die AWS-Ressource angehängt ist. Weitere Informationen finden Sie unter Steuern des Zugriffs auf AWS-Ressourcen.
Sie können diesen Bedingungsschlüssel mit der globalen aws:ResourceTag-Version und AWS-Services wie ec2:ResourceTag verwenden. Weitere Informationen finden Sie unter Aktionen, Ressourcen und Bedingungsschlüssel für AWS-Dienste.
Die folgende Beispiel-IAM-Richtlinie ermöglicht Benutzern das Starten, Stoppen und Beenden von Instances, die sich in der Test-Umgebung befinden:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowOnlyForTestEnvironment", "Effect": "Allow", "Action": [ "ec2:TerminateInstances", "ec2:StartInstances", "ec2:StopInstances" ], "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ec2:ResourceTag/Env": "test" } } } ] }
RequestTag-Bedingungsschlüssel
Verwenden Sie den Bedingungsschlüssel aws:RequestTag/tag-key, um das in der Benutzeranfrage übergebene Schlüssel-Wert-Paar mit dem in der IAM-Richtlinie angegebenen Tag-Paar zu vergleichen. Sie können diesen Bedingungsschlüssel für Aktionen verwenden, die eine Ressource oder ein Ressourcen-Tag erstellen und die den Wert des Tags überprüfen.
Die folgende Beispielrichtlinie zwingt Benutzer, ein bestimmtes Env-Tag zu erstellen, wenn die Benutzer ein Amazon Elastic Block Store (Amazon EBS) Volume erstellen. Env muss die Dev-, Prod - oder QA-Werte haben:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateVolumeWithEnvTag", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/Env": [ "Dev", "Prod", "QA" ] } } } ] }
TagKeys-Bedingungsschlüssel
Verwenden Sie den Bedingungsschlüssel aws:TagKeys, um die Tag-Schlüssel in einer Anfrage mit den in der IAM-Richtlinie angegebenen Schlüsseln zu vergleichen. Dieser Bedingungsschlüssel validiert die Tag-Schlüssel, die an eine Ressource angehängt sind.
Da Sie in einer Anfrage mehrere Tag-Schlüssel-Wert-Paare definieren können, kann die Anfrage mehrere Werte haben. Verwenden Sie die Mengenoperatoren ForAllValues oder ForAnyValue, um diese Werte zu vergleichen.
Die folgende Beispielrichtlinie schränkt die für eine AWS-Ressource erstellten Tags ein. Die Tags Env und CostCenter sind die einzigen Tag-Schlüssel, die Benutzer mit einem neuen Amazon EBS Volume erstellen können. Die Verwendung des Mengenoperators ForAllValues mit aws:TagKeys beschränkt Benutzer darauf, nur die erforderlichen Tags an die AWS-Ressource anzuhängen. Diese Richtlinie verlangt nicht, dass Benutzer diese Tag-Schlüssel in der Anfrage zur Ressourcenerstellung angeben. Stattdessen erlaubt die Richtlinie Benutzern nicht, Tags mit anderen Schlüssel-Wert-Paaren zu erstellen:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:*:*:volume/*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "Env", "CostCenter" ] } } } ] }
Ähnliche Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 2 Monaten