Docs Menu
Docs Home
/ /

Autenticación de AWS IAM

El mecanismo de autenticación MONGODB-AWS utiliza credenciales de IAM (Identity and Access Gestión) de Amazon Web Services para autenticar un usuario en MongoDB. Solo puedes utilizar este mecanismo al autenticarte 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.

Para indicarle al controlador de sincronización de Kotlin que utilice el MONGODB-AWS mecanismo de autenticación, puede especificar MONGODB-AWS como parámetro en la cadena de conexión o llamar al método de fábrica MongoCredential.createAwsCredential().

En las siguientes secciones, puede aprender diferentes formas de especificar el mecanismo de autenticación MONGODB-AWS y proporcionar sus credenciales de AWS IAM.

Estas secciones contienen ejemplos de código que utilizan los siguientes marcadores de posición:

  • awsKeyId:El valor de su ID de clave de acceso de AWS

  • awsSecretKey:El valor de su clave de acceso secreta de AWS

  • atlasUri:La dirección de red de su implementación de MongoDB Atlas

  • hostname:El nombre de host de su implementación de MongoDB Atlas

  • port: El puerto de tu implementación de MongoDB Atlas

  • awsSessionToken:El valor de su token de sesión de AWS

Nota

Fin del soporte para AWS SDK para Java v1

El SDK de AWS para Java v1 finalizará su soporte el de diciembre 31 2025del. AWS recomienda migrar al SDK de AWS para Java v.2 Para obtener más información, consulte el anuncio de finalización del soporte en el sitio web de AWS.

AWS proporciona kits de desarrollo de software (SDK) para Java v1 y v2. El SDK de AWS ofrece las siguientes características:

  • Múltiples opciones para obtener credenciales

  • Almacenamiento en caché de credenciales, que ayuda a su aplicación a evitar la limitación de velocidad

  • Gestión de proveedores de credenciales para su uso con el servicio Elastic Kubernetes

Para usar el AWS SDK para la autenticación de MONGODB-AWS, sigue los siguientes pasos:

  1. Especifique el mecanismo de autenticación.

  2. Agregue el SDK como una dependencia a su proyecto.

  3. Proporcione sus credenciales utilizando uno de los métodos en la cadena de proveedores de credenciales.

Puede especificar el mecanismo de autenticación MONGODB-AWS mediante una cadena de conexión o un objeto MongoCredential. Seleccione el Connection String o la pestaña MongoCredential a continuación para obtener las instrucciones correspondientes y el código de muestra:

Para especificar el mecanismo de autenticación MONGODB-AWS en la cadena de conexión, establezca el parámetro authMechanism en MONGODB-AWS, como se muestra en el siguiente ejemplo:

val mongoClient =
MongoClient.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS")

Para especificar el mecanismo de autenticación MONGODB-AWS utilizando un objeto MongoCredential, llame al método de fábrica MongoCredential.createAwsCredential() y agregue la instancia MongoCredential a su MongoClient, como se muestra en el siguiente ejemplo:

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

Para agregar el SDK de AWS como una dependencia a su proyecto, consulte la siguiente documentación de AWS para la versión que necesita:

  • Para el SDK de AWS para Java v,2 consulte la guía de configuración.

  • Para el SDK de AWS para Java v,1 consulte la guía de introducción.

Nota

Para el AWS SDK for Java v2, el controlador Java ejecuta pruebas usando la dependencia software.amazon.awssdk:auth:2.30.31.

Para el AWS SDK for Java v1, el controlador Java ejecuta pruebas usando la dependencia com.amazonaws:aws-java-sdk-core:1.12.782.

Para proporcionar sus credenciales, consulte la siguiente documentación de AWS para la versión que necesita:

Nota

Si incluye v1 y v2 del AWS SDK para Java en su proyecto, debe usar los métodos v2 para proporcionar sus credenciales.

