Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Amazon RDS prend en charge la spécification de conditions dans une stratégie IAM à l'aide de balises personnalisées.
Par exemple, supposons que vous ajoutiez une balise nommée environment
à vos instances de base de données avec des valeurs telles que beta
, staging
, production
, etc. Dans ce cas, vous pouvez créer une stratégie qui limite certains utilisateurs aux instances de base de données fondées sur la valeur de balise environment
.
Note
Les identifiants des balises personnalisées sont sensibles à la casse.
Le tableau suivant répertorie les identifiants des balises RDS que vous pouvez utiliser dans un élément Condition
.
Identifiant de balise RDS | S'applique à |
---|---|
db-tag |
Instances de base de données, y compris les réplicas en lecture |
snapshot-tag |
Instantanés de base de données |
ri-tag |
Instances de base de données réservées |
og-tag |
Groupes d'options DB |
pg-tag |
Groupes de paramètres DB |
subgrp-tag |
Groupes de sous-réseaux DB |
es-tag |
Abonnements aux événements |
cluster-tag |
Clusters DB |
cluster-pg-tag |
Groupes de paramètres de cluster DB |
cluster-snapshot-tag |
Instantanés de cluster DB |
La syntaxe d'une condition de balise personnalisée est la suivante :
"Condition":{"StringEquals":{"rds:
rds-tag-identifier
/tag-name
":
["value
"]} }
Par exemple, l'élément Condition
suivant s'applique aux instances de bases de données avec une balise nommée environment
et la valeur de balise production
.
"Condition":{"StringEquals":{"rds:db-tag/
environment
": ["production
"]} }
Pour plus d'informations sur la création de balises, consultez Marquage d' Amazon RDS.
Important
Si vous gérez l'accès à vos ressources RDS à l'aide du balisage, nous vous recommandons de sécuriser l'accès aux balises pour vos ressources RDS. Vous pouvez gérer l'accès aux balises en créant des stratégies pour les actions AddTagsToResource
et RemoveTagsFromResource
. Par exemple, la politique suivante refuse aux utilisateurs la capacité à ajouter ou supprimer des balises pour toutes les ressources. Vous pouvez alors créer des politiques pour autoriser des utilisateurs spécifiques à ajouter ou supprimer des balises.
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"DenyTagUpdates",
"Effect":"Deny",
"Action":[
"rds:AddTagsToResource",
"rds:RemoveTagsFromResource"
],
"Resource":"*"
}
]
}
Pour afficher la liste des actions Amazon RDS, consultez Actions définies par Amazon RDS dans Référence de l'autorisation de service.
Exemples de politiques : Utilisation de balises personnalisées
Les exemples suivants montrent comment vous pouvez utiliser des balises personnalisées dans les stratégies d'autorisation IAM Amazon RDS. Pour plus d'informations sur l'ajout de balises à une ressource Amazon RDS, consultez Noms des ressources Amazon (ARNs) dans Amazon RDS.
Note
Tous les exemples utilisent la région us-west-2 et contiennent un compte fictif. IDs
Exemple 1 : Accorder une autorisation pour des actions sur une ressource à l'aide d'une balise spécifique avec deux valeurs différentes
La politique suivante accorde l'autorisation d'exécuter l'opération d'API CreateDBSnapshot
sur les instances de base de données avec la balise stage
définie sur development
ou test
.
{
"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"
]
}
}
}
]
}
La politique suivante accorde l'autorisation d'exécuter l'opération d'API ModifyDBInstance
sur les instances de base de données avec la balise stage
définie sur development
ou test
.
{
"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"
]
}
}
}
]
}
Exemple 2 : Refuser explicitement l'autorisation de créer une instance de base de données qui utilise les groupes de paramètres DB spécifiés
La politique suivante refuse explicitement l'autorisation de créer une instance de base de données qui utilise les groupes de paramètres DB avec des valeurs de balise spécifiques. Vous pouvez appliquer cette politique si vous avez besoin qu'un groupe de paramètres DB créé par le client soit toujours utilisé lors de la création des instances de bases de données. Notez que les stratégies qui utilisent Deny
sont le plus souvent utilisées pour limiter un accès accordé par une stratégie plus large.
Le refus explicite d'une autorisation a priorité sur toutes les autres autorisations accordées. Cela garantit que des identités n'obtiendront pas par erreur une autorisation que vous ne souhaitez pas accorder.
{
"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"
}
}
}
]
}
Exemple 3 : Accorder une autorisation pour des actions sur une instance de base de données dont le nom d'instance a un nom d'utilisateur comme préfixe
La stratégie suivante accorde l'autorisation d'appeler une API quelconque (à l'exception de AddTagsToResource
et de RemoveTagsFromResource
) sur une instance de base de données dont le nom d'instance de base de données a comme préfixe le nom de l'utilisateur et a une balise nommée stage
égale à devo
ou qui n'a pas de balise nommée stage
.
La ligne Resource
dans la stratégie identifie une ressource par son Amazon Resource Name (ARN). Pour plus d'informations sur l'utilisation ARNs des ressources Amazon RDS, consultezNoms des ressources Amazon (ARNs) dans Amazon RDS.
{
"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"
}
}
}
]
}