Politiques d'autorisation pour créer, modifier et supprimer des ressources dans Aurora - Amazon Aurora

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.

Politiques d'autorisation pour créer, modifier et supprimer des ressources dans Aurora

Les sections suivantes présentent des exemples de politiques d'autorisation qui accordent et limitent l'accès aux ressources :

Autoriser un utilisateur à créer des instances de base de données dans un AWS compte

Voici un exemple de politique qui permet au compte doté de l'ID de 123456789012 créer des instances de base de données pour votre AWS compte. La stratégie exige que le nom de la nouvelle instance de base de données commence par test. La nouvelle instance de base de données doit également utiliser le moteur de base de données MySQL et la classe d'instance de base de données db.t2.micro. En outre, la nouvelle instance de base de données doit utiliser un groupe d'options et un groupe de paramètres de base de données commençant par default, et elle doit utiliser le groupe de sous-réseaux default.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDBInstanceOnly", "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:db:test*", "arn:aws:rds:*:123456789012:og:default*", "arn:aws:rds:*:123456789012:pg:default*", "arn:aws:rds:*:123456789012:subgrp:default" ], "Condition": { "StringEquals": { "rds:DatabaseEngine": "mysql", "rds:DatabaseClass": "db.t2.micro" } } } ] }

La stratégie inclut une instruction unique spécifiant les autorisations suivantes pour l'utilisateur  :

  • La politique permet au compte de créer une instance de base de données à l'aide de l'opération Create DBInstance API (cela s'applique également à la create-db-instance AWS CLI commande et au AWS Management Console).

  • L'élément Resource spécifie que l'utilisateur peut effectuer des actions sur et avec des ressources. Vous indiquez des ressources à l'aide d'un nom ARN (Amazon Resources Name). Cet ARN inclut le nom du service auquel appartient la ressource (rds), la AWS région (*indique n'importe quelle région dans cet exemple), le numéro de AWS compte (123456789012il s'agit du numéro de compte dans cet exemple) et le type de ressource. Pour plus d'informations sur la création ARNs, consultezNoms des ressources Amazon (ARNs) dans Amazon RDS.

    L'élément Resource dans l'exemple spécifie les contraintes de stratégie suivantes sur les ressources de l'utilisateur :

    • L'identifiant d'instance de base de données de la nouvelle instance de base de données doit commencer par test (par exemple, testCustomerData1, test-region2-data).

    • Le groupe d'options de la nouvelle instance de base de données doit commencer par default.

    • Le groupe de paramètres de base de données de la nouvelle instance de base de données doit commencer par default.

    • Le groupe de sous-réseaux de la nouvelle instance de base de données doit être le groupe de sous-réseaux default.

  • L'élément Condition indique que le moteur de base de données doit être MySQL et la classe d'instance de base de données doit être db.t2.micro. L'élément Condition indique les conditions lorsqu'une stratégie doit entrer en vigueur. Vous pouvez ajouter des autorisations ou des restrictions supplémentaires à l'aide de l'élément Condition. Pour plus d'informations sur la spécification de conditions, consultez Clés de conditions de politique pour Aurora. Cet exemple spécifie les conditions rds:DatabaseEngine et rds:DatabaseClass. Pour plus d'informations sur les valeurs de condition valides pourrds:DatabaseEngine, consultez la liste sous le Engine paramètre dans Create DBInstance. Pour plus d'informations sur les valeurs de conditions valides pour rds:DatabaseClass, veuillez consulter Moteurs de base de données pris en charge pour les classes d'instance de base de données.

La politique ne spécifie pas l'élément Principal car, dans une politique basée sur une identité, vous ne spécifiez pas le principal qui obtient l'autorisation. Quand vous attachez une politique à un utilisateur, l'utilisateur est le principal implicite. Lorsque vous attachez une politique d'autorisation à un rôle IAM, le principal identifié dans la politique d'approbation de ce rôle obtient les autorisations.

Pour afficher la liste des actions Aurora, consultez Actions définies par Amazon RDS dans Référence de l'autorisation de service.

Autoriser un utilisateur à effectuer une action Describe sur une ressource RDS

La politique d'autorisation suivante accorde des autorisations à un utilisateur lui permettant d'exécuter toutes les actions commençant par Describe. Ces actions affichent des informations sur une ressource RDS, telle qu'une instance de base de données. Le caractère générique (*) figurant dans l'élément Resource indique que les actions sont autorisées pour toutes les ressources Amazon Aurora détenues par le compte.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRDSDescribe", "Effect": "Allow", "Action": "rds:Describe*", "Resource": "*" } ] }

Autoriser un utilisateur à créer une instance de base de données qui utilise le groupe de paramètres de base de données et le groupe de sous-réseau spécifiés

La politique d'autorisation suivante accorde des autorisations permettant à un utilisateur de créer uniquement une instance de base de données devant utiliser le groupe de paramètres de base de données mydbpg et le groupe de sous-réseau de base de données mydbsubnetgroup.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": [ "arn:aws:rds:*:*:pg:mydbpg", "arn:aws:rds:*:*:subgrp:mydbsubnetgroup" ] } ] }

Accorder une autorisation pour des actions sur une ressource à l'aide d'une balise spécifique avec deux valeurs différentes

Vous pouvez utiliser des conditions dans votre stratégie basée sur l'identité pour contrôler l'accès aux ressources Aurora en fonction des balises. 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.

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" ] } } } ] }

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.

JSON
{ "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" ] } } } ] }

Empêcher un utilisateur de supprimer une instance de base de données

La politique d'autorisation suivante accorde des autorisations empêchant un utilisateur de supprimer une instance de base de données spécifique. Par exemple, il est possible de refuser la capacité à supprimer vos instances de base de données de production à un utilisateur quelconque qui n'est pas un administrateur.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDelete1", "Effect": "Deny", "Action": "rds:DeleteDBInstance", "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance" } ] }

Refuser tout accès à une ressource

Vous pouvez refuser explicitement l'accès à une ressource. Les politiques de refus ont priorité sur les politiques d'autorisation. La politique suivante refuse explicitement à un utilisateur la possibilité de gérer une ressource :

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "rds:*", "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb" } ] }