Docs Menu
Docs Home
/ /
/ / /

Gestión de identidad y acceso de AWS

Nota

El mecanismo de autenticación MONGODB-AWS está disponible para las implementaciones de MongoDB en MongoDB Atlas.

El MONGODB-AWS El mecanismo de autenticación utiliza sus credenciales de Amazon Web Services Identity and Access Management (AWS IAM) para autenticar a su usuario. Para obtener más información sobre la configuración de MongoDB Atlas, consulte Configurar la autenticación sin contraseña con la guía de roles de AWS IAM.

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

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

  • awsKeyId - valor de su ID de clave de acceso de AWS

  • awsSecretKey - valor de su clave de acceso secreta de AWS

  • atlasUri - dirección de red de su implementación de MongoDB Atlas

  • hostname - nombre de host de su implementación de MongoDB Atlas

  • port - puerto de su implementación de MongoDB Atlas

  • awsSessionToken - valor de su token de sesión de AWS

Puede usar uno de los SDK de AWS para Java v1 o v2 para especificar sus credenciales. Este método ofrece las siguientes funciones:

  • 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 utilizar el SDK de AWS para Java para la autenticación MONGODB-AWS, debe realizar lo siguiente:

  1. Especificar 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

Para especificar el mecanismo de autenticación utilizando un MongoCredential, utiliza el método de fábrica 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 especificar el mecanismo de autenticación 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")

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 SDK de AWS para Java v2, el controlador de Java actualmente realiza pruebas utilizando la dependencia software.amazon.awssdk:auth:2.30.31.

Para el SDK de AWS para Java v1, el controlador de Java actualmente realiza pruebas utilizando 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, debe realizar lo siguiente:

  1. Especificar el mecanismo de autenticación

  2. Agregue las variables de entorno apropiadas

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

Para especificar el mecanismo de autenticación utilizando un MongoCredential, utiliza el método de fábrica 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 especificar el mecanismo de autenticación 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")

Los siguientes ejemplos muestran 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 contiene 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 credenciales del contenedor EC,2 asegúrese de que ninguna de las variables de entorno mencionadas esté configurada. El controlador obtiene las credenciales4 del2 punto final 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, utilice el método de fábrica createAwsCredential().

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

Para utilizar la autenticación MongoCredential para MONGODB-AWS, debe realizar lo siguiente:

  1. Especificar el mecanismo de autenticación

  2. Proporcionar las credenciales

Para especificar el mecanismo de autenticación utilizando un MongoCredential, utiliza el método de fábrica MongoCredential.createAwsCredential() y añade la instancia MongoCredential a tu 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 necesita 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 debe proporcionar credenciales de AWS IAM en una cadena de conexión, puede agregarla a su 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)

Volver

X.509

En esta página