Nota
El Modelo de Responsabilidad Compartida de MongoDB Atlas define los deberes complementarios de MongoDB y sus clientes en el mantenimiento de un entorno de datos seguro y resiliente. Bajo este marco, MongoDB gestiona la seguridad y la integridad operativa de la plataforma subyacente, mientras que los clientes son responsables de la configuración, gestión y políticas de datos de sus implementaciones específicas. Para obtener un desglose detallado de la propiedad en materia de seguridad y excelencia operativa, consulta el Modelo de Responsabilidad Compartida.
Overview
Puedes usar usuarios o roles de AWS IAM para autenticar a los usuarios de la base de datos en tus clústeres de Atlas sin necesidad de gestionar contraseñas. El uso de AWS IAM reduce la cantidad de mecanismos de autenticación y de secretos que debes administrar. Atlas no recibe tu clave secreta de autenticación a través de la red y el controlador no la almacena.
Elige el método de autenticación adecuado para tu caso de uso:
Roles de IAM: Roles que asumen los servicios de AWS (EC2, Lambda, ECS) o usuarios federados. Recomendamos usar roles de IAM para el acceso a aplicaciones y cargas de trabajo que se ejecutan en recursos informáticos de AWS.
Usuarios de IAM: Usuarios individuales de AWS que necesitan acceso directo a la base de datos. Esta opción puede ser adecuada para aplicaciones que se ejecutan con credenciales de usuario específicas. Para los usuarios humanos, como desarrolladores y administradores, se recomienda usar Federación de Identidad de la Fuerza Laboral con OIDC para una experiencia directa de SSO con su proveedor de identidad.
Importante
Antes de que los clientes puedan conectarse utilizando la autenticación de base de datos AWS IAM, deberás crear usuarios de base de datos configurados para la autenticación de IAM. Para aprender a crear usuarios de base de datos que utilicen IAM Users o IAM Roles para autenticarse, consulte Gestionar usuarios de la base de datos.
Nota
Atlas utiliza AWS STS para verificar la identidad de los usuarios y roles deIAM. AWS impone una cuota predeterminada de 600 solicitudes por segundo, por cuenta y por región. Esta cuota se aplica a la cuenta de AWS del usuario o rol de IAM.
Configurar la autenticación con roles de AWS IAM
Puedes configurar roles de AWS IAM para autenticar tipos de cómputo de AWS en tus clústeres de Atlas.
Nota
No puedes configurar la autenticación para los principales de AWS IAM cuando la autorización LDAP está activada.
Si requieres autenticación para un principal de AWS IAM, considera mover los clústeres a los que deseas acceder con la autenticación de AWS IAM a otro proyecto donde la autorización LDAP esté desactivada.
Para AWS Lambda y HTTP (ECS y EC2), los controladores leen automáticamente las variables de entorno. Para AWS EKS, debe asignar manualmente el rol de IAM.
Esta página describe cómo AWS Lambda, AWS ECS y AWS EKS pueden conectarse usando un rol de AWS IAM.
Nota
Debes asignar un rol de IAM a Lambda, EC2, ECS o EKS en la consola de AWS.
AWS Lambda pasa información a las funciones a través de las siguientes variables de entorno si asignas un rol de ejecución a la función Lambda.
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
Nota
No se necesita crear manualmente estas variables de entorno cuando se use un rol de ejecución en la función.
Para obtener más información sobre estas variables de entorno, consulta Uso de variables de entorno de AWS Lambda.
AWS ECS obtiene las credenciales de la siguiente URI:
http://169.254.170.2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI es una variable de entorno. Para aprender más, consulta Roles de IAM para tareas en la documentación de AWS.
Las instanciasAWS EC2 obtienen credenciales automáticamente del Servicio de metadatos de instancia V2 cuando se adjunta un rol de IAM. Las credenciales se recuperan de la siguiente URL:
http://169.254.169.254/latest/meta-data/iam/security-credentials/
Importante
Debe adjuntar un rol de IAM a su instancia EC2 para que funcione la autenticación. El rol de IAM debe contar con los permisos necesarios para acceder a tus clústeres de Atlas.
Para aprender cómo adjuntar un rol de IAM a su2 instancia EC, consulte Iniciar una instancia con un rol de IAM en la documentación de AWS.
Para aprender a configurar un rol de AWS IAM para la autenticación con AWS ECS Fargate, consulta el rol de IAM de ejecución de tareas de Amazon ECS en la documentación de AWS.
Para EKS de AWS, primero se debe asignar el rol de IAM al pod para configurar las siguientes variables de entorno en ese pod:
AWS_WEB_IDENTITY_TOKEN_FILE- contiene la ruta al archivo del token de identidad web.AWS_ROLE_ARN- contiene el rol de IAM utilizado para conectarse al clúster.
Para aprender más sobre AWS EKS, consulta ¿Qué es Amazon EKS? en la documentación de AWS.
Conceder acceso a la base de datos a los roles de AWS IAM
Para otorgar acceso a la base de datos al rol de AWS IAM, completa los pasos descritos en la sección Configurar usuarios de base de datos para AWS IAM. Para obtener más información sobre cómo conceder acceso a la base de datos utilizando Atlas CLI, Administration API de Atlas o la interfaz de usuario de Atlas, consulta Configurar usuarios de base de datos.
Conéctese al clúster Atlas usando AWS IAM
Para conectarse a Atlas con sus credenciales de AWS IAM mediante mongosh, proporcione una cadena de conexión que especifique el mecanismo de autenticación MONGODB-AWS. Este formato de cadena de conexión se aplica a todos los mecanismos de autenticación de AWS IAM.
Importante
Debes configurar la autenticación utilizando uno de los métodos descritos en Configurar la autenticación con los roles de AWS IAM antes de poder usar este formato de cadena de conexión.
Conectarse a Atlas usando la autenticación de AWS IAM con el mongosh requiere la versión de shell v0.9.0 o superior.
Considere lo siguiente:
Se deben usar las credenciales de AWS IAM, usando la ID de clave de acceso como nombre de usuario y la clave secreta como contraseña.
El parámetro del query
authSourcees$external, codificado en URL como%24external.El parámetro de query
authMechanismesMONGODB-AWS.Ejemplo
mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>