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

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, consulta Configure la autenticación con AWS IAM en la documentación de Atlas.

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

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

Estas secciones contienen ejemplos de código que usan 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 tu implementación de MongoDB Atlas

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

  • awsSessionTokenEl 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 funcionalidades:

  • Varias opciones para obtener credenciales

  • Almacenamiento en caché de credenciales, que ayuda a que tu aplicación evite 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. Agrega el SDK como una dependencia a tu proyecto.

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

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

Para especificar el mecanismo de autenticación MONGODB-AWS en la cadena de conexión, configura 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, llama al método factory MongoCredential.createAwsCredential() y añade la instancia MongoCredential a tu 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 añadir el SDK de AWS como dependencia a tu proyecto, consulta la siguiente documentación de AWS para la versión que necesitas:

  • Para el AWS SDK para Java v2, consulta la guía 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 suministrar sus credenciales, consulte la siguiente documentación de AWS para la versión que necesita:

Nota

Si incluyes tanto la versión v1 como la v2 del AWS SDK for Java en tu proyecto, debes utilizar los métodos de la v2 para suministrar tus 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 del entorno para proporcionar tus credenciales, realiza 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égalo 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 estableciendo variables de entorno para los siguientes tipos de autenticación:

  • Claves de acceso programático

  • Credenciales de 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>

Omite la línea que establece la variable AWS_SESSION_TOKEN si no necesitas un token de sesión AWS para ese rol.

Para autenticar usando credenciales de contenedor ECS, establece el URI relativo del punto final de ECS en una variable de entorno usando bash o un shell similar, como se muestra en el siguiente ejemplo:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>

Para autenticarse mediante las credenciales del contenedor EC2 , no configure las variables de entorno de AWS. El driver obtiene las credenciales del endpoint de metadatos de instancia de EC2 por defecto en IPv4.

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

Tip

Solo puede proporcionar claves de acceso programáticas al método MongoCredential.createAwsCredential(). Si debes proporcionar credenciales de contenedor ECS o EC2, sigue las instrucciones en Especifica tus 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. Proporciona 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 withMechanismProperty() método, 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 tus credenciales, puedes 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, consulta Autenticación en el manual del servidor de MongoDB.

Para obtener más información sobre cómo crear un objeto MongoClient usando el Driver Synchronization de Kotlin, consulta la Crear una guía de MongoClient.

Volver

X.509

En esta página