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 utilizar el mecanismo de autenticación MONGODB-AWS, especifique 'MONGODB-AWS' como el valor de la opción de conexión authMechanism.

Nota

La biblioteca PHP de MongoDB utiliza la implementación de libmongoc del mecanismo de autenticación MONGODB-AWS. Para obtener más información sobre el uso de este mecanismo de autenticación con libmongoc, consulte Autenticación mediante AWS IAM en la documentación del controlador C.

Cuando usas el mecanismo MONGODB-AWS, el driver intenta recuperar las credenciales de AWS de las siguientes fuentes, en el orden indicado:

  1. Opciones proporcionadas a MongoDB\Client como parte del URI de conexión o como un parámetro de opciones

  2. Variables de entorno

  3. Solicitud de AWS EKS AssumeRoleWithWebIdentity

  4. Metadatos de contenedor ECS

  5. Metadatos de la instancia EC2

Las siguientes secciones describen cómo recuperar credenciales de estas fuentes y utilizarlas para autenticar su aplicación PHP.

Primero, el driver verifica si has pasado credenciales de AWS al constructor MongoDB\Client, ya sea como parte del URI de conexión o del parámetro de arreglo $uriOptions. Para pasar tus credenciales a MongoDB\Client, establece las siguientes opciones de conexión:

  • usernameEl ID de clave de acceso de AWS IAM para autenticarse. Codifica este valor como porcentaje antes de incluirlo en un URI de conexión.

  • passwordLa clave de acceso secreta de AWS IAM. Codifica este valor como porcentaje antes de incluirlo en un URI de conexión.

  • authMechanism:Establecer en 'MONGODB-AWS'.

Puedes establecer estas opciones de dos maneras: pasando un arreglo de opciones al constructor MongoDB\Client o a través de parámetros en tu URI de conexión. Selecciona el MongoDB\Client o la pestaña Connection URI para ver el código correspondiente:

$uriOptions = [
'username' => '<AWS IAM access key ID>',
'password' => '<AWS IAM secret access key>',
'authMechanism' => 'MONGODB-AWS',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Si no proporciona un nombre de usuario y una contraseña cuando construye su objeto MongoDB\Client, el controlador intenta recuperar las credenciales de AWS de las siguientes variables de entorno:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

Para usar estas variables de entorno para autenticar su aplicación, primero configúrelas con los valores de AWS IAM necesarios para la autenticación. Puede ejecutar el comando export en su shell o agregar las variables a un archivo .env, como se muestra en el siguiente ejemplo de código:

export AWS_ACCESS_KEY_ID=<AWS IAM access key ID>
export AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key>
export AWS_SESSION_TOKEN=<AWS session token>
AWS_ACCESS_KEY_ID=<AWS IAM access key ID>
AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key>
AWS_SESSION_TOKEN=<AWS session token>

Importante

No codifiques en porcentaje los valores en estas variables de entorno.

Después de establecer estas variables de entorno, establezca la opción de conexión authMechanism en 'MONGODB-AWS'.

El siguiente ejemplo establece la opción de conexión authMechanism. Puede establecer esta opción de dos maneras: pasando una matriz de opciones al constructor MongoDB\Client o mediante un parámetro en la URI de conexión.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['authMechanism' => 'MONGODB-AWS'],
);
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Tip

AWS Lambda

Los entornos de ejecución de AWS Lambda pueden configurar automáticamente estas variables de entorno durante la inicialización. Para obtener más información sobre el uso de variables de entorno en un entorno AWS Lambda, consulta Uso de variables de entorno de Lambda en la documentación de AWS.

Si la aplicación autentica usuarios para el clúster de EKS a partir de un proveedor de identidades OpenID Connect (OIDC), el controlador puede hacer una solicitud AssumeRoleWithWebIdentity para intercambiar el token OIDC por credenciales temporales de AWS para la aplicación.

Para autenticarse con las credenciales temporales de AWS IAM devueltas por una AssumeRoleWithWebIdentity solicitud, asegúrese de que el archivo de configuración de AWS exista en su entorno y esté configurado correctamente. Para aprender a crear y configurar un archivo de configuración de AWS,consulte Configuración en la documentación de AWS.

Después de configurar tu entorno para una solicitud AssumeRoleWithWebIdentity, establece la opción de conexión authMechanism en 'MONGODB-AWS'. Para ver un ejemplo que establece la opción authMechanism, consulte el ejemplo de authMechanism en esta página.

Tip

Para obtener más información sobre cómo usar una solicitud AssumeRoleWithWebIdentity para autenticar su aplicación, consulte la siguiente documentación de AWS:

Si su aplicación se ejecuta en un contenedor de Elastic Container Service (ECS), el controlador puede recuperar automáticamente las credenciales temporales de AWS desde un punto de conexión de ECS. Para ello, especifique el URI del punto de conexión de ECS en una variable de entorno llamada AWS_CONTAINER_CREDENTIALS_RELATIVE_URI. Puede configurar esta variable ejecutando el comando de shell export o añadiéndola a su archivo .env, como se muestra en el siguiente ejemplo:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>

Después de configurar la variable de entorno, configure la authMechanism opción de conexión 'MONGODB-AWS' en. Para ver un ejemplo que configura la authMechanism opción, consulte el ejemplo de authMechanism en esta página.

El driver puede recuperar automáticamente credenciales temporales de AWS desde una instancia de EC2 de Amazon Elastic Compute Cloud. Para utilizar credenciales temporales desde una instancia EC2, configura la opción de conexión authMechanism a 'MONGODB-AWS'. Para ver un ejemplo que configure la opción authMechanism, consulta el ejemplo de authMechanism en esta página.

Nota

La librería PHP de MongoDB recupera las credenciales de una instancia EC2 solo si las variables de entorno descritas en la sección Variables de entorno no están configuradas.

Para obtener más información sobre cómo crear un MongoDB\Client objeto en la librería PHP de MongoDB, consulte el Cree una guía del cliente MongoDB.

Para obtener más información sobre las opciones de conexión, consulta la guía Especificar opciones de conexión.

Volver

X.509

En esta página