Puede proporcionar sus credenciales de AWS IAM indicando al controlador que utilice el mecanismo de autenticación MONGODB-AWS y configurando las variables de entorno adecuadas.

Para utilizar las variables de entorno para proporcionar sus credenciales, realice los siguientes pasos:

  1. Especifique el mecanismo de autenticación.

  2. Agregue las variables de entorno apropiadas.

Puede especificar el mecanismo de autenticación MONGODB-AWS utilizando un objeto MongoCredential o en la cadena de conexión.

Para especificar el mecanismo de autenticación utilizando un objeto MongoCredential, llame al método de fábrica MongoCredential.createAwsCredential() y agregue la instancia MongoCredential a su MongoClient, como se muestra en el siguiente ejemplo:

val credential = MongoCredential.createAwsCredential(null, null)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

Para especificar el mecanismo de autenticación MONGODB-AWS en la cadena de conexión, agréguelo como parámetro como se muestra en el siguiente ejemplo:

val mongoClient =
MongoClient.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS")

Esta sección muestra cómo proporcionar sus credenciales configurando variables de entorno para los siguientes tipos de autenticación:

  • Teclas de acceso programático

  • Credenciales del contenedor ECS

  • Credenciales del contenedor EC2

El siguiente ejemplo muestra cómo puede configurar sus claves de acceso programático en variables de entorno utilizando bash o un shell similar:

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

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

Para autenticarse mediante las credenciales del contenedor ECS, configure el URI relativo del punto final ECS en una variable de entorno utilizando bash o un shell similar, como se muestra en el siguiente ejemplo:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

Para autenticarse con las 2 credenciales del contenedor EC, no configure las variables de entorno de AWS. El controlador obtiene las credenciales4 del2 punto de conexión de metadatos de la instancia EC IPv predeterminada.

Puede proporcionar sus credenciales de AWS IAM a una instancia MongoClient mediante una MongoCredential instancia. Para construir la MongoCredential instancia para la MONGODB-AWS autenticación, llame al método de fábrica createAwsCredential().

Tip

Solo puede proporcionar claves de acceso programático al MongoCredential.createAwsCredential() método. Si debe proporcionar credenciales de contenedor ECS o EC,2 siga las instrucciones de "Especificar sus credenciales en el entorno".

Para utilizar un objeto MongoCredential para la autenticación de MONGODB-AWS, realizar los siguientes pasos:

  1. Especifique el mecanismo de autenticación.

  2. Proporcionar las credenciales.

Para especificar el mecanismo de autenticación utilizando un objeto MongoCredential, llame al método de fábrica MongoCredential.createAwsCredential() y agregue la instancia MongoCredential a su MongoClient, como se muestra en el siguiente ejemplo:

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

Si debe especificar un token de sesión de AWS, páselo al método withMechanismProperty(), como se muestra en el siguiente ejemplo:

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder: ClusterSettings.Builder ->
builder.hosts(
listOf(ServerAddress("<atlasUri>"))
)
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

Para actualizar sus credenciales, puede declarar una expresión lambda Supplier que devuelva nuevas credenciales, como se muestra en el siguiente ejemplo:

val awsFreshCredentialSupplier: Supplier<AwsCredential> = Supplier {
// Add your code here to fetch new credentials
// Return the new credentials
AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>")
}
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
.withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier)
val settings = MongoClientSettings.builder()
.applyToClusterSettings { builder ->
builder.hosts(listOf(ServerAddress("<hostname>", <port>)))
}
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

Si debes proporcionar credenciales AWS IAM en una cadena de conexión, puedes agregarlas a tu objeto MongoClientSettings llamando al método applyConnectionString():

val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray())
val connectionString = ConnectionString("mongodb://<atlasUri>/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>")
val settings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.credential(credential)
.build()
val mongoClient = MongoClient.create(settings)

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

Para obtener más información sobre cómo crear un objeto MongoClient mediante el controlador Kotlin Sync, consulte la Crear una guía de MongoClient.

Volver

X.509

En esta página