Visão geral
O mecanismo de autenticação do MONGODB-AWS utiliza suas credenciais do Amazon Web Services Identity and Access Management (AWS IAM) para autenticar o usuário.
Você pode usar o AWS IAM para autenticar no MongoDB Atlas, mas não no Enterprise Advanced ou MongoDB Community Edition.
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
access key ID: IDda chave de acesso do Amazon Web Servicessecret access key: Sua chave de acesso secreto Amazon Web Servicessession token: Seu token de sessão do Amazon Web Servicesdb: O banco de dados de autenticação associado ao usuário
Configurar
Para usar esse mecanismo de autenticação, você deve adicionar o sinalizador de recurso aws-auth à sua dependência mongodb no arquivo Cargo.toml do seu projeto. A seguir, um exemplo do que sua lista de recursos de dependência mongodb deve incluir para habilitar o mecanismo de autenticação MONGODB-AWS:
[dependencies.mongodb] version = "3.6.0" features = [ "aws-auth", ... ]
Importante
Para usar o mecanismo de autenticação MONGODB-AWS no driver Rust, seu aplicativo deve atender aos seguintes requisitos:
Você está conectado à versão 4.4 do MongoDB Server ou posterior.
Você está usando o tempo de execução assíncrono
tokio.
Fontes de credenciais
O driver obtém as credenciais somente da primeira fonte na qual elas são encontradas. O driver verifica suas credenciais das seguintes fontes na seguinte ordem:
Credentialstruct ou connection string.Variáveis de ambiente.
Arquivo de token de identidade da Web.
Amazon Web Services ECS endpoint especificado na variável de ambiente do
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI.Ponto de extremidade AWS EC2. Para obter mais informações, consulte Funções de IAM para tarefas na documentação da AWS.
Por exemplo, se você especificar suas credenciais do Amazon Web Services em sua connection string, o driver usará essas credenciais e ignorará as que você tiver especificado nas variáveis de ambiente.
Selecione nas abas Credential Struct, Environment Variables e Web Identity Token File abaixo para obter amostras de código que demonstram como definir suas credenciais do Amazon Web Services IAM das maneiras correspondentes.
Para especificar o mecanismo de autenticação MONGODB-AWS, defina o campo mechanism da estrutura Credential como AuthMechanism::MongoDbAws.
Se você estiver usando credenciais temporárias, crie um documento que contenha o valor do seu token de sessão do Amazon Web Services e, em seguida, defina o campo mechanism_properties da estrutura Credential para esse documento. Se você não estiver usando credenciais temporárias, omita a linha 9 do seguinte exemplo:
1 let uri = "<connection string>"; 2 let mut client_options = ClientOptions::parse(uri).await?; 3 4 let aws_cred = Credential::builder() 5 .username("<access key ID>".to_string()) 6 .password("<secret access key>".to_string()) 7 .source("<db>".to_string()) 8 .mechanism(AuthMechanism::MongoDbAws) 9 .mechanism_properties(doc!("AWS_SESSION_TOKEN": "<session token>")) 10 .build(); 11 12 client_options.credential = Some(aws_cred); 13 let client = Client::with_options(client_options)?;
Dica
Você pode obter credenciais temporárias do Amazon Web Services IAM a partir de uma solicitação de Assume Role do Segurança Token Service (STS). Saiba mais sobre esse processo na documentação do AssumeRole Amazon Web Services.
Para armazenar suas credenciais do Amazon Web Services em variáveis de ambiente, execute os seguintes comandos em seu shell:
export AWS_ACCESS_KEY_ID=<access key ID> export AWS_SECRET_ACCESS_KEY=<secret access key> export AWS_SESSION_TOKEN=<session token>
Se você não estiver usando um token de sessão Amazon Web Services , omita a linha que define a variável de ambiente do AWS_SESSION_TOKEN.
Defina a opção mechanism em sua estrutura Credential como AuthMechanism::MongoDbAws. O driver lê suas credenciais do Amazon Web Services IAM a partir das variáveis de ambiente. O código a seguir mostra como definir uma estrutura Credential com a autenticação Amazon Web Services especificada e se conectar ao MongoDB:
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build(); client_options.credential = Some(aws_cred); let client = Client::with_options(client_options)?;
Você pode usar o token OpenID Connect (OIDC) obtido de um provedor de identidade da Web para autenticar no Amazon Elastic Kubernetes Service (EKS) ou em outros serviços. Para usar um token OIDC, crie um arquivo que contenha seu token e, em seguida, defina uma variável de ambiente cujo valor é o caminho absoluto para o arquivo de token, conforme mostrado no seguinte comando de shell:
export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to OIDC token file>
Defina a opção mechanism em sua estrutura Credential como AuthMechanism::MongoDbAws. O driver lê suas credenciais do Amazon Web Services IAM do arquivo de token. O código a seguir mostra como definir uma estrutura Credential com a autenticação Amazon Web Services especificada e se conectar ao MongoDB:
let uri = "<connection string>"; let mut client_options = ClientOptions::parse(uri).await?; let aws_cred = Credential::builder().mechanism(AuthMechanism::MongoDbAws).build(); client_options.credential = Some(aws_cred); let client = Client::with_options(client_options)?;
Informações adicionais
Para saber mais sobre autenticação no MongoDB, consulte Autenticação no manual do MongoDB Server .
Para saber mais sobre como gerenciar usuários da sua MongoDB deployment,consulte Usuários no manual do MongoDB Server .
Documentação da API
Para saber mais sobre os métodos e tipos mencionados neste guia, consulte a documentação da API abaixo: