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 SQL base de données My et la classe d'db.t2.microinstance de base de données. 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.

{ "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'reateDBInstanceAPIopération C (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 spécifiez les ressources à l'aide d'un Amazon Resources Name (ARN). Cela 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éationARNs, 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'Conditionélément indique que le moteur de base de données doit être My SQL et que la classe d'instance de base de données doit l'êtredb.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 en reateDBInstanceC. 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 associez une politique d'autorisation à un IAM rôle, le principal identifié dans la politique de confiance du rôle obtient les autorisations.

Pour consulter la liste des actions Aurora, consultez la section Actions définies par Amazon RDS dans le Service Authorization Reference.

Autoriser un utilisateur à effectuer n'importe quelle action de description sur n'importe quelle RDS ressource

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 RDS ressource, telle qu'une instance de base de données. Le caractère générique (*) dans l'Resourceélément indique que les actions sont autorisées pour toutes les ressources Amazon Aurora détenues par le compte.

{ "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.

{ "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 les conditions de votre politique basée sur l'identité pour contrôler l'accès aux ressources Amazon en fonction de balises. La politique suivante autorise l'exécution de l'CreateDBSnapshotAPIopération sur des instances de base de données dont la stage balise est définie sur development outest.

{ "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 autorise l'exécution de l'ModifyDBInstanceAPIopération sur des instances de base de données dont la stage balise est définie sur development outest.

{ "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.

{ "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 :

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