Festlegen von Bedingungen: Verwenden von benutzerdefinierten Tags - Amazon Relational Database Service

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.

Festlegen von Bedingungen: Verwenden von benutzerdefinierten Tags

Amazon RDS bietet Unterstützung für das Festlegen von Bedingungen in einer IAM-Richtlinie mithilfe von benutzerdefinierten Tags.

Angenommen, Sie fügen Ihren DB-Instances ein Tag namens environment mit Werten wie beta, staging, production und so weiter hinzu. Wenn dies der Fall ist, können Sie eine Richtlinie erstellen, die bestimmte Benutzer basierend auf dem Tag-Wert environment auf DB-Instances beschränkt.

Anmerkung

Bei benutzerdefinierten Tag-Kennungen muss auf Groß- und Kleinschreibung geachtet werden.

In der folgenden Tabelle werden die RDS-Tag-Kennungen aufgeführt, die Sie in einem Condition-Element verwenden können.

RDS-Tag-ID Gilt für
db-tag DB-Instances einschließlich Lesereplikaten
snapshot-tag DB-Snapshots
ri-tag Reservierte DB-Instances
og-tag DB-Optionsgruppen
pg-tag DB-Parametergruppen
subgrp-tag DB-Subnetzgruppen
es-tag Ereignisabonnements
cluster-tag DB-Cluster
cluster-pg-tag DB-Cluster-Parametergruppen
cluster-snapshot-tag DB-Cluster-Snapshots

Die Syntax für eine benutzerdefinierte Tag-Bedingung sieht wie folgt aus:

"Condition":{"StringEquals":{"rds:rds-tag-identifier/tag-name": ["value"]} }

Beispielsweise gilt das folgende Condition-Element für DB-Instances mit dem Tag environment und dem Tag-Wert production.

"Condition":{"StringEquals":{"rds:db-tag/environment": ["production"]} }

Weitere Informationen über die Erstellung von Tags finden Sie unter Verschlagwortung von Amazon-Ressourcen RDS.

Wichtig

Wenn Sie den Zugriff auf Ihre RDS-Ressourcen mithilfe von Tags verwalten, empfehlen wir, den Zugriff auf die Tags Ihrer RDS-Ressourcen zu sichern. Sie können den Zugriff auf Tags verwalten, indem Sie Richtlinien für die Aktionen AddTagsToResource und RemoveTagsFromResource erstellen. Beispielsweise verweigert die folgende Richtlinie den Benutzern das Hinzufügen und Entfernen von Tags für alle Ressourcen. Sie können anschließend Richtlinien erstellen, die es bestimmten Benutzern ermöglichen, Tags hinzuzufügen oder zu entfernen.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyTagUpdates", "Effect":"Deny", "Action":[ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource":"*" } ] }

Um eine Liste von Amazon-RDS-Aktionen finden Sie unter Von Amazon RDS definierte Aktionen in der Service-Autorisierungs-Referenz

Beispielrichtlinien: Verwenden von benutzerdefinierten Tags

Im Folgenden finden Sie Beispiele für die Verwendung von benutzerdefinierten Tags in den IAM-Berechtigungsrichtlinien in Amazon RDS. Weitere Informationen zum Hinzufügen von Tags zu einer Amazon RDS-Ressource finden Sie unter Amazon-Ressourcennamen (ARNs) in Amazon RDS.

Anmerkung

Alle Beispiele verwenden die Region US-West-2 und enthalten ein fiktives Konto. IDs

Beispiel 1: Erteilen von Berechtigungen für Aktionen in einer Ressource mit einem bestimmten Tag und zwei verschiedenen Tag-Werten

Die folgende Richtlinie erteilt die Berechtigung, die API-Operation CreateDBSnapshot auf DB-Instances durchzuführen, bei denen das Tag stage entweder auf development oder test festgelegt ist.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowAnySnapshotName", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:snapshot:*" }, { "Sid":"AllowDevTestToCreateSnapshot", "Effect":"Allow", "Action":[ "rds:CreateDBSnapshot" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }

Die folgende Richtlinie erteilt die Berechtigung, die API-Operation ModifyDBInstance auf DB-Instances durchzuführen, bei denen das Tag stage entweder auf development oder test festgelegt ist.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowChangingParameterOptionSecurityGroups", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":" [ "arn:aws:rds:*:123456789012:pg:*", "arn:aws:rds:*:123456789012:secgrp:*", "arn:aws:rds:*:123456789012:og:*" ] }, { "Sid":"AllowDevTestToModifyInstance", "Effect":"Allow", "Action":[ "rds:ModifyDBInstance" ], "Resource":"arn:aws:rds:*:123456789012:db:*", "Condition":{ "StringEquals":{ "rds:db-tag/stage":[ "development", "test" ] } } } ] }

Bespiel 2: Explizites Verweigern der Berechtigung zum Erstellen einer DB-Instance, die bestimmte DB-Parametergruppen verwendet

Die folgende Richtlinie verweigert explizit die Berechtigung, eine DB-Instance zu erstellen, die DB-Parametergruppen mit bestimmten Tag-Werten verwendet. Sie können diese Richtlinie anwenden, wenn stets eine bestimmte kundenseitig erstellte DB-Parametergruppe beim Erstellen von DB-Instances verwendet werden muss. Die Richtlinien mit Deny werden meist genutzt, um den von einer allgemeineren Richtlinie erteilten Zugriff einzuschränken.

Eine explizit verweigerte Berechtigung überschreibt alle anderen erteilten Berechtigungen. So wird sichergestellt, dass Identitäten nicht aus Versehen eine Berechtigung erhalten, die Sie nie erteilen wollten.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyProductionCreate", "Effect":"Deny", "Action":"rds:CreateDBInstance", "Resource":"arn:aws:rds:*:123456789012:pg:*", "Condition":{ "StringEquals":{ "rds:pg-tag/usage":"prod" } } } ] }

Beispiel 3: Erteilen von Berechtigungen für Aktionen auf einer DB-Instance mit einem Instance-Namen, der den Benutzernamen als Präfix enthält

Die folgende Richtlinie erteilt die Berechtigung, eine beliebige API (mit Ausnahme von AddTagsToResource oder RemoveTagsFromResource) auf einer DB-Instance aufzurufen, deren Instance-Name den Benutzernamen als Präfix aufweist und das Tag stage mit dem Wert devo oder kein Tag stage enthält.

Die Zeile Resource in der Richtlinie kennzeichnet eine Ressource durch den Amazon-Ressourcennamen (ARN). Weitere Informationen zur Verwendung von Amazon RDS finden Sie unterAmazon-Ressourcennamen (ARNs) in Amazon RDS.

JSON
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowFullDevAccessNoTags", "Effect":"Allow", "NotAction":[ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource":"arn:aws:rds:*:123456789012:db:${aws:username}*", "Condition":{ "StringEqualsIfExists":{ "rds:db-tag/stage":"devo" } } } ] }