Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

AWS IAM

La MONGODB-AWS El mecanismo de autenticación utiliza tus credenciales de Amazon Web Services Identity and Access Management (AWS IAM) para autenticar a tu usuario.

Puede utilizar AWS IAM para autenticarse en MongoDB Atlas, pero no en MongoDB Enterprise Advanced ni en MongoDB Community Edition.

Los ejemplos de código en esta página utilizan los siguientes marcadores de posición:

  • access key ID: Su clave de acceso de AWS ID

  • secret access keyTu clave secreta de acceso de AWS

  • session tokenToken de sesión de AWS

  • dbLa base de datos de autenticación asociada con el usuario

Para utilizar este mecanismo de autenticación, debe añadir la bandera de funcionalidad aws-auth a su dependencia mongodb en el archivo Cargo.toml de su proyecto. A continuación se muestra un ejemplo de lo que debe incluir tu lista de funcionalidades de dependencias de mongodb para habilitar el mecanismo de autenticación MONGODB-AWS:

[dependencies.mongodb]
version = "3.5.2"
features = [ "aws-auth", ... ]

Importante

Para utilizar el mecanismo de autenticación MONGODB-AWS en el controlador Rust, su aplicación debe cumplir los siguientes requisitos:

  • Está conectado a MongoDB Server versión 4.4 o posterior.

  • Estás utilizando el entorno de ejecución asíncrono tokio.

El controlador obtiene las credenciales únicamente de la primera fuente en la que se encuentran. El controlador verifica tus credenciales en las siguientes fuentes y en el siguiente orden:

  1. Credential estructura o cadena de conexión.

  2. Variables de entorno.

  3. Archivo de token de identidad web.

  4. Endpoint AWS ECS especificado en la variable de entorno AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.

  5. Punto final de AWS EC2. Para más información, consulte Funciones de IAM para tareas en la documentación de AWS.

Por ejemplo, si especificas tus credenciales de AWS en tu cadena de conexión, el controlador usará esas credenciales e ignorará cualquier otra que puedas haber especificado en las variables de entorno.

Seleccionar de la Credential Struct. Environment Variables y Web Identity Token File pestañas a continuación para ver muestras de código que demostrarán cómo establecer tus credenciales de AWS IAM de las formas correspondientes.

Para especificar el mecanismo de autenticación MONGODB-AWS, configure el campo mechanism de su estructura Credential a AuthMechanism::MongoDbAws.

Si se utilizan credenciales temporales, se debe crear un documento que contenga el valor del token de sesión de AWS y, a continuación, establecer el campo mechanism_properties de la estructura Credential en este documento. Si no está utilizando credenciales temporales, omita la línea 9 del siguiente ejemplo:

1let uri = "<connection string>";
2let mut client_options = ClientOptions::parse(uri).await?;
3
4let aws_cred = Credential::builder()
5 .username("<access key ID>".to_string())
6 .password("<secret access key>".to_string())
7 .source("<db>".to_string())
8 .mechanism(AuthMechanism::MongoDbAws)
9 .mechanism_properties(doc!("AWS_SESSION_TOKEN": "<session token>"))
10 .build();
11
12client_options.credential = Some(aws_cred);
13let client = Client::with_options(client_options)?;

Tip

Puedes obtener credenciales temporales de AWS IAM a partir de una solicitud de asunción de rol del Servicio de Tokens de Seguridad (STS). Aprende más sobre este proceso en la documentación de AssumeRole de AWS.

Para almacenar tus credenciales de AWS en variables de entorno, ejecuta los siguientes comandos en tu shell:

export AWS_ACCESS_KEY_ID=<access key ID>
export AWS_SECRET_ACCESS_KEY=<secret access key>
export AWS_SESSION_TOKEN=<session token>

Si no se utiliza un token de sesión de AWS, omitir la línea que establece la variable de entorno AWS_SESSION_TOKEN.

Establece la opción mechanism en tu estructura Credential a AuthMechanism::MongoDbAws. El controlador lee tus credenciales de AWS IAM de tus variables de entorno. El siguiente código muestra cómo definir una estructura Credential con la autenticación AWS especificada y conectarse a MongoDB:

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build();
client_options.credential = Some(aws_cred);
let client = Client::with_options(client_options)?;

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 un archivo que contenga tu token, luego define una variable de entorno cuyo valor sea la ruta absoluta al archivo del token, como se muestra en el siguiente comando de shell:

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to OIDC token file>

Establece la opción mechanism en tu estructura Credential a AuthMechanism::MongoDbAws. El controlador lee sus credenciales de AWS IAM del archivo de token. El siguiente código muestra cómo definir una estructura Credential con la autenticación AWS especificada y conectarse a MongoDB:

let uri = "<connection string>";
let mut client_options = ClientOptions::parse(uri).await?;
let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build();
client_options.credential = Some(aws_cred);
let client = Client::with_options(client_options)?;

Para obtener más información sobre la autenticación en MongoDB, consulta Autenticación en el manual del servidor de MongoDB.

Para obtener más información sobre cómo gestionar usuarios en tu implementación de MongoDB, consulta Usuarios en el manual del MongoDB Server.

Para obtener más información sobre los métodos y tipos mencionados en esta guía, vea la siguiente documentación de la API:

Volver

X.509

En esta página