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 Gestion des identités et des accès 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écifiezAllow
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écifiezrds-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 :
-
correspond à la région AWS pour l'instance de base de données. Dans l'exemple de stratégie, la région AWS estregion
us-east-2
. -
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 estaccount-id
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.
-
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 estDbiResourceId
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 deDbiResourceId
. 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. -
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 estdb-user-name
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 .
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
.