Observação
The MongoDB Atlas Shared Responsibility Model defines the complementary duties of MongoDB and its customers in maintaining a secure and resilient data environment. Under this framework, MongoDB manages the security and operational integrity of the underlying platform, while customers are responsible for the configuration, management, and data policies of their specific deployments. For a detailed breakdown of ownership across security and operational excellence, see Shared Responsibility Model.
Visão geral
Você pode usar Usuários ou funções do AWS IAM para autenticar usuários de banco de dados em seus clusters Atlas sem gerenciar senhas. Usar o AWS IAM reduz o número de mecanismos de autenticação e o número de segredos a gerenciar. Atlas não recebe sua chave secreta de autenticação pela rede e o driver não a armazena permanentemente.
Escolha o método de autenticação apropriado para seu caso de uso:
Funções do IAM: funções que os serviços da AWS (EC2, Lambda, ECS) ou usuários federados assumem. Recomendamos que você use as funções do IAM para acesso a aplicativo e cargas de trabalho em execução nos recursos de computação da AWS.
IAM Users: Individual AWS users that need direct database access. This option might suit applications running with specific user credentials. For human users such as developers and administrators, we recommend that you use Workforce Identity Federation with OIDC for a direct SSO experience with your identity provider.
Importante
Antes que os clientes possam se conectar usando a autenticação do banco de dados AWS IAM, você deve criar usuários do banco de dados configurados para autenticação IAM. Para saber como criar usuários do banco de dados que utilizam o IAM Users ou IAM Roles para autenticação, consulte Gerenciar usuários do banco de dados.
Observação
O Atlas usa o AWS STS para verificar a identidade de usuários e funções do IAM. AWS impõe uma cota de solicitações padrão de 600 solicitações por segundo, por conta, por região. Esta cota é aplicada à conta da Amazon Web Services do usuário ou função do IAM.
Configurar Autenticação com Funções Amazon Web Services IAM
Você pode configurar o Amazon Web Services IAM Roles para autenticar os tipos de computação Amazon Web Services em seus Atlas clusters.
Observação
Não é possível configurar a autenticação para entidades do Amazon Web Services IAM quando a autorização LDAP está habilitada.
Se você precisar de autenticação para um principal Amazon Web Services IAM, considere mover os clusters que deseja acessar com a autenticação Amazon Web Services IAM para outro projeto em que a autorização LDAP esteja desabilitada.
Para AWS Lambda e HTTP (ECS e EC2), os drivers leem automaticamente das variáveis de ambiente. Para o AWS EKS, você deve atribuir manualmente a função do IAM.
Esta página descreve como AWS Lambda, AWS ECS, e AWS EKS podem se conectar usando um papel AWS IAM.
Observação
Você deve atribuir uma função IAM a Lambda, EC2, ECS ou EKS no console do AWS.
O AWS Lambda passa informações para as funções por meio das seguintes variáveis de ambiente se você atribuir uma função de execução à função lambda.
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_SESSION_TOKEN
Observação
Você não precisa criar manualmente essas variáveis de ambiente ao usar um role de execução em sua função.
Para saber mais sobre essas variáveis de ambiente, consulte Usando variáveis de ambiente AWS Lambda.
AWS ECS obtém as credenciais do seguinte URI:
http://169.254.170.2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI é uma variável de ambiente. Para saber mais, consulte Funções de IAM para tarefas na documentação do Amazon Web Services.
AWS instâncias EC2 obtêm credenciais automaticamente do Serviço de Metadados de Instância V2 quando uma função IAM é anexada. As credenciais são recuperadas do seguinte URL:
http://169.254.169.254/latest/meta-data/iam/security-credentials/
Importante
Você deve anexar uma função IAM à sua instância do EC2 para que a autenticação funcione. A função do IAM deve ter as permissões necessárias para acessar seus Atlas clusters.
Para saber como anexar uma função IAM à sua instância EC2, consulte Executar uma instância com uma função IAM na documentação da AWS.
Para saber como configurar uma função IAM do Amazon Web Services para autenticação com o Amazon Web Services ECS Fargate, consulte a função IAM de execução de tarefas do Amazon ECS na documentação do Amazon Web Services.
Para AWS EKS, você deve primeiro definir o role IAM ao seu pod para configurar as seguintes variáveis de ambiente nesse pod:
AWS_WEB_IDENTITY_TOKEN_FILE- contém o caminho para o arquivo do token de identidade da web.AWS_ROLE_ARN- contém a função IAM usada para se conectar ao seu cluster.
Para saber mais sobre o Amazon Web Services EKS, consulte O que é o Amazon EKS? na documentação do Amazon Web Services.
Conceder acesso ao banco de dados a funções do IAM do Amazon Web Services
Para conceder acesso ao banco de dados à função AWS IAM, conclua as etapas descritas na seção Configurar usuários de banco de dados para AWS IAM. Para obter mais informações sobre como conceder acesso ao banco de dados usando o Atlas CLI, a Atlas Administration API ou a IU do Atlas, consulte Configurar usuários de banco de dados.
Conecte-se ao Atlas Cluster usando Amazon Web Services IAM
To connect to Atlas with your AWS IAM credentials using mongosh, provide a connection string that specifies the MONGODB-AWS authentication mechanism. This connection string format applies to all AWS IAM authentication mechanisms.
Importante
Você deve configurar a autenticação usando um dos métodos descritos em Configurar a autenticação com funções do Amazon Web Services IAM antes de poder usar esse formato de string de conexão.
Connecting to Atlas using AWS IAM authentication with the mongosh requires shell version v0.9.0 or higher.
Considere o seguinte:
Use suas credenciais de AWS IAM, usando o ID da chave de acesso como nome de usuário e sua chave secreta como senha.
O parâmetro de consulta
authSourceé$external, URL codificado como%24external.O parâmetro de query
authMechanisméMONGODB-AWS.Exemplo
mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>