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 par IAM identité
Les utilisateurs et les applications Amazon DocumentDB peuvent utiliser des IAM utilisateurs et des rôles pour s'authentifier auprès d'un cluster Amazon DocumentDB. L'authentification Amazon DocumentDB est une IAM méthode d'authentification sans mot de passe. De plus, les applications clientes n'envoient pas les secrets du mot de passe au cluster Amazon DocumentDB lorsqu'elles utilisent IAM des rôles/utilisateurs. Au lieu de cela, les connexions client sont authentifiées à l' AWS STS aide de jetons de sécurité temporaires. Les utilisateurs et applications non administrateurs peuvent désormais utiliser la même IAM identité ARN lorsqu'ils se connectent à différents clusters Amazon DocumentDB et AWS à d'autres services.
Vous pouvez également choisir d'utiliser à la fois l'authentification par mot de passe et l'IAMauthentification pour authentifier les utilisateurs et les applications auprès d'un cluster Amazon DocumentDB. IAMl'authentification n'est disponible que dans le cluster basé sur une instance Amazon DocumentDB version 5.0. IAMl'authentification à l'aide de IAM l'identité n'ARNsest 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 d'IAMutilisateurs et de rôles
- Configuration des types AWS de calcul pour s'authentifier auprès d'Amazon DocumentDB à l'aide de AWS IAM
- Surveillance des demandes IAM d'authentification
- Utilisation de l'IAMauthentification
- IAMPilotes compatibles
- IAMauthentification d'identité FAQ
Commencer à utiliser l'authentification à l'aide d'IAMutilisateurs et de rôles
Les utilisateurs et les rôles Amazon DocumentDB dotés d'une IAM identité 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 IAM utilisateur et un rôle :
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 IAM rôle :
use $external; db.createUser( { user: "arn:aws:iam::123456789123:roles/iamrole", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Modification d'un IAM utilisateur ou d'un rôle
Modifiez un IAM utilisateur existant :
use $external; db.updateUser( { "arn:aws:iam::123456789123:user/iamuser", { roles: [ { role: "read", db: "readDB" } ] } } );
Modifiez un IAM rôle existant :
use $external; db.updateUser( { "arn:aws:iam::123456789123:roles/iamrole", { roles: [ { role: "read", db: "readDB" } ] } } );
Pour octroyer ou révoquer des rôles à un IAM utilisateur, 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 attribuer ou révoquer des rôles liés à un IAM rôle, 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 IAM utilisateur ou un rôle
Pour supprimer un IAM utilisateur existant, procédez comme suit :
use $external db.dropUser( { user: "arn:aws:iam::123456789123:user/iamuser" } );
Pour supprimer un IAM rôle existant, procédez comme suit :
use $external db.dropUser( { user: "arn:aws:iam::123456789123:roles/iamrole" } );
Configurer une connexion URI pour s'authentifier à l'aide de AWS IAM
Pour vous authentifier en utilisant AWS IAM, utilisez les URI paramètres suivants : authSource
as $external
et authMechanism
asMONGODB-AWS
. Si vous utilisez un IAM utilisateur, les champs du nom d'utilisateur et du mot de passe sont respectivement remplacés par une clé d'accès et une clé secrète. Si vous assumez un IAM rôle, attaché à l'environnement dans lequel vous vous trouvez (par exemple, une AWS Lambda fonction, une EC2 instance Amazon). Vous n'avez pas besoin de transmettre spécifiquement d'informations d'identification lorsque vous vous authentifiez à l'aide du MONGODB-AWS
mécanisme. Si vous utilisez des pilotes MongoDB qui prennent en charge le mécanisme MONGODB-AWS
d'authentification, ils ont également la capacité de récupérer les informations d'identification des IAM rôles depuis l'instance de calcul (par exemple, Amazon, la fonction EC2 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 IAM utilisateur) afin de démontrer l'authentification auprès d'Amazon DocumentDB.
L'exemple suivant utilise le code Python pour s'authentifier en utilisant MONGODB-AWS
sans transmettre explicitement d'informations d'identification (en utilisant un IAM rôle attaché à l'environnement) afin de 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 IAM utilisateur) afin de démontrer l'authentification auprès d'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 IAM rôle 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 des types AWS de calcul pour s'authentifier auprès d'Amazon DocumentDB à l'aide de AWS IAM
Utilisation d'AmazonEC2/AWS Lambda/AWS Fargate
Amazon EC2 utilise les variables d'environnement suivantes. Si vous avez un IAM rôle attaché à l'EC2instance ou un IAM rôle d'exécution associé à une fonction Lambda ou à une ECS tâche Amazon, 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 EKS (Amazon) 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 indiqué dans votre code à l'aide de l' AWS SDKappel à AssumeRoleWithWebIdentity
:
Omettez le
ProviderID
paramètre.Trouvez la valeur du
WebIdentityToken
paramètre dans le fichier décrit dans la variable d'AWS_WEB_IDENTITY_TOKEN_FILE
environnement.
Pour plus d'informations sur AmazonEKS, consultez la section Qu'est-ce qu'Amazon EKS dans le guide de EKS l'utilisateur Amazon.
Surveillance des demandes IAM d'authentification
Utilisation de l'audit Amazon DocumentDB
Accédez au dossier des journaux d'audit d'Amazon CloudWatch et utilisez différents modèles de recherche pour obtenir les journaux à des fins IAM d'authentification. Par exemple, utilisez-le { $.param.mechanism = "MONGODB-AWS" }
comme modèle de recherche pour « 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'GetCallerIdentity
appels qu'une instance Amazon DocumentDB effectue vers le point de terminaison régionalisé 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 STS GetCallerIdentity
appels.
Utilisation de l'IAMauthentification
Utilisation de l'IAMauthentification
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 IAM l'authentification. IAMl'authentification n'est disponible que dans le cluster basé sur une instance Amazon DocumentDB version 5.0.
IAMl'authentification dépend du STS service. Nous vous recommandons d'évaluer si vous pouvez réduire votre débit de connexion lorsque vous utilisez l'IAMauthentification pour la connexion et que vous obtenez une exception de STS limitation.
Pour les IAM quotas, voir IAMet AWS STS quotas dans le Guide de IAM l'utilisateur.
IAMPilotes compatibles
Les pilotes compatibles avec Amazon DocumentDB 5.0 et le mécanisme MONGODB-AWS
d'authentification doivent fonctionner avec l'implémentation de l'IAMauthentification dans Amazon DocumentDB. Il existe une limitation connue concernant les pilotes NodeJS qui ne sont actuellement pas pris en charge par Amazon DocumentDB pour l'authentification. IAM La prise en charge du pilote NodeJS sera mise à jour une fois la limitation résolue.
IAMauthentification d'identité FAQ
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 :
Je reçois une erreur lors de l'utilisation de mon pilote Python : « pymongo.errors. ConfigurationError: MONGODB -AWS l'authentification 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 IAM authentification :
pip install 'pymongo[aws]'
Cela installera les AWS dépendances supplémentaires requises pour que IAM l'authentification fonctionne.
Ma connexion sera-t-elle interrompue lorsque les informations d'identification temporaires de mon IAM rôle expireront ?
Non, les IAM informations d'identification 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 si les IAM informations d'identification changent ou expirent, la connexion ne sera pas interrompue ou périmée.