Gerenciamento de identidade e acesso do Amazon Web Services
Nesta página
- Visão geral
- Espaços reservados de código
- Uso da autenticação IAM do Amazon Web Services em seu aplicativo
- Especifique manualmente as credenciais de IAM do Amazon Web Services
- Recuperar credenciais do Amazon Web Services IAM automaticamente
- Fornecedor de identidade web
- Arquivo de credenciais AWS compartilhado
- Variáveis de ambiente
- Credenciais do container ECS
- Credenciais de container EC2
- Documentação da API
Visão geral
O mecanismo de autenticação do MONGODB-AWS
utiliza credenciais do Amazon Web Services Identity e Access Management (AWS IAM) para autenticar um usuário no MongoDB. Você pode usar esse mecanismo somente ao autenticar no MongoDB Atlas.
Dica
Configurar Atlas para Autenticação AWS IAM
Para saber mais sobre como configurar a autenticação do MongoDB Atlas para AWS IAM, consulte Configurar Autenticação com AWS IAM na documentação do Atlas .
Espaços reservados de código
Os exemplos de código nesta página usam os seguintes espaços reservados:
<hostname>
: O endereço de rede da sua implantação do MongoDB Atlas<awsKeyId>
: IDda chave de acesso do Amazon Web Services<awsSecretKey>
: Sua chave de acesso secreto Amazon Web Services<awsSessionToken>
: Seu token de sessão do Amazon Web Services
Para usar os exemplos de código nesta página, substitua esses espaços reservados por seus próprios valores.
Uso da autenticação IAM do Amazon Web Services em seu aplicativo
Para usar a autenticação IAM do Amazon Web Services, execute as seguintes etapas:
Adicione o pacote MongoDB.Driver.Authentication.AWS pacote ao seu projeto. Você pode adicionar esse pacote usando seu IDE ou executando o seguinte comando em seu terminal:
dotnet add package MongoDB.Driver.Authentication.AWS Adicione a seguinte linha de código ao código de inicialização do seu aplicativo para registrar o provedor de autenticação do Amazon Web Amazon Web Services Services :
MongoClientSettings.Extensions.AddAWSAuthentication();
Depois de registrar o provedor de autenticação da AWS, você pode especificar suas credenciais da AWS IAM explicitamente ou instruir o driver a recuperá-las automaticamente de uma fonte externa. As seções a seguir descrevem ambos os métodos.
Especifique manualmente as credenciais de IAM do Amazon Web Services
Você pode fornecer suas credenciais do AWS IAM em um objeto MongoClientSettings
usando um objeto MongoCredential
ou como parte da string de conexão. Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente para especificar suas credenciais:
var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" + "authSource=$external" + "&authMechanism=MONGODB-AWS"; var mongoClientSettings = MongoClientSettings.FromConnectionString(connectionString); var client = new MongoClient(mongoClientSettings);
Se você estiver utilizando um token de sessão do AWS, inclua o parâmetro authMechanismProperties
na connection string como mostrado abaixo:
var connectionString = "mongodb+srv://<awsKeyId>:<awsSecretKey>@<hostname>?" + "authSource=$external" + "&authMechanism=MONGODB-AWS" + "&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>";
var mongoClientSettings = MongoClientSettings .FromConnectionString("mongodb+srv://<hostname>"); mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalIdentity("<awsKeyId>"), new PasswordEvidence("<awsSecretKey>")); var client = new MongoClient(mongoClientSettings);
Se você estiver usando um token de sessão do Amazon Web Services, chame o método WithMechanismProperty()
em seu objeto MongoCredential
, conforme mostrado abaixo:
mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalIdentity("<awsKeyId>"), new PasswordEvidence("<awsSecretKey>")) .WithMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>");
Recuperar credenciais do Amazon Web Services IAM automaticamente
Em vez de especificar suas credenciais do AWS IAM no MongoClientSettings
, você pode instruir o Driver .NET/C# a usar o AWS SDK para recuperar automaticamente suas credenciais de uma fonte externa.
Para instruir o driver a recuperar suas credenciais, você deve primeiro especificar o MONGODB-AWS
como o mecanismo de autenticação e especificar que a fonte de autenticação é externa ao MongoDB. Você pode especificar o mecanismo de autenticação e origem utilizando um objeto MongoCredential
ou como parte da string de conexão. Selecione a aba Connection String ou MongoCredential para ver a sintaxe correspondente para especificar o mecanismo de autenticação do MONGODB-AWS
e fonte de autenticação externa:
var connectionString = "mongodb+srv://<hostname>?" + "authMechanism=MONGODB-AWS" + "&authSource=$external"; var mongoClientSettings = MongoClientSettings .FromConnectionString(connectionString); var client = new MongoClient(mongoClientSettings);
var mongoClientSettings = MongoClientSettings .FromConnectionString("mongodb+srv://<hostname>"); mongoClientSettings.Credential = new MongoCredential( "MONGODB-AWS", new MongoExternalAwsIdentity(), new ExternalEvidence()); var client = new MongoClient(mongoClientSettings);
Depois de especificar o mecanismo de autenticação e a origem, você deve definir suas credenciais na localização apropriada ao tipo de credencial. O driver .NET/C# verifica as credenciais nas seguintes localizações na ordem listada aqui.
Fornecedor de identidade web
Você pode usar um fornecedor de identidade da Web compatível com OpenID Connect (OIDC) para autenticar no Amazon Elastic Kubernetes Service (EKS) ou em outros serviços. Para utilizar um fornecedor de identidade da web, crie um arquivo que contenha seu token OIDC e, em seguida, defina o caminho absoluto para este arquivo em uma variável de ambiente utilizando bash
ou uma shell semelhante, como mostrado no amostra a seguir:
export AWS_WEB_IDENTITY_TOKEN_FILE=<absolute path to file containing your OIDC token>
Arquivo de credenciais AWS compartilhado
Para autenticar usando um perfil em um arquivo de credenciais compartilhado da AWS, você pode usar um editor de texto, o AWS SDK para .NET ou o AWS CLI para criar o arquivo de credenciais apropriado.
Variáveis de ambiente
Para recuperar credenciais diretamente de variáveis de ambiente, defina as seguintes variáveis de ambiente usando bash
ou um shell semelhante:
export AWS_ACCESS_KEY_ID=<awsKeyId> export AWS_SECRET_ACCESS_KEY=<awsSecretKey> export AWS_SESSION_TOKEN=<awsSessionToken>
Observação
Omita a linha que contém AWS_SESSION_TOKEN
se não precisar de um token de sessão AWS para essa função.
Credenciais do container ECS
Para autenticar usando as credenciais do contêiner do ECS, defina o URI do ponto de extremidade do ECS em uma variável de ambiente usando bash
ou um shell semelhante. Selecione a aba Full ECS URI ou Relative ECS URI para visualizar a sintaxe para especificar a variável de ambiente correspondente:
export AWS_CONTAINER_CREDENTIALS_FULL_URI=<full ECS endpoint>
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<relative ECS endpoint>
Credenciais de container EC2
Para autenticar usando as credenciais do contêiner EC2, certifique-se de que nenhuma das variáveis de ambiente anteriores esteja definida. O driver obtém as credenciais do endpoint de metadados de instância IPv4 EC2 padrão.
Documentação da API
Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API: