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
/ /

Autenticación de AWS IAM

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.

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

  • <hostname>:La dirección de red de su implementación de MongoDB Atlas

  • <awsKeyId>: Su clave de acceso de AWS ID

  • <awsSecretKey>Tu clave secreta de acceso de AWS

  • <awsSessionToken>Token de sesión de AWS

Para utilizar los ejemplos de código en esta página, reemplace estos marcadores de posición con sus propios valores.

Para utilizar la autenticación de AWS IAM, sigue los siguientes pasos:

  1. Agregue el paquete NuGet MongoDB.Driver.Authentication.AWS a su proyecto. Puede agregarlo usando su IDE o ejecutando el siguiente comando en su terminal:

    dotnet add package MongoDB.Driver.Authentication.AWS
  2. Agregue la siguiente línea de código al código de arranque de su aplicación para registrar el proveedor de autenticación de AWS:

    MongoClientSettings.Extensions.AddAWSAuthentication();

Después de registrar el proveedor de autenticación de AWS, puede especificar sus credenciales de AWS IAM explícitamente o indicar al controlador que las obtenga automáticamente de una fuente externa. Las siguientes secciones describen ambos métodos.

Puedes proporcionar tus credenciales de AWS IAM en un objeto MongoClientSettings ya sea utilizando un objeto MongoCredential o como parte de la cadena de conexión. Elija el Connection String o MongoCredential pestaña para ver la sintaxis correspondiente para especificar tus credenciales:

var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" +
"authSource=$external" +
"&authMechanism=MONGODB-AWS";
var mongoClientSettings = MongoClientSettings.FromConnectionString(connectionString);
var client = new MongoClient(mongoClientSettings);

Si estás usando un token de sesión de AWS, incluye el parámetro authMechanismProperties en la cadena de conexión como se muestra a continuación:

var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" +
"authSource=$external" +
"&authMechanism=MONGODB-AWS" +
"&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>";
var mongoClientSettings = MongoClientSettings
.FromConnectionString("mongodb+srv://<hostname>");
mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalIdentity("<awsKeyId>"),
new PasswordEvidence("<awsSecretKey>"));
var client = new MongoClient(mongoClientSettings);

Si utilizas un token de sesión de AWS, llama al método WithMechanismProperty() en tu objeto MongoCredential como se muestra a continuación:

mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalIdentity("<awsKeyId>"),
new PasswordEvidence("<awsSecretKey>"))
.WithMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");

En lugar de especificar sus credenciales de AWS IAM en MongoClientSettings, puede instruir al controlador .NET/C# para que utilice el SDK de AWS para recuperar automáticamente sus credenciales de una fuente externa.

Para instruir al driver para que recupere sus credenciales, primero debe especificar MONGODB-AWS como el mecanismo de autenticación y especificar que la fuente de autenticación es externa a MongoDB. Puede especificar el mecanismo de autenticación y la fuente utilizando un objeto MongoCredential o como parte de la cadena de conexión. Selecciona la pestaña Connection String o MongoCredential para ver la sintaxis correspondiente para especificar el mecanismo de autenticación MONGODB-AWS y la fuente de autenticación externa:

var connectionString = "mongodb+srv://<hostname>?" +
"authMechanism=MONGODB-AWS" +
"&authSource=$external";
var mongoClientSettings = MongoClientSettings
.FromConnectionString(connectionString);
var client = new MongoClient(mongoClientSettings);
var mongoClientSettings = MongoClientSettings
.FromConnectionString("mongodb+srv://<hostname>");
mongoClientSettings.Credential = new MongoCredential(
"MONGODB-AWS",
new MongoExternalAwsIdentity(),
new ExternalEvidence());
var client = new MongoClient(mongoClientSettings);

Después de especificar el mecanismo y el origen de autenticación, debe establecer sus credenciales en la ubicación apropiada para el tipo de credencial. El driver .NET/C# busca las credenciales en las siguientes ubicaciones, en el orden aquí listado.

Puedes utilizar un proveedor de identidad web compatible con OpenID Connect (OIDC) para autenticarte en Amazon Elastic Kubernetes Service (EKS) u otros servicios. Para utilizar un proveedor de identidad web, crea un archivo que contenga tu token OIDC y, a continuación, establece la ruta absoluta a este archivo en una variable de entorno utilizando bash o un shell similar, como se muestra en el siguiente ejemplo.

export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>

Para autenticar mediante el uso de un perfil en un archivo de credenciales compartido de AWS, puedes utilizar un editor de texto, el AWS SDK para .NET, o la AWS CLI para crear el archivo de credenciales adecuado.

Para recuperar las credenciales directamente de las variables de entorno, establece las siguientes variables de entorno usando bash o un shell similar:

export AWS_ACCESS_KEY_ID=<awsKeyId>
export AWS_SECRET_ACCESS_KEY=<awsSecretKey>
export AWS_SESSION_TOKEN=<awsSessionToken>

Nota

Omita la línea que contiene AWS_SESSION_TOKEN si no necesita un token de sesión de AWS para esa función.

Para autenticar usando las credenciales del contenedor ECS, establezca la URI de su endpoint ECS en una variable de entorno utilizando bash o una shell similar. Selecciona la pestaña Full ECS URI ó Relative ECS URI para ver la sintaxis para especificar la variable de entorno correspondiente:

export AWS_CONTAINER_CREDENTIALS_FULL_URI=<full ECS endpoint>
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<relative ECS endpoint>

Para autenticar mediante las credenciales del contenedor EC2, asegurarse de que ninguna de las variables de entorno antes mencionadas esté configurada. El driver obtiene las credenciales del punto final de metadatos de instancia EC2 IPv4 por defecto.

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:

Volver

X.509

En esta página