Amazon Relational Database Service
Guide de l'utilisateur (Version de l'API 2014-10-31)

Utilisation des stratégies basées sur une identité (stratégies IAM) pour Amazon RDS

Cette rubrique fournit des exemples de stratégies basées sur une identité dans lesquelles un administrateur de compte peut attacher des stratégies d'autorisation aux identités IAM (c'est-à-dire aux utilisateurs, groupes et rôles).

Important

Nous vous recommandons tout d'abord d'examiner les rubriques de présentation qui détaillent les concepts de base et les options disponibles pour gérer l'accès à vos ressources Amazon RDS. Pour plus d'informations, consultez Présentation de la gestion des autorisations d'accès à vos ressources Amazon RDS.

Les sections de cette rubrique couvrent les sujets suivants :

Voici un exemple de stratégie IAM :

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

  • La stratégie autorise l'utilisateur IAM à créer une instance de base de données à l'aide de l'action d'API CreateDBInstance (cela s'applique également à la commande create-db-instance de l'AWS CLI et de la 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). Ce nom ARN inclut le nom du service auquel appartient la ressource (rds), la région AWS (* indique une région dans cet exemple), le numéro de compte de l'utilisateur (123456789012 est l'ID utilisateur dans cet exemple) ainsi que le type de ressource. Pour plus d'informations sur la création de noms ARN, consultez Utilisation des Amazon Resource Names (ARN) 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 Utilisation de conditions de stratégie IAM pour un contrôle d'accès précis.

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

Pour visualiser un tableau répertoriant toutes les actions d'API Amazon RDS, ainsi que les ressources auxquelles elles s'appliquent, consultez Autorisations d'API Amazon RDS : référence des actions, ressources et conditions.

Autorisations requises pour utiliser la console Amazon RDS

Pour qu'un utilisateur puisse utiliser la console Amazon RDS, il doit avoir un ensemble d'autorisations minimum. Ces autorisations permettent à l'utilisateur de décrire les ressources Amazon RDS de leur compte AWS et de fournir d'autres informations associées, comme les informations relatives à la sécurité Amazon EC2 et au réseau.

Si vous créez une stratégie IAM plus restrictive que les autorisations minimales requises, la console ne fonctionnera pas comme prévu pour les utilisateurs dotés de cette stratégie IAM. Pour garantir que ces utilisateurs pourront continuer à utiliser la console Amazon RDS, attachez également la stratégie gérée AmazonRDSReadOnlyAccess à l'utilisateur, comme décrit dans Stratégies gérées par AWS (prédéfinies) pour Amazon RDS.

Vous n'avez pas besoin d'accorder les autorisations minimales de console pour les utilisateurs qui effectuent des appels uniquement à l'interface AWS CLI ou API Amazon RDS.

Stratégies gérées par AWS (prédéfinies) pour Amazon RDS

AWS est approprié pour de nombreux cas d'utilisation courants et fournit des stratégies IAM autonomes qui sont créées et administrées par AWS. Les stratégies gérées octroient les autorisations requises dans les cas d'utilisation courants et vous évitent d'avoir à réfléchir aux autorisations qui sont requises. Pour plus d'informations, consultez Stratégies gérées par AWS dans le manuel IAM Guide de l'utilisateur.

Les stratégies gérées par AWS, répertoriées ci-dessous, que vous pouvez attacher aux utilisateurs dans votre compte, sont spécifiques à Amazon RDS :

  • AmazonRDSReadOnlyAccess – Accorde un accès en lecture seule à toutes les ressources Amazon RDS pour le compte AWS racine.

  • AmazonRDSFullAccess – Accorde l'accès total à toutes les ressources Amazon RDS pour le compte AWS racine.

Vous pouvez également créer des stratégies IAM personnalisées qui autorisent les utilisateurs à accéder aux ressources et aux actions d'API Amazon RDS requises. Vous pouvez attacher ces stratégies personnalisées aux utilisateurs ou groupes IAM qui nécessitent ces autorisations.

Exemples de stratégies gérées par le client

Dans cette section, vous trouverez des exemples de stratégies utilisateur qui accordent des autorisations pour diverses actions Amazon RDS. Ces stratégies fonctionnent lorsque vous utilisez des actions d'API RDS, des kits AWS SDK ou l'AWS CLI. Lorsque vous utilisez la console, vous devez accorder des autorisations supplémentaires spécifiques à la console, ce qui est détaillé dans Autorisations requises pour utiliser la console Amazon RDS.

Note

Tous les exemples utilisent la région USA Ouest (Oregon) (us-west-2) et contiennent des ID de compte fictifs.

Exemple 1 : Autoriser un utilisateur à effectuer une action Describe quelconque sur une ressource RDS quelconque

La stratégie 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 RDS détenues par le compte.

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

Exemple 2 : Autoriser un utilisateur à créer une instance de base de données qui utilise les groupes de sécurité et de paramètres de base de données spécifiés

La stratégie 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 DB mysql-production et le groupe de sécurité DB db-production.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowMySQLProductionCreate", "Effect":"Allow", "Action":"rds:CreateDBInstance", "Resource":[ "arn:aws:rds:us-west-2:123456789012:pg:mysql-production", "arn:aws:rds:us-west-2:123456789012:secgrp:db-production" ] } ] }

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

La stratégie 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 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" } ] }