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.
Authentification à l'aide de l'identité IAM
Les utilisateurs et les applications Amazon DocumentDB peuvent utiliser les utilisateurs et les rôles IAM pour s'authentifier dans un cluster Amazon DocumentDB. L'authentification IAM Amazon DocumentDB est une méthode d'authentification sans mot de passe. De plus, les applications clientes n'envoient pas les mots de passe secrets au cluster Amazon DocumentDB lors de l'utilisation d' roles/usersIAM. Au lieu de cela, les connexions des clients sont authentifiées à l' AWS STS aide de jetons de sécurité temporaires. Non-administrative les utilisateurs et les applications peuvent désormais utiliser le même ARN d'identité IAM lorsqu'ils se connectent à différents clusters Amazon DocumentDB et à d'autres AWS services.
Vous pouvez également choisir d'utiliser à la fois l'authentification par mot de passe et l'authentification IAM pour authentifier les utilisateurs et les applications auprès d'un cluster Amazon DocumentDB. L'authentification IAM est disponible uniquement dans le cluster basé sur une instance Amazon DocumentDB version 5.0. L'authentification IAM à l'aide des ARN d'identité IAM n'est pas prise en charge pour l'utilisateur principal d'Amazon DocumentDB.
Note
L'utilisateur principal ne peut être authentifié qu'à l'aide de l'authentification par mot de passe existante.
Rubriques
Commencer à utiliser l'authentification à l'aide des utilisateurs et des rôles IAM
Les utilisateurs et les rôles Amazon DocumentDB dotés d'une identité IAM sont créés et gérés dans une $external base de données.
Création d'un utilisateur
Connectez-vous en tant qu'utilisateur principal, puis créez un utilisateur et un rôle IAM :
use $external; db.createUser( { user: "arn:aws:iam::123456789123:user/iamuser", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Vous pouvez également ajouter un utilisateur Amazon DocumentDB à l'aide d'un rôle IAM :
use $external; db.createUser( { user: "arn:aws:iam::123456789123:role/iamrole", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Modifier un utilisateur ou un rôle IAM
Modifier un utilisateur IAM existant :
use $external; db.updateUser( "arn:aws:iam::123456789123:user/iamuser", { roles: [ { role: "read", db: "readDB" } ] } );
Modifiez un rôle IAM existant :
use $external; db.updateUser( "arn:aws:iam::123456789123:role/iamrole", { roles: [ { role: "read", db: "readDB" } ] } );
Pour accorder ou révoquer des rôles à un utilisateur IAM, procédez comme suit :
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
Pour accorder ou révoquer des rôles à partir d'un rôle IAM, procédez comme suit :
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
Supprimer un utilisateur ou un rôle IAM
Pour supprimer un utilisateur IAM existant :
use $external; db.dropUser("arn:aws:iam::123456789123:user/iamuser");
Pour supprimer un rôle IAM existant :
use $external; db.dropUser("arn:aws:iam::123456789123:role/iamrole");
Configurer un URI de connexion pour s'authentifier à l'aide AWS d'IAM
Pour vous authentifier à l'aide d' AWS IAM, utilisez les paramètres d'URI suivants : authSource as $external et authMechanism as. MONGODB-AWS Si vous utilisez un utilisateur IAM, les champs du nom d'utilisateur et du mot de passe sont remplacés respectivement par une clé d'accès et une clé secrète. Si vous assumez un rôle IAM, lié à l'environnement dans lequel vous vous trouvez (par exemple, une AWS Lambda fonction, une instance Amazon EC2). Vous n'avez pas besoin de transmettre spécifiquement d'informations d'identification lors de l'authentification à l'MONGODB-AWSaide de ce mécanisme. Si vous utilisez des pilotes MongoDB qui prennent en charge le mécanisme MONGODB-AWS d'authentification, les pilotes peuvent également récupérer les informations d'identification du rôle IAM à partir de l'instance de calcul (par exemple, Amazon EC2, fonction Lambda, etc.). L'exemple suivant utilise un shell mongo pour s'authentifier en MONGODB-AWS transmettant manuellement une clé d'accès et une clé secrète (d'un utilisateur IAM) afin de démontrer l'authentification auprès d'Amazon DocumentDB.
L'exemple suivant utilise du code Python pour s'authentifier en utilisant MONGODB-AWS sans transmettre explicitement d'informations d'identification (en utilisant un rôle IAM attaché à l'environnement) pour démontrer l'authentification par rapport à Amazon DocumentDB.
##Create a MongoDB client, open a connection to Amazon DocumentDB using an IAM role client = pymongo.MongoClient(‘mongodb://<DocDBEndpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false&authSource=%24external&authMechanism=MONGODB-AWS')
L'exemple suivant utilise un shell mongo pour s'authentifier à l'aide d'un MONGODB-AWS mécanisme en transmettant manuellement une clé d'accès et une clé secrète (d'un utilisateur IAM) afin de démontrer l'authentification par rapport à Amazon DocumentDB.
$ mongo 'mongodb://<access_key>:<secret_key>@<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
L'exemple suivant utilise un shell mongo pour s'authentifier en utilisant MONGODB-AWS sans transmettre explicitement d'informations d'identification (en utilisant le rôle IAM attaché à l'environnement) afin de démontrer l'authentification par rapport à Amazon DocumentDB.
$ mongo 'mongodb://<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
Configuration AWS types de calcul pour s'authentifier auprès d'Amazon DocumentDB à l'aide de AWS IAM
Utilisation d'Amazon EC2//AWS LambdaAWS Fargate
Amazon EC2 utilise les variables d'environnement suivantes. Si vous avez un rôle IAM attaché à l'instance EC2 ou un rôle IAM d'exécution associé à une fonction Lambda ou à une tâche Amazon ECS, ces variables sont automatiquement renseignées et le pilote peut récupérer ces valeurs depuis l'environnement :
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
Pour plus d'informations sur les variables d'environnement, consultez la section Utilisation des variables d'environnement Lambda dans le Guide du AWS Lambda développeur.
Utilisation d'Amazon EKS
L'attribution d'un rôle à vos pods Amazon Elastic Kubernetes Service (Amazon EKS) configurera automatiquement les deux variables d'environnement suivantes :
AWS_WEB_IDENTITY_TOKEN_FILE - path of web identity token file AWS_ROLE_ARN - Name of IAM role to connect with
À l'aide de ces variables, assumez manuellement le rôle à partir de votre code à l'aide de l'appel du AWS SDK pour AssumeRoleWithWebIdentity :
Omettez le
ProviderIDparamètre.Trouvez la valeur du
WebIdentityTokenparamètre dans le fichier décrit dans la variable d'AWS_WEB_IDENTITY_TOKEN_FILEenvironnement.
Pour plus d'informations sur Amazon EKS, consultez Qu'est-ce qu'Amazon EKS dans le guide de l'utilisateur Amazon EKS.
Surveillance des demandes d'authentification IAM
Utilisation de l'audit Amazon DocumentDB
Accédez au dossier du journal d'audit sur Amazon CloudWatch et utilisez différents modèles de recherche pour obtenir les journaux nécessaires à l'authentification IAM. Par exemple, utilisez { $.param.mechanism = "MONGODB-AWS" } comme modèle de recherche « Rechercher dans tous les flux de journaux ».
Pour plus d'informations sur les événements pris en charge dans le cadre de l'audit, consultezAudit des événements Amazon DocumentDB.
Utilisation des CloudWatch métriques Amazon
StsGetCallerIdentityCalls: cette métrique indique le nombre d'GetCallerIdentityappels qu'une instance Amazon DocumentDB passe vers le point de terminaison regionalized AWS Security Token Service (AWS STS). Reportez-vous à la spécification MONGODB-AWS d'authentification pour savoir pourquoi les instances de base de données doivent effectuer des GetCallerIdentity appels STS.
Utilisation de l'authentification IAM
Lorsque vous ne souhaitez pas gérer le nom d'utilisateur et le mot de passe dans votre propre base de données, vous pouvez utiliser l'authentification IAM. L'authentification IAM est disponible uniquement dans le cluster basé sur une instance Amazon DocumentDB version 5.0.
L'authentification IAM dépend de AWS Security Token Service (AWS STS). Si vous obtenez une exception de AWS STS limitation lors de l'utilisation de l'authentification IAM, réduisez votre débit de connexion.
Pour les quotas IAM, consultez la section IAM et AWS STS quotas dans le Guide de l'utilisateur IAM.
Pilotes prenant en charge IAM
Les pilotes prenant en charge Amazon DocumentDB 5.0 et le mécanisme MONGODB-AWS d'authentification doivent fonctionner avec l'implémentation de l'authentification IAM dans Amazon DocumentDB.
Important
Il existe une limitation connue concernant Node.js les pilotes antérieurs à la version 6.13.1, qui ne sont actuellement pas pris en charge par l'authentification d'identité IAM pour Amazon DocumentDB. Node.js les pilotes et les outils qui utilisent Node.js le pilote (par exemple, mongosh) doivent être mis à niveau pour utiliser la version 6.13.1 ou supérieure Node.js du pilote.
FAQ sur l'authentification d'identité IAM
Y a-t-il des exemples auxquels je peux me référer ?
Consultez ces pages pour des exemples de cas d'utilisation et de configurations :
J'obtiens une erreur lors de l'utilisation de mon pilote Python : « pymongo.errors. ConfigurationError: L'AWS authentification MONGODB nécessite « pymongo-auth-aws ». Comment puis-je résoudre ce problème ?
Assurez-vous d'utiliser l'instruction suivante lors de l'installation du pilote Python avec authentification IAM :
pip install 'pymongo[aws]'
Cela installera les AWS dépendances supplémentaires requises pour que l'authentification IAM fonctionne.
Ma connexion sera-t-elle interrompue lorsque les informations d'identification temporaires de mon rôle IAM expireront ?
Non, les informations d'identification IAM temporaires ne sont utilisées que pour établir la connexion et l'authentification. Toutes les autres autorisations sont ensuite effectuées dans le cluster Amazon DocumentDB. Même avec des informations d'identification IAM rotate/expire, la connexion ne sera pas interrompue ni périmée.