Création et utilisation d'une politique IAM pour l'accès à une base de données IAM - Amazon Relational Database Service

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.

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

Pour autoriser un utilisateur ou un rôle à se connecter à votre instance de bases de données, vous devez créer une politique IAM. Vous attachez ensuite la politique à un jeu d'autorisations ou à un rôle.

Note

Pour en savoir plus sur les stratégies IAM, consultez Identity and Access Management pour Amazon RDS.

L'exemple de politique suivant autorise un utilisateur à se connecter à une instance de bases de données en utilisant 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 doté d'autorisations d'administrateur peut accéder aux instances de base de données sans autorisations explicites dans une politique 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.

L'exemple de politique 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. L'utilisateur doit figurer dans le même compte que le compte de l'instance de base de données.

      Pour bénéficier d'un accès intercompte, créez un rôle IAM avec la politique décrite ci-dessus dans le compte de l'instance de base de données et autorisez votre autre compte à endosser ce rôle.

    • 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 l'ID de ressource d'une instance de base de données dans la AWS Management Console Amazon RDS, choisissez l'instance de base de données pour afficher ses 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]"

      Si vous utilisez Amazon Aurora, spécifiez DbClusterResourceId au lieu de DbiResourceId. Pour plus d'informations, consultez la section Creating and using an IAM policy for IAM database access (Création et utilisation d'une politique IAM pour l'accès à la base de données IAM) dans le Guide de l'utilisateur d'Amazon Aurora.

      Note

      Si vous vous connectez à une base de données via le proxy RDS, spécifiez l'ID de ressource de proxy, par exemple prx-ABCDEFGHIJKL01234. Pour plus d'informations sur l'utilisation de l'authentification de base de données IAM avec le proxy RDS, consultez Connexion à un proxy à l'aide de l'authentification IAM.

    • 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 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 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.

Un administrateur doit créer des politiques IAM autorisant les entités à exécuter des opérations d'API spécifiques sur les ressources spécifiées dont ils ont besoin. L'administrateur doit ensuite attacher ces politiques aux jeux d'autorisations ou aux rôles qui ont besoin de ces autorisations. Pour obtenir des exemples de stratégies, consultez la section Exemples de politiques basées sur l'identité pour Amazon RDS.

Attacher une politique IAM à un jeu d'autorisations ou à un rôle

Après avoir créé une politique IAM pour permettre l'authentification d'une base de données, il convient d'attacher la politique à un jeu d'autorisations ou à un rôle. Pour accéder à un didacticiel sur ce sujet, veuillez consulter Créer et attacher votre première politique 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 politique 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 jeu d'autorisations avec une politique attachée qui peut utiliser l'action rds-db:connect.

Note

Vous pouvez mapper plusieurs jeux d'autorisations ou rôles au même compte d'utilisateur de base de données. Supposons par exemple que votre politique 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 politique à Jane, Bob et Diego, chacun de ces utilisateurs peut se connecter à l'instance de bases de données en utilisant le compte de base de données jane_doe.