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
/ / /
Ruby Driver
/ /

Gerenciamento de identidade e acesso do Amazon Web Services

Observação

A autenticação do Amazon Web Services está disponível apenas no MongoDB Enterprise Edition para MongoDB 4.4 e posterior.

O mecanismo de autenticação do Amazon Web Services usa o Amazon Web Services Identity and Access Management (IAM) e o Amazon Web Services Security Token Service (STS) para confirmar a identidade do cliente em um sistema do MongoDB. As etapas a seguir descrevem o processo de autenticação do Amazon Web Services:

  1. O cliente usa credenciais do Amazon Web Services IAM para criar uma assinatura que é enviada para a implantação do MongoDB .

  2. A implantação usa a assinatura do cliente para enviar uma solicitação ao Amazon Web Services STS.

  3. Se a solicitação for bem-sucedida, o STS retornará o nome do recurso da Amazon (ARN) do usuário ou da função do IAM que corresponde às credenciais do cliente.

  4. A implantação usa o ARN retornado para procurar o usuário. O cliente é autenticado como este usuário.

Observação

O cliente e o servidor usam nomes de usuário diferentes. O cliente usa o ID da chave de acesso do Amazon Web Services, mas o servidor usa o ARN do usuário ou da função do IAM correspondente ao ID da chave de acesso.

As credenciais do Amazon Web Services incluem os seguintes componentes:

  • ID da chave de acesso

  • chave de acesso secreta

  • Token de sessão opcional

A autenticação com credenciais do Amazon Web Services IAM usa o ID da chave de acesso e a chave de acesso secreta. A autenticação com credenciais temporárias do Amazon Web Services IAM usa todos os três componentes.

Observação

O driver nunca envia a chave de acesso secreta ou o token de sessão pela rede.

As credenciais temporárias são usadas com:

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

  • <aws-access-key-id>: O ID da chave de acesso do Amazon Web Services

  • <aws_secret_access_key>: A chave de acesso secreto do Amazon Web Services

  • <aws_session_token>: O token de sessão do Amazon Web Services

As seções a seguir descrevem como usar o mecanismo de autenticação Amazon Web Services IAM em seu aplicação.

Você pode fornecer credenciais IAM regulares (não temporárias) como opções do cliente ou usando um URI. Selecione a aba Connection String ou Client Options para ver a sintaxe correspondente :

client = Mongo::Client.new(
'mongodb://<aws_access_key_id>:<aws_secret_access_key>@host/?authMechanism=MONGODB-AWS')
client = Mongo::Client.new(['<host>'],
auth_mech: :aws,
user: '<aws_access_key_id>',
password: '<aws_secret_access_key>')

Observação

Se você fornecer credenciais em um URI, deverá codificá-las por porcentagem.

Para fornecer credenciais temporárias, especifique o token da sessão nas opções do cliente ou usando um URI. Selecione a aba Connection String ou Client Options para ver a sintaxe correspondente:

client = Mongo::Client.new(
'mongodb://<aws_access_key_id>:<aws_secret_access_key>@host/?authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<<aws_session_token>>')
client = Mongo::Client.new(['<host>'],
auth_mech: :aws,
user: '<aws_access_key_id>',
password: '<aws_secret_access_key>',
auth_mech_properties: {
aws_session_token: '<<aws_session_token>>',
})

O cliente pode recuperar credenciais do ambiente ou dos endpoints de metadados EC2 ou ECS. Para recuperar as credenciais automaticamente, especifique o mecanismo de autenticação do Amazon Web Services, mas não especifique um nome de usuário ou senha. Selecione a aba Connection String ou Client Options para ver a sintaxe correspondente:

client = Mongo::Client.new(
'mongodb://host/?authMechanism=MONGODB-AWS')
client = Mongo::Client.new(['<hostname>'],
auth_mech: :aws)
)

O condutor tenta obter credenciais das seguintes fontes, na ordem especificada:

  • AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY e AWS_SESSION_TOKEN variáveis de ambiente. Essas variáveis de ambiente são reconhecidas por uma variedade de bibliotecas e ferramentas relacionadas ao Amazon Web Services, como o Amazon Web Services Ruby SDK oficial e a Amazon Web Services CLI. Eles também são definidos quando executados em um ambiente do Amazon Web Services Lambda.

  • ação AssumeRoleWithWebIdentity do STS do Amazon Web Services . Esse mecanismo retorna credenciais associadas ao token da conta de serviço e requer que as seguintes variáveis de ambiente sejam definidas:

    • AWS_WEB_IDENTITY_TOKEN_FILE: Caminho para um arquivo que contém o token da conta de serviço.

    • AWS_ROLE_ARN: O Amazon Resource Name (ARN) do role que o chamador está assumindo.

    • AWS_ROLE_SESSION_NAME (opcional): identificador para a sessão de função presumida. Se esta variável estiver vazia, o driver gera um identificador aleatório.

  • O endpoint de metadados de tarefa do Amazon Web Services ECS. Este endpoint retorna credenciais associadas à função de tarefa ECS atribuída ao container.

  • O endpoint de metadados de instância do Amazon Web Services EC2 . Este endpoint retorna credenciais associadas ao papel de instância do EC2 atribuído à instância.

Importante

Uma origem de credenciais deve fornecer um conjunto completo de credenciais. Por exemplo, se o seu aplicação usar as variáveis de ambiente AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY, o driver gerará um erro se apenas uma dessas variáveis tiver um valor.

Observação

Se um aplicação for executado em um container do ECS em uma instância do EC2 e o container tiver acesso aos metadados da instância, o driver tentará recuperar as credenciais do Amazon Web Services do endpoint de metadados da instância do EC2. Se o driver recuperar as credenciais dessa forma, seu aplicação poderá se autenticar como a função IAM atribuída à instância do EC2.

Para saber como impedir que os contêineres acessem os metadados da instância EC2, consulte a documentação do Amazon Web Services.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos nesta página, consulte a seguinte documentação da API:

Voltar

X.509

Nesta página