Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver de Kotlin Sync
/ /

AWS Autenticação do IAM

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 .

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 Services

  • awsSecretKey: O valor de sua chave de acesso secreto do Amazon Web Services

  • atlasUri: O endereço de rede da sua implantação do MongoDB Atlas

  • hostname: O nome do host da sua implantação do MongoDB Atlas

  • port: A porta da sua implantação do MongoDB Atlas

  • awsSessionToken: O valor do token de sessão do Amazon Web Services

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:

  1. Especifique o mecanismo de autenticação.

  2. Adicione o SDK como uma dependência ao seu projeto.

  3. Forneça suas credenciais usando um dos métodos na cadeia de fornecedores de credencial.

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)

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:

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.

Para fornecer suas credenciais, consulte a seguinte documentação AWS para a versão que você precisa:

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.

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:

  1. Especifique o mecanismo de autenticação.

  2. Adicione as variáveis de ambiente apropriadas.

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")

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.

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:

  1. Especifique o mecanismo de autenticação.

  2. 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)

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.

Voltar

X.509

Nesta página