Importante
El mecanismo de autenticación MONGODB-AWS solo está disponible en la versión 4.4 y posteriores de MongoDB.
Overview
El MONGODB-AWS El mecanismo de autenticación utiliza credenciales de Amazon Web Services Identity and Access Management (AWS IAM) para autenticar a un usuario en MongoDB. Este mecanismo solo se puede usar al autenticarse en MongoDB Atlas.
Tip
Configurar Atlas para la autenticación de AWS IAM
Para obtener más información sobre cómo configurar MongoDB Atlas para la autenticación de AWS IAM, consulte Configurar la autenticación con AWS IAM en la documentación de Atlas.
Especificar la autenticación de MONGODB-AWS
Para conectarse a una instancia de MongoDB con la autenticación MONGODB-AWS habilitada, especifique el mecanismo de autenticación MONGODB-AWS.
El controlador verifica sus credenciales en las siguientes fuentes en el orden indicado:
Cadena de conexión.
Variables de entorno.
Archivo de token de identidad web.
Punto final de AWS ECS especificado en la variable de entorno
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.Punto2 de conexión de AWS EC. Para obtener más información, consulte Roles de IAM para tareas en la documentación de AWS.
Importante
El controlador obtiene las credenciales solo de la primera fuente donde se encuentran. Por ejemplo, si especifica sus credenciales de AWS en la cadena de conexión, el controlador ignorará cualquier credencial que especifique en las variables de entorno.
Tip
Los siguientes ejemplos establecen las credenciales adecuadas utilizando el método SetAuth(). También puedes especificar estas credenciales utilizando el método ApplyURI(). Si utilizas el método ApplyURI(), debes codificar en URL el nombre de usuario y la contraseña para garantizar que se analicen correctamente.
Para conectarse a su instancia de MongoDB usando sus credenciales de AWS IAM, realice los siguientes pasos:
Asignar a la opción
AuthMechanismel valorMONGODB-AWSAsigna a la opción
Usernameel valor de tuaccessKeyIDAsigna a la opción
Passwordel valor de tusecretAccessKey
var accessKeyID, secretAccessKey string awsCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>", } awsIAMClient, err := mongo.Connect(options.Client().SetAuth(awsCredential)) if err != nil { panic(err) } _ = awsIAMClient
Si debe especificar un token de sesión de AWS, utilice las credenciales temporales devueltas de una solicitud de asunción de rol.
Para utilizar credenciales temporales, asigne el valor de su sessionToken a la opción AuthMechanismProperties:
var accessKeyID, secretAccessKey, sessionToken string assumeRoleCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", AuthSource: "<authenticationDb>", Username: "<accessKeyID>", Password: "<secretAccessKey>", AuthMechanismProperties: map[string]string{ "AWS_SESSION_TOKEN": "<sessionToken>", }, } assumeRoleClient, err := mongo.Connect(options.Client().SetAuth(assumeRoleCredential))
Para autenticarse en su instancia de MongoDB utilizando las credenciales de AWS almacenadas en variables de entorno, use un shell para configurar las variables de la siguiente manera:
export AWS_ACCESS_KEY_ID=<awsKeyId> export AWS_SECRET_ACCESS_KEY=<awsSecretKey> export AWS_SESSION_TOKEN=<awsSessionToken>
Nota
Si no necesita un token de sesión de AWS para el rol con el que se está autenticando, omita la línea que contiene AWS_SESSION_TOKEN.
Después de configurar las variables de entorno anteriores, especifique el mecanismo de autenticación MONGODB-AWS como se muestra en el siguiente ejemplo:
envVariablesCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", } envVariablesClient, err := mongo.Connect(options.Client().SetAuth(envVariablesCredential)) if err != nil { panic(err) } _ = envVariablesClient
Puede usar el token de OpenID Connect (OIDC) obtenido de un proveedor de identidad web para autenticarse en Amazon Elastic Kubernetes Service (EKS) u otros servicios. Para usar un token OIDC, cree o localice el archivo que contiene su token. A continuación, configure las siguientes variables de entorno:
AWS_WEB_IDENTITY_TOKEN_FILE:Establezca la ruta absoluta del archivo que contiene su token OIDC.AWS_ROLE_ARN: Establecido en el rol de IAM utilizado para conectarse al clúster. Por ejemplo:arn:aws:iam::111122223333:role/my-role.
El siguiente comando de shell establece estas variables de entorno:
export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file that contains OIDC token> export AWS_ROLE_ARN=<IAM role name>
Después de configurar las variables de entorno anteriores, especifique el mecanismo de autenticación MONGODB-AWS como se muestra en el siguiente ejemplo:
envVariablesCredential := options.Credential{ AuthMechanism: "MONGODB-AWS", } envVariablesClient, err := mongo.Connect(options.Client().SetAuth(envVariablesCredential)) if err != nil { panic(err) } _ = envVariablesClient
Documentación de la API
Para obtener más información sobre cualquiera de los métodos o tipos analizados en esta página, consulte la siguiente documentación de API: