Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Autenticación mediante la identidad de IAM
Los usuarios y las aplicaciones de Amazon DocumentDB pueden utilizar los usuarios y roles de IAM para autenticarse en un clúster de Amazon DocumentDB. La autenticación de IAM de Amazon DocumentDB es un método de autenticación sin contraseña. Además, las aplicaciones cliente no envían los secretos de las contraseñas al clúster de Amazon DocumentDB cuando utilizan roles o usuarios de IAM. En su lugar, las conexiones de los clientes se autentican AWS STS mediante tokens de seguridad temporales. Los usuarios y las aplicaciones no administrativos ahora pueden usar el mismo ARN de identidad de IAM al conectarse a distintos clústeres de Amazon DocumentDB y a otros servicios. AWS
También puede optar por utilizar la autenticación basada en contraseña y la autenticación de IAM para autenticar los usuarios y las aplicaciones en un clúster de Amazon DocumentDB. La autenticación de IAM solo está disponible en la versión 5.0 del clúster basado en instancias de Amazon DocumentDB. El usuario principal de Amazon DocumentDB no admite la autenticación de IAM mediante la identidad ARNs de IAM.
nota
El usuario principal solo se puede autenticar mediante la autenticación basada en contraseñas existente.
Temas
Introducción a la autenticación mediante roles y usuarios de IAM
Los usuarios y roles de Amazon DocumentDB con identidades de IAM se crean y administran en una base de datos de $external
.
Creación de un usuario
Conéctese como usuario principal y, a continuación, cree un usuario y un rol de IAM:
use $external; db.createUser( { user: "arn:aws:iam::123456789123:user/iamuser", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Como alternativa, agregue un usuario de Amazon DocumentDB con un rol de IAM:
use $external; db.createUser( { user: "arn:aws:iam::123456789123:role/iamrole", mechanisms: ["MONGODB-AWS"], roles: [ { role: "readWrite", db: "readWriteDB" } ] } );
Modificación de un usuario o rol de IAM
Modificación de un usuario de IAM existente:
use $external; db.updateUser( "arn:aws:iam::123456789123:user/iamuser", { roles: [ { role: "read", db: "readDB" } ] } );
Modificación de un rol de IAM existente:
use $external; db.updateUser( "arn:aws:iam::123456789123:role/iamrole", { roles: [ { role: "read", db: "readDB" } ] } );
Concesión o revocación de roles de un usuario de IAM:
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamuser", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
Concesión o revocación de roles de un rol de IAM:
use $external; db.grantRolesToUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
use $external; db.revokeRolesFromUser( "arn:aws:iam::123456789123:user/iamrole", [ { db: "admin", role: "readWriteAnyDatabase" } ] );
Eliminación de un usuario o un rol de IAM
Eliminación de un usuario de IAM existente:
use $external; db.dropUser("arn:aws:iam::123456789123:user/iamuser");
Eliminación de un rol de IAM existente:
use $external; db.dropUser("arn:aws:iam::123456789123:role/iamrole");
Configure un URI de conexión para autenticarse mediante IAM AWS
Para autenticarse mediante AWS IAM, utilice los siguientes parámetros de URI: authSource
as y as. $external
authMechanism
MONGODB-AWS
Si utiliza un usuario de IAM, los campos de nombre de usuario y contraseña se sustituyen por una clave de acceso y una clave secreta, respectivamente. Si asume una función de IAM, vinculada al entorno en el que se encuentra (por ejemplo, AWS Lambda función, EC2 instancia de Amazon). No es necesario pasar ninguna credencial de manera específica al autenticarse mediante el mecanismo MONGODB-AWS
. Si utiliza controladores MongoDB que admiten MONGODB-AWS
el mecanismo de autenticación, los controladores también tienen la capacidad de recuperar las credenciales del rol de IAM de la instancia de procesamiento (por ejemplo EC2, Amazon, la función Lambda y otros). En el siguiente ejemplo, se utiliza un intérprete de comandos de mongo para autenticarse con MONGODB-AWS
mediante el paso manual de una clave de acceso y una clave secreta (de un usuario de IAM) para demostrar la autenticación en Amazon DocumentDB.
En el siguiente ejemplo, se utiliza código Python para autenticarse con MONGODB-AWS
sin pasar ninguna credencial de forma explícita (mediante un rol de IAM asociado al entorno) para demostrar la autenticación en Amazon DocumentDB.
##Create a MongoDB client, open a connection to Amazon DocumentDB using an IAM role client = pymongo.MongoClient(‘mongodb://<DocDBEndpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false&authSource=%24external&authMechanism=MONGODB-AWS')
En el siguiente ejemplo, se utiliza un intérprete de comandos de mongo para autenticarse con el mecanismo MONGODB-AWS
mediante el paso manual de una clave de acceso y una clave secreta (de un usuario de IAM) para demostrar la autenticación en Amazon DocumentDB.
$ mongo 'mongodb://<access_key>:<secret_key>@<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
En el siguiente ejemplo, se utiliza un intérprete de comandos de mongo para autenticarse con MONGODB-AWS
sin pasar ninguna credencial de forma explícita (mediante un rol de IAM asociado al entorno) para demostrar la autenticación en Amazon DocumentDB.
$ mongo 'mongodb://<cluster_endpoint>:<db_port>/test?authSource=%24external&authMechanism=MONGODB-AWS'
Configuración de tipos de AWS procesamiento para autenticarse en Amazon AWS DocumentDB mediante IAM
Uso de Amazon EC2/AWS Lambda/AWS Fargate
Amazon EC2 utiliza las siguientes variables de entorno. Si tiene una función de IAM asociada a la EC2 instancia o una función de IAM de ejecución asociada a una función de Lambda o una tarea de Amazon ECS, estas variables se rellenan automáticamente y el controlador puede obtener estos valores del entorno:
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN
Para obtener información sobre cómo usar las variables de entorno, consulte Utilice variables de entorno de Lambda en la Guía para desarrolladores de AWS Lambda .
Uso de Amazon EKS
Al asignar un rol a los pods de Amazon Elastic Kubernetes Service (Amazon EKS), se configurarán automáticamente las dos variables de entorno siguientes:
AWS_WEB_IDENTITY_TOKEN_FILE - path of web identity token file AWS_ROLE_ARN - Name of IAM role to connect with
Con la ayuda de estas variables, asuma manualmente la función a partir de su código mediante la llamada del AWS SDK para: AssumeRoleWithWebIdentity
Omita el parámetro
ProviderID
.Busque el valor del parámetro
WebIdentityToken
en el archivo descrito en la variable de entornoAWS_WEB_IDENTITY_TOKEN_FILE
.
Para obtener más información en Amazon EKS, consulte ¿Qué es Amazon EKS? en la Guía del usuario de Amazon EKS.
Supervisión de solicitudes de autenticación de IAM
Uso de la auditoría de Amazon DocumentDB
Ve a la carpeta de registros de auditoría de Amazon CloudWatch y utiliza diferentes patrones de búsqueda para obtener los registros de la autenticación de IAM. Por ejemplo, utilice { $.param.mechanism = "MONGODB-AWS" }
como patrón de búsqueda para “Buscar en todos los flujos de registro”.
Para obtener más información sobre los eventos compatibles en la auditoría, consulte Auditoría de eventos de Amazon DocumentDB.
Uso de CloudWatch las métricas de Amazon
StsGetCallerIdentityCalls
: Esta métrica muestra el número de GetCallerIdentity
llamadas que realiza una instancia de Amazon DocumentDB al punto final regionalizado AWS Security Token Service ()AWS STS. Consulte la especificación de autenticación de MONGODB-AWS
para saber por qué las instancias de base de datos deben hacer llamadas GetCallerIdentity
a STS.
Uso de la autenticación de IAM
Si no desea administrar el nombre de usuario y la contraseña de su propia base de datos, puede utilizar la autenticación de IAM. La autenticación de IAM solo está disponible en la versión 5.0 del clúster basado en instancias de Amazon DocumentDB.
La autenticación de IAM depende del servicio STS. Le recomendamos que evalúe si puede reducir la velocidad de conexión si utiliza la autenticación de IAM para la conexión y obtiene una excepción de limitación del STS.
Para conocer las cuotas de IAM, consulte IAM y AWS STS cuotas en la Guía del usuario de IAM.
Controladores compatibles con IAM
Los controladores compatibles con Amazon DocumentDB 5.0 y el mecanismo de autenticación de MONGODB-AWS
deberían funcionar con la implementación de autenticación de IAM en Amazon DocumentDB.
importante
Existe una limitación conocida con los controladores de Node.js que actualmente no son compatibles con la autenticación de identidad de IAM para Amazon DocumentDB. La limitación incluye el último shell de MongoDB, mongosh. Para admitir la autenticación de identidad de IAM con Amazon DocumentDB, se recomienda utilizar el shell MongoDB 5.0. La compatibilidad con el controlador Node.js se actualizará una vez que se resuelva la limitación.
Preguntas frecuentes sobre la autenticación de identidad de IAM
¿Hay alguna muestra que pueda consultar?
Consulte estas páginas para ver ejemplos de casos de uso y configuraciones:
Aparece un error al usar mi controlador de Python: «pymongo.errors. ConfigurationError: MONGODB: se requiere autenticación».AWS pymongo-auth-aws ¿Cómo puedo resolver esto?
Asegúrese de utilizar la siguiente declaración al instalar el controlador de Python con la autenticación de IAM:
pip install 'pymongo[aws]'
Esto instalará las AWS dependencias adicionales necesarias para que la autenticación de IAM funcione.
¿Se interrumpirá mi conexión cuando caduquen las credenciales temporales de mi rol de IAM?
No, las credenciales de IAM temporales solo se utilizan para establecer la conexión y la autenticación. A continuación, todas las autorizaciones adicionales se producen en el clúster de Amazon DocumentDB. Incluso si las credenciales de IAM cambian o caducan, la conexión no se interrumpirá ni quedará obsoleta.