Visão geral
O mecanismo de autenticação do MONGODB-Amazon Web Services usa as credenciais do Amazon Web Services Identity e Access Management (Amazon Web Services 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 IAM do Amazon Web Services
Para saber mais sobre como configurar o MongoDB Atlas para autenticação do Amazon Web Services IAM, consulte Configurar a autenticação com o Amazon Web Services IAM na documentação do Atlas .
Especifique a autenticação MONGODB-AWS
Para instruir o driver Kotlin Sync a usar o mecanismo de autenticação MONGODB-AWS
, você pode especificar MONGODB-AWS
como um parâmetro na string de conexão ou chamar o método de fábrica MongoCredential.createAwsCredential()
.
Nas seções a seguir, você aprenderá diferentes maneiras de especificar o mecanismo de autenticação MONGODB-AWS
e fornecer suas credenciais do Amazon Web Services IAM.
Estas seções contêm exemplos de código que usam os seguintes espaços reservados:
awsKeyId
: O valor do seu ID de chave de acesso ao Amazon Web ServicesawsSecretKey
: O valor de sua chave de acesso secreto do Amazon Web ServicesatlasUri
: O endereço de rede da sua implantação do MongoDB Atlashostname
: O nome do host da sua implantação do MongoDB Atlasport
: A porta da sua implantação do MongoDB AtlasawsSessionToken
: O valor do token de sessão do Amazon Web Services
AWS SDK
Observação
Fim do suporte para o Amazon Web Services SDK para Java v1
O Amazon Web Services SDK para Java v1 chegará ao fim do suporte em 31 de dezembro de 2025. A Amazon Web Services recomenda migrar para o Amazon Web Services SDK para Java v2. Para obter mais informações, consulte o fim do anúncio de suporte no site da Amazon Web Services.
A Amazon Web Services fornece conjuntos de desenvolvimento de software (SDKs) para Java v1 e v2. O Amazon Web Services SDK oferece os seguintes recursos:
Várias opções para obter credenciais
Cache de credenciais, que ajuda seu aplicação a evitar limitação de taxa
Gerenciamento de fornecedor de credencial para uso com o Serviço Elastic Kubernetes
Para usar o Amazon Web Services SDK para autenticação MONGODB-AWS
, execute as seguintes etapas:
Especifique o mecanismo de autenticação
Você pode especificar o mecanismo de autenticação MONGODB-AWS
usando uma string de conexão ou um objeto MongoCredential
. Selecione a aba Connection String ou MongoCredential abaixo para obter as instruções correspondentes e o código de exemplo:
Para especificar o mecanismo de autenticação MONGODB-AWS
na string de conexão, defina o parâmetro authMechanism
como MONGODB-AWS
, conforme mostrado no exemplo a seguir:
val mongoClient = MongoClient.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS")
Para especificar o mecanismo de autenticação MONGODB-AWS
usando um objeto MongoCredential
, chame o método de fábrica MongoCredential.createAwsCredential()
e adicione a instância MongoCredential
ao seu MongoClient
, conforme mostrado no exemplo a seguir:
val credential = MongoCredential.createAwsCredential(null, null) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<atlasUri>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Adicione a dependência do SDK do Amazon Web Services
Para adicionar a AWS SDK como uma dependência ao seu projeto, consulte a seguinte documentação da AWS para a versão necessária:
Para o AWS SDK for Java v2, consulte a página de Configuração do guia.
Para o AWS SDK for Java v1, consulte o Guia de Primeiros passos.
Observação
Para o Amazon Web Services SDK para Java v2, o driver Java testa usando a dependência software.amazon.awssdk:auth:2.30.31
.
Para o Amazon Web Services SDK para Java v1, o driver Java testa usando a dependência com.amazonaws:aws-java-sdk-core:1.12.782
.
Forneça suas Credenciais
Para fornecer suas credenciais, consulte a seguinte documentação AWS para a versão que você precisa:
Para saber mais sobre a classe AWS SDK para Java v2 que o driver usa para obter as credenciais, consulte a documentação da API DefaultCredentialsProvider.
Saiba como fornecer suas credenciais a essa classe na seção Usar a cadeia de fornecedores de credenciais padrão.
Para saber mais sobre a classe AWS SDK for Java v1 que o driver usa para obter as credenciais, consulte a documentação da API DefaultAWSCredentialsProviderChain.
Saiba como fornecer suas credenciais a essa classe na seção Usar a cadeia de provedor de credenciais padrão.
Observação
Se você incluir v1 e v2 do AWS SDK para Java em seu projeto, deverá usar os métodos v2 para fornecer suas credenciais.
Especifique suas Credenciais no Ambiente
Você pode fornecer suas credenciais do AWS IAM instruindo o driver a usar o mecanismo de autenticação MONGODB-AWS
e definindo as variáveis de ambiente apropriadas.
Para usar as variáveis de ambiente para fornecer suas credenciais, execute as seguintes etapas:
Especifique o mecanismo de autenticação
Você pode especificar o mecanismo de autenticação MONGODB-AWS
usando um objeto MongoCredential
ou na string de conexão.
Para especificar o mecanismo de autenticação usando um objeto MongoCredential
, chame o método de fábrica MongoCredential.createAwsCredential()
e adicione a instância MongoCredential
ao seu MongoClient
, conforme mostrado no exemplo a seguir :
val credential = MongoCredential.createAwsCredential(null, null) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<atlasUri>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Para especificar o mecanismo de autenticação do MONGODB-AWS
na string de conexão, adicione-o como um parâmetro como mostrado no exemplo a seguir:
val mongoClient = MongoClient.create("mongodb://<atlasUri>?authMechanism=MONGODB-AWS")
Definir variáveis de ambiente
Esta seção mostra como fornecer suas credenciais definindo variáveis de ambiente para os seguintes tipos de autenticação:
Chaves de acesso programático
Credenciais do container ECS
Credenciais do container EC2
O exemplo a seguir mostra como você pode definir suas chaves de acesso programático em variáveis de ambiente usando bash
ou um shell similar:
export AWS_ACCESS_KEY_ID=<awsKeyId> export AWS_SECRET_ACCESS_KEY=<awsSecretKey> export AWS_SESSION_TOKEN=<awsSessionToken>
Omita a linha que define a variável AWS_SESSION_TOKEN
se não precisar de um token de sessão do Amazon Web Services para essa função.
Para autenticar usando credenciais de container do ECS, defina o URI relativo do ponto de extremidade do ECS em uma variável de ambiente usando bash
ou um shell semelhante, conforme mostrado no exemplo a seguir:
export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<your ECS endpoint>
Para autenticar usando as credenciais do container EC2 , não defina as variáveis de ambiente do Amazon Web Services. O driver obtém as credenciais do endpoint de metadados de instância IPv4 EC2 padrão.
Especifique Suas Credenciais em uma MongoCredential
Você pode fornecer suas credenciais do Amazon Web Services IAM para um MongoClient
usando uma instância MongoCredential
. Para criar a MongoCredential
instância do para a MONGODB-AWS
autenticação do, chame o método de fábrica createAwsCredential().
Dica
Você pode fornecer somente chaves de acesso programáticas para o método MongoCredential.createAwsCredential()
. Se você precisar fornecer credenciais de contêiner ECS ou EC2, siga as instruções em Especificar Suas Credenciais no Ambiente.
Para usar um objeto MongoCredential
para autenticação MONGODB-AWS
, execute as seguintes etapas:
Especifique o mecanismo de autenticação.
Forneça as credenciais.
Para especificar o mecanismo de autenticação usando um objeto MongoCredential
, chame o método de fábrica MongoCredential.createAwsCredential()
e adicione a instância MongoCredential
ao seu MongoClient
, conforme mostrado no exemplo a seguir :
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray()) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<atlasUri>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Se você precisar especificar um token de sessão do Amazon Web Services, passe para o método withMechanismProperty(), conforme mostrado no exemplo a seguir:
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray()) .withMechanismProperty("AWS_SESSION_TOKEN", "<awsSessionToken>") val settings = MongoClientSettings.builder() .applyToClusterSettings { builder: ClusterSettings.Builder -> builder.hosts( listOf(ServerAddress("<atlasUri>")) ) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Para atualizar suas credenciais, você pode declarar uma expressão Supplier
Lambda que retorna novas credenciais, como mostrado no seguinte exemplo:
val awsFreshCredentialSupplier: Supplier<AwsCredential> = Supplier { // Add your code here to fetch new credentials // Return the new credentials AwsCredential("<awsKeyId>", "<awsSecretKey>", "<awsSessionToken>") } val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray()) .withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier) val settings = MongoClientSettings.builder() .applyToClusterSettings { builder -> builder.hosts(listOf(ServerAddress("<hostname>", <port>))) } .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Se você precisar fornecer credenciais do Amazon Web Services IAM em uma string de conexão, poderá adicioná-la ao MongoClientSettings
objeto chamando o método applyConnectionString():
val credential = MongoCredential.createAwsCredential("<awsKeyId>", "<awsSecretKey>".toCharArray()) val connectionString = ConnectionString("mongodb://<atlasUri>/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<awsSessionToken>") val settings = MongoClientSettings.builder() .applyConnectionString(connectionString) .credential(credential) .build() val mongoClient = MongoClient.create(settings)
Informações adicionais
Para saber mais sobre autenticação no MongoDB, consulte Autenticação no manual do MongoDB Server .
Para saber mais sobre como criar um objeto MongoClient
usando o driver Kotlin Sync, consulte o guia Criar um MongoClient.