Importante
El mecanismo de autenticación MONGODB-AWS solo está disponible en la versión 4.4 de MongoDB o posterior.
Overview
La 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. Solo puede usar este mecanismo 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, consulta Configure la autenticación con AWS IAM en la documentación de Atlas.
Especificar la autenticación MONGODB-AWS
Para conectarse a una instancia de MongoDB con autenticación MONGODB-AWS habilitada, especifique el mecanismo de autenticación MONGODB-AWS.
El controlador verifica tus credenciales en las siguientes fuentes, en el orden en que aparecen:
cadena de conexión.
Variables de entorno.
Archivo de token de identidad web.
Endpoint AWS ECS especificado en la variable de entorno
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.Punto final de AWS EC2. Para obtener más información, consulta Roles IAM para tareas en la documentación de AWS.
Importante
El controlador obtiene las credenciales solo de la primera fuente en la que se encuentran. Por ejemplo, si se especifican las credenciales de AWS en la cadena de conexión, el driver ignorará cualquier otra credencial especificada 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 conectarte a tu instancia de MongoDB utilizando tus credenciales de AWS IAM, realiza 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 es necesario especificar un token de sesión AWS, use las credenciales temporales devueltas de una solicitud de rol asumido.
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 mediante credenciales de AWS almacenadas en las variables de entorno, utilice una shell para establecer 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 necesitas un token de sesión de AWS para el rol con el que te estás autenticando, omite la línea que contiene AWS_SESSION_TOKEN.
Tras haber configurado las variables de entorno anteriores, especifica 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
Puedes utilizar el token OpenID Connect (OIDC) obtenido de un proveedor de identidad web para autenticarte en Amazon Elastic Kubernetes Service (EKS) u otros servicios. Para utilizar un token OIDC, crea o localiza el archivo que contiene el token. Luego, establece las siguientes variables de entorno:
AWS_WEB_IDENTITY_TOKEN_FILEEstablece la ruta absoluta del archivo que contiene tu 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 configura 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 establecer las variables de entorno anteriores, se debe especificar 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: