Docs Menu
Docs Home
/ /

Gestión de identidad y acceso de AWS

Nota

La autenticación de AWS solo está disponible en MongoDB Enterprise Edition para MongoDB 4.4 y versiones posteriores.

El mecanismo de autenticación de AWS utiliza AWS Gestión de identidad y acceso (IAM)y el Servicio de Token de Seguridad de AWS (STS) para comprobar la identidad del cliente en una implementación de MongoDB. Los siguientes pasos describen el proceso de autenticación de AWS:

  1. El cliente utiliza las credenciales de AWS IAM para crear una firma que se envía a la implementación de MongoDB.

  2. La implementación utiliza la firma del cliente para enviar una solicitud a AWS STS.

  3. Si la solicitud tiene éxito, STS devuelve el nombre de recurso de Amazon (ARN) del usuario o rol de IAM que corresponde a las credenciales del cliente.

  4. La implementación utiliza el ARN devuelto para buscar al usuario. El cliente se autentica como este usuario.

Nota

El cliente y el servidor usan nombres de usuario diferentes. El cliente usa el ID de la clave de acceso de AWS, pero el servidor usa el ARN del usuario o rol de IAM correspondiente al ID de la clave de acceso.

Las credenciales de AWS incluyen los siguientes componentes:

  • ID de clave de acceso

  • Clave de acceso secreta

  • Token de sesión opcional

La autenticación con credenciales de AWS IAM utiliza el ID de la clave de acceso y la clave de acceso secreta. La autenticación con credenciales temporales de AWS IAM utiliza los tres componentes.

Nota

El controlador nunca envía la clave de acceso secreta ni el token de sesión a través de la red.

Las credenciales temporales se utilizan con:

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

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

  • <aws-access-key-id>:El ID de la clave de acceso de AWS

  • <aws_secret_access_key>: La clave de acceso secreta de AWS

  • <aws_session_token>:El token de sesión de AWS

Las siguientes secciones describen cómo utilizar el mecanismo de autenticación de AWS IAM en su aplicación.

Puede proporcionar credenciales de IAM regulares (no temporales) como opciones de cliente o mediante un URI. Seleccione Connection String o la pestaña Client Options para ver la sintaxis correspondiente:

client = Mongo::Client.new(
'mongodb://<aws_access_key_id>:<aws_secret_access_key>@host/?authMechanism=MONGODB-AWS')
client = Mongo::Client.new(['<host>'],
auth_mech: :aws,
user: '<aws_access_key_id>',
password: '<aws_secret_access_key>')

Nota

Si proporciona credenciales en una URI, debe codificarlas con un porcentaje.

Para proporcionar credenciales temporales, especifique el token de sesión en las opciones del cliente o mediante una URI. Seleccione la pestaña Connection String o Client Options para ver la sintaxis correspondiente:

client = Mongo::Client.new(
'mongodb://<aws_access_key_id>:<aws_secret_access_key>@host/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<<aws_session_token>>')
client = Mongo::Client.new(['<host>'],
auth_mech: :aws,
user: '<aws_access_key_id>',
password: '<aws_secret_access_key>',
auth_mech_properties: {
aws_session_token: '<<aws_session_token>>',
})

El cliente puede recuperar credenciales del entorno o de los puntos finales de metadatos de EC2 o ECS. Para recuperar credenciales automáticamente, especifique el mecanismo de autenticación de AWS, pero no especifique un nombre de usuario ni una contraseña. Seleccione la pestaña Connection String o Client Options para ver la sintaxis correspondiente:

client = Mongo::Client.new(
'mongodb://host/?authMechanism=MONGODB-AWS')
client = Mongo::Client.new(['<hostname>'],
auth_mech: :aws)
)

El controlador intenta obtener credenciales de las siguientes fuentes, en el orden especificado:

Importante

Una fuente de credenciales debe proporcionar un conjunto completo de credenciales. Por ejemplo, si su aplicación utiliza las variables de entorno AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY, el controlador genera un error si solo una de estas variables tiene un valor.

Nota

Si una aplicación se ejecuta en un contenedor ECS en una instancia EC2 y el contenedor tiene acceso a los metadatos de la instancia, el controlador intenta recuperar las credenciales de AWS desde el punto de conexión de metadatos de la instancia EC2. Si el controlador recupera las credenciales de esta manera, la aplicación puede autenticarse con el rol de IAM asignado a la instancia EC2.

Para saber cómo evitar que los contenedores accedan a los metadatos de la2 instancia EC, consulte la documentación de AWS.

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