Amazon Relational Database Service
Guide de l'utilisateur

Création et utilisation d'une stratégie IAM pour l'accès à une base de données IAM

Pour autoriser un utilisateur ou un rôle IAM à se connecter à votre instance ou de base de données, vous devez créer une stratégie IAM. Il suffit ensuite de lier cette stratégie à un rôle ou à un utilisateur IAM.

Note

Pour en savoir plus sur les stratégies IAM, consultez Gestion des identités et des accès dans Amazon RDS.

L'exemple de stratégie suivant autorise l'utilisateur IAM à se connecter au d'une instance de base de données à l'aide de l'authentification de base de données IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:db-ABCDEFGHIJKL01234/db_user" ] } ] }

Important

Un utilisateur administrateur IAM peut accéder aux instances et aux de base de données sans autorisations explicites dans une stratégie IAM. L’exemple dans Créer un utilisateur IAM crée un utilisateur administrateur IAM. Si vous souhaitez restreindre l’accès de l’administrateur aux instances et aux de base de données, vous pouvez créer un rôle IAM avec les autorisations appropriées accordant moins de privilèges, puis les assigner à l’administrateur.

Note

Ne confondez pas le préfixe rds-db: avec d'autres préfixes d'opération d'API RDS; qui commencent par rds:. Vous utilisez le préfixe rds-db: et l'action rds-db:connect uniquement pour l'authentification de base de données IAM. Ils ne sont valides que dans ce contexte.

Actuellement, la console IAM affiche une erreur pour les stratégies avec l'action rds-db:connect. Vous pouvez ignorer cette erreur.

L'exemple de stratégie inclut une instruction unique avec les éléments suivants :

  • Effect – Spécifiez Allow pour octroyer l'accès à l'instance de base de données. Si vous n'autorisez pas explicitement l'accès, celui-ci est refusé par défaut.

  • Action – Spécifiez rds-db:connect pour autoriser les connexions à l'instance de base de données.

  • Resource – Spécifiez un ARN (Amazon Resource Name) qui décrit un compte de base de données dans une instance de base de données. Le format de l'ARN est le suivant.

    arn:aws:rds-db:region:account-id:dbuser:DbiResourceId/db-user-name

    Dans ce format, remplacez les variables suivantes :

    • region correspond à la région AWS pour l'instance de base de données. Dans l'exemple de stratégie, la région AWS est us-east-2.

    • account-id correspond au numéro de compte AWS pour l'instance de base de données. Dans l'exemple de stratégie, le numéro de compte est 1234567890.

    • DbiResourceId correspond à l'identifiant de l'instance de base de données. Cet identifiant est propre à une région AWS et ne change jamais. Dans cet exemple de stratégie, l'identifiant est db-ABCDEFGHIJKL01234.

      Pour trouver un identifiant de ressource de d'instance de base de données dans AWS Management Console pour Amazon RDS, choisissez le d'instance de base de données pour en afficher les détails. Choisissez ensuite l'onglet Configuration. L'ID de ressource est indiqué dans la section Configuration.

      Il est également possible d'utiliser la commande AWS CLI pour répertorier les identifiants et les ID de ressource pour la totalité du de votre instance de base de données de la région AWS actuelle, comme illustré ci-dessous.

      aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"
    • db-user-name correspond au nom du compte de base de données à associer à l'authentification IAM. Dans cet exemple de stratégie, le compte de la base de données est db_user.

Vous pouvez construire d'autres ARN pour prendre en charge différents modèles d'accès. La stratégie suivante permet d'accéder à deux comptes de base de données différents dans une instance de base de données.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/jane_doe", "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/mary_roe" ] } ] }

La stratégie suivante utilise le caractère « * » pour faire correspondre l'ensemble des instances de base de données et l'ensemble des comptes de base de données pour un compte AWS et une région AWS spécifiques.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:*/*" ] } ] }

La stratégie suivante met en correspondance l'ensemble des instances de base de données pour un compte AWS et une région AWS spécifiques. Néanmoins, cette stratégie n'octroie l'accès qu'aux instances et de bases de données qui ont un compte de base de données jane_doe.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:*/jane_doe" ] } ] }

L'utilisateur ou le rôle IAM a uniquement accès aux bases de données auxquelles l'utilisateur de base de données a accès. Supposons par exemple que votre instance de base de donnés possède une base de données nommée dev et une autre base de données nommée test. Si l'utilisateur de base de données jane_doe a uniquement accès à dev, tous les rôles ou utilisateurs IAM qui accèdent à cette instance de bases de données avec l'utilisateur jane_doe ont aussi uniquement accès à dev. Cette restriction d'accès s'applique également aux autres objets de bases de données, tels que les tables, les vues, etc.

Attachement d'une stratégie IAM à un rôle ou à un utilisateur IAM

Après avoir créé une stratégie IAM pour permettre l'authentification de base de données, il convient d'attacher la stratégie à un rôle ou à un utilisateur IAM. Pour accéder à un didacticiel sur ce sujet, consultez Créer et attacher votre première stratégie gérée par le client dans le Guide de l'utilisateur IAM.

Tandis que vous parcourez ce didacticiel, vous pouvez utiliser un exemple de stratégie illustré dans cette section comme point de départ afin de le personnaliser en fonction de vos besoins. À la fin de ce didacticiel, vous obtenez un utilisateur IAM avec une stratégie attachée qui peut utiliser l'action rds-db:connect.

Note

Vous pouvez mapper plusieurs utilisateurs ou rôles IAM au même compte d'utilisateur de base de données. Supposons par exemple que votre stratégie IAM a spécifié l'ARN de ressource suivant.

arn:aws:rds-db:us-east-2:123456789012:dbuser:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe

Si vous attachez la stratégie aux utilisateurs IAM Jane, Bob et Diego, chacun de ces utilisateurs peut alors se connecter à l'instance de base de données spécifié(e) par l'intermédiaire du compte de base de données jane_doe.