Menu Docs
Página inicial do Docs
/ / /
Manual da Biblioteca PHP
/ /

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 utilizar o mecanismo de autenticação MONGODB-AWS, especifique 'MONGODB-AWS' como o valor da opção de conexão do authMechanism.

Observação

A biblioteca PHP do MongoDB usa a implementação da libmongoc do mecanismo de autenticação MONGODB-AWS. Para saber mais sobre como usar esse mecanismo de autenticação com libmongoc, consulte Autenticação via Amazon Web Services IAM na documentação do driver C.

Quando você usa o mecanismo MONGODB-Amazon Web Services , o driver tenta recuperar as credenciais do Amazon Web Services das seguintes fontes, na ordem listada:

  1. Opções passadas para MongoDB\Client como parte do URI de conexão ou um parâmetro de opções

  2. Variáveis de ambiente

  3. Solicitação Amazon Web Services EKS AssumeRoleWithWebIdentity

  4. Metadados do container ECS

  5. Metadados de instância do EC2

As seções a seguir descrevem como recuperar credenciais dessas fontes e utilizá-las para autenticar seu aplicação PHP.

Primeiro, o driver verifica se você passou as credenciais do Amazon Web Services para o construtor MongoDB\Client, como parte do URI de conexão ou do parâmetro da array $uriOptions. Para passar suas credenciais para MongoDB\Client, defina as seguintes opções de conexão:

  • username: O ID da chave de acesso do Amazon Web Services IAM para autenticar. Porcentagem Codifique esse valor antes de incluí-lo em um URI de conexão.

  • password: A chave de acesso secreto IAM do Amazon Web Services. Porcentagem Codifique esse valor antes de incluí-lo em um URI de conexão.

  • authMechanism: Defina como 'MONGODB-AWS'.

Você pode definir essas opções de duas maneiras: passando uma array de opções para o construtor MongoDB\Client ou por meio de parâmetros em seu URI de conexão. Selecione a aba MongoDB\Client ou Connection URI para ver o código correspondente:

$uriOptions = [
'username' => '<AWS IAM access key ID>',
'password' => '<AWS IAM secret access key>',
'authMechanism' => 'MONGODB-AWS',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Se você não fornecer um nome de usuário e senha ao construir seu objeto MongoDB\Client , o driver tentará recuperar as credenciais do Amazon Web Services a partir das seguintes variáveis de ambiente:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

Para usar essas variáveis de ambiente para autenticar seu aplicação, primeiro defina-as para os valores do Amazon Web Services IAM necessários para a autenticação. Você pode executar o comando export em seu shell ou adicionar as variáveis a um arquivo .env , conforme mostrado no exemplo de código a seguir:

export AWS_ACCESS_KEY_ID=<AWS IAM access key ID>
export AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key>
export AWS_SESSION_TOKEN=<AWS session token>
AWS_ACCESS_KEY_ID=<AWS IAM access key ID>
AWS_SECRET_ACCESS_KEY=<AWS IAM secret access key>
AWS_SESSION_TOKEN=<AWS session token>

Importante

Não codifique os valores nessas variáveis de ambiente.

Após configurar estas variáveis de ambiente, configure a opção de conexão do authMechanism para 'MONGODB-AWS'.

O exemplo a seguir define a opção de conexão authMechanism . Você pode definir essa opção de duas maneiras: passando uma array de opções para o construtor MongoDB\Client ou por meio de um parâmetro em seu URI de conexão.

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['authMechanism' => 'MONGODB-AWS'],
);
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

Dica

AWS Lambda

Os tempos de execução do Amazon Web Services Lambda podem definir automaticamente essas variáveis de ambiente durante a inicialização. Para obter mais informações sobre o uso de variáveis de ambiente em um ambiente do Amazon Web Services Lambda, consulte Uso de variáveis de ambiente do Lambda na documentação do Amazon Web Services.

Se o seu aplicação autenticar usuários para o seu cluster EKS a partir de um provedor de identidade OpenID Connect (OIDC), o driver poderá fazer uma solicitação do AssumeRoleWithWebIdentity para trocar o token OIDC por credenciais temporárias do Amazon Web Services para seu aplicação.

Para autenticar com credenciais temporárias do Amazon Web Services IAM retornadas por uma solicitação de AssumeRoleWithWebIdentity, verifique se o arquivo de configuração do Amazon Web Services existe em seu ambiente e está configurado corretamente. Para saber como criar e configurar um arquivo de configuração do Amazon Web Services, consulte Configuração na documentação do Amazon Web Services.

Após configurar seu ambiente para uma solicitação do AssumeRoleWithWebIdentity , configure a opção de conexão do authMechanism para 'MONGODB-AWS'. Para visualizar um exemplo que define a opção authMechanism , consulte o exemplo authMechanism nesta página.

Dica

Para obter mais informações sobre como usar uma solicitação AssumeRoleWithWebIdentity para autenticar seu aplicativo, consulte a seguinte documentação do Amazon Web Services:

Se o seu aplicação for executado em um container do Elastic Container Service (ECS), o driver poderá recuperar automaticamente credenciais temporárias Amazon Web Services de um endpoint do ECS. Para fazer isso, especifique o URI do ponto de extremidade ECS em uma variável de ambiente chamada AWS_CONTAINER_CREDENTIALS_RELATIVE_URI. Você pode definir essa variável executando o comando shell export ou adicionando-a ao arquivo .env , conforme mostrado no exemplo a seguir:

export AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=<URI of the ECS endpoint>

Após configurar a variável de ambiente, configure a opção de conexão do authMechanism para 'MONGODB-AWS'. Para visualizar um exemplo que define a opção authMechanism , consulte o exemplo authMechanism nesta página.

O driver pode recuperar automaticamente credenciais temporárias Amazon Web Services de uma instância do Amazon Elastic Cloud Compute (EC2). Para usar credenciais temporárias de dentro de uma instância do EC2 , configure a opção de conexão do authMechanism para 'MONGODB-AWS'. Para visualizar um exemplo que define a opção authMechanism , consulte o exemplo authMechanism nesta página.

Observação

A biblioteca PHP do MongoDB recupera credenciais de uma instância do EC2 somente se as variáveis de ambiente descritas na seção Variáveis de ambiente não estiverem definidas.

Para saber mais sobre como criar um objeto MongoDB\Client na Biblioteca PHP do MongoDB , consulte o guia Criar um cliente MongoDB .

Para saber mais sobre as opções de conexão, consulte o guia Especificar opções de conexão.

Voltar

X.509

Nesta página