Configurar Autenticação com AWS IAM
Nesta página
É possível configurar um usuário de banco de dados para usar um ARN de função ou usuário doAWS IAM para autenticação. Você pode se conectar ao seu banco de mongosh
dados usando drivers e se autenticar usando seu ARN de usuário ou função do AWS IAM . Usar o AWS IAM reduz o número de mecanismos de autenticação e o número de segredos a serem gerenciados. A chave secreta que você usa para autenticação não é enviada pelo cabo para o Atlas e não é mantida pelo driver.
Configurar Autenticação com Funções AWS IAM
Observação
Não é possível configurar a autenticação para entidades do AWS IAM quando a autorização LDAP está habilitada.
Se você precisar de autenticação para um principal do AWS IAM, considere mover os clusters que deseja acessar com a autenticação do AWS IAM para outro projeto em que a autorização LDAP esteja desabilitada.
Você pode configurar roles do AWS IAM para autenticar tipos de computação do AWS em seus clusters do Atlas.
Para AWS Lambda e HTTP (ECS e EC2), os drivers leem automaticamente as 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 uma função AWS IAM .
Observação
Você deve atribuir um role 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 um role de execução à função lambda.
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
Observação
Você não precisa criar manualmente essas variáveis de ambiente ao usar uma função 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.
O AWS EC2 obtém as credenciais do Instance Metadata Service V2 no seguinte URL:
http://169.254.169.254/latest/meta-data/iam/security-credentials/
Para saber mais, consulte Executar uma instância com uma função do IAM.
Para saber como configurar um role do AWS IAM para autenticação com o AWS ECS Fargate, consulte a documentação do AWS.
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 obter informações sobre como atribuir um role do IAM ao seu pod, consulte a documentação da AWS.
Após atribuir a função do IAM ao pod, é preciso assumir manualmente a função do IAM para se conectar ao cluster.
Para assumir o role manualmente:
Use o AWS SDK para chamar AssumeRoleWithWebIdentity.
Dica
Omitir o parâmetro
ProviderID
.Localize o valor do parâmetro
WebIdentityToken
no arquivo descrito na variável de ambienteAWS_WEB_IDENTITY_TOKEN_FILE
do seu podcast.
Passar as credenciais que você recebeu na etapa anterior para o driver do MongoDB. Veja a documentação do driver para obter detalhes.
Conceder acesso ao banco de dados às funções AWS IAM
Para conceder acesso ao banco de dados à função AWS IAM , conclua as etapas descritas na seção Configurar usuários do banco de dados para AWS IAM. Para obter mais informações sobre como conceder acesso ao banco de dados usando o Atlas CLI, a Administration API do Atlas ou a UI do Atlas, consulte Adicionar usuários do banco de dados.
Conecte-se ao Atlas Cluster usando o AWS IAM
Para se conectar ao Atlas com suas credenciais do AWS IAM usando mongosh
, forneça uma connection string que especifique o mecanismo de autenticação MONGODB-AWS. Esse formato de connection string se aplica a todos os mecanismos de autenticação do AWS IAM.
Importante
Você deve configurar a autenticação usando um dos métodos descritos em Configurar a autenticação com funções da AWS IAM antes de poder usar esse formato de connection string.
A conexão ao Atlas usando a autenticação do AWS IAM com o mongosh
requer a versão do shell v0.9.0 ou superior.
Use suas credenciais AWS IAM, usando seu ID de chave de acesso como seu nome de usuário e sua chave secreta como sua senha.
O parâmetro de query
authSource
é$external
, codificado como%24external
.O parâmetro de consulta
authMechanism
éMONGODB-AWS
.Exemplo
mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>