Provedores de credenciais - AWS SDK for JavaScript

O Guia de referência da API do AWS SDK for JavaScript V3 descreve em detalhes todas as operações da API para o AWS SDK for JavaScript versão 3 (V3).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Provedores de credenciais

Na v2, o SDK para JavaScript fornece uma lista de provedores de credenciais, bem como uma cadeia de fornecedores de credenciais, disponível por padrão no Node.js, que tenta carregar as credenciais da AWS de todos os provedores mais comuns. O SDK para JavaScript v3 simplifica a interface do provedor de credenciais, facilitando o uso e a criação de provedores de credenciais personalizados. Além de uma nova cadeia de provedores de credenciais, o SDK para JavaScript v3 fornece uma lista de provedores de credenciais equivalente à da v2.

Aqui estão todos os provedores de credenciais na v2 e seus equivalentes na v3.

Provedor de credenciais padrão

O provedor de credenciais padrão é como o SDK para JavaScript resolve a credencial da AWS se você não fornecer uma explicitamente.

Credenciais temporárias

  • v2: ChainableTemporaryCredentials representa credenciais temporárias recuperadas do AWS.STS. Sem nenhum parâmetro extra, as credenciais serão obtidas da operação AWS.STS.getSessionToken(). Se um perfil do IAM for fornecido, a operação AWS.STS.assumeRole() será usada para buscar credenciais para o perfil. AWS.ChainableTemporaryCredentials difere de AWS.TemporaryCredentials em como as masterCredentials e as atualizações são tratadas. AWS.ChainableTemporaryCredentials atualiza as credenciais expiradas usando as masterCredentials passadas pelo usuário para oferecer suporte ao encadeamento de credenciais STS. No entanto, AWS.TemporaryCredentials reduz recursivamente as masterCredentials durante a instanciação, impedindo a capacidade de atualizar credenciais que exigem credenciais intermediárias temporárias.

    O TemporaryCredentials original foi substituído por ChainableTemporaryCredentials na v2.

  • v3: fromTemporaryCredentials. Você pode chamar fromTemporaryCredentials() do pacote @aws-sdk/credential-providers. Veja um exemplo abaixo:

    import { FooClient } from "@aws-sdk/client-foo"; import { fromTemporaryCredentials } from "@aws-sdk/credential-providers"; // ES6 import // const { FooClient } = require("@aws-sdk/client-foo"); // const { fromTemporaryCredentials } = require("@aws-sdk/credential-providers"); // CommonJS import const sourceCredentials = { // A credential can be a credential object or an async function that returns a credential object }; const client = new FooClient({ credentials: fromTemporaryCredentials({ masterCredentials: sourceCredentials, params: { RoleArn }, }), });

Credenciais de identidade do Amazon Cognito

Carregue credenciais do serviço de identidades do Amazon Cognito, normalmente usado em navegadores.

  • v2: CognitoIdentityCredentials representa as credenciais recuperadas da federação de identidades do STS Web usando o serviço de identidades do Amazon Cognito.

  • v3: Cognito Identity Credential Provider O pacote @aws/credential-providers fornece duas funções de provedor de credenciais, uma das quais fromCognitoIdentity recebe um ID de identidade e chama cognitoIdentity:GetCredentialsForIdentity, enquanto a outra fromCognitoIdentityPool recebe um ID de banco de identidades, chama cognitoIdentity:GetId na primeira invocação e, em seguida, chama fromCognitoIdentity. As invocações subsequentes da última não invocam novamente o GetId.

    O provedor implementa o “Fluxo simplificado” descrito no Guia do Desenvolvedor do Amazon Cognito. O “Classic Flow”, que envolve chamar cognito:GetOpenIdToken e depois chamarsts:AssumeRoleWithWebIdentity, não é compatível. Abra uma solicitação de recurso, se precisar.

    // fromCognitoIdentityPool example import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // ES6 import // const { fromCognitoIdentityPool } = require("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ region: "us-east-1", credentials: fromCognitoIdentityPool({ clientConfig: cognitoIdentityClientConfig, // Optional identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030", customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional logins: { // Optional "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "api.twitter.com": "TWITTERTOKEN", }, }), });
    // fromCognitoIdentity example import { fromCognitoIdentity } from "@aws-sdk/credential-providers"; // ES6 import // const { fromCognitoIdentity } = require("@aws-sdk/credential-provider-cognito-identity"); // CommonJS import const client = new FooClient({ region: "us-east-1", credentials: fromCognitoIdentity({ clientConfig: cognitoIdentityClientConfig, // Optional identityId: "us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f", customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional logins: { // Optional "graph.facebook.com": "FBTOKEN", "www.amazon.com": "AMAZONTOKEN", "api.twitter.com": "TWITTERTOKEN", }, }), });

Credencial de metadados do Amazon EC2 (IMDS)

Representa credenciais recebidas do serviço de metadados de uma instância do Amazon EC2.

  • v2: EC2MetadataCredentials

  • v3: fromInstanceMetadata. Cria um provedor de credenciais que pegará credenciais do serviço de metadados da instância do Amazon EC2.

    import { fromInstanceMetadata } from "@aws-sdk/credential-providers"; // ES6 import // const { fromInstanceMetadata } = require("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromInstanceMetadata({ maxRetries: 3, // Optional timeout: 0, // Optional }), });

Credenciais do Amazon ECS

Representa as credenciais recebidas do URL especificado. Esse provedor solicitará credenciais temporárias do URI especificado por AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ou pela variável de ambiente AWS_CONTAINER_CREDENTIALS_FULL_URI.

  • v2: ECSCredentials ou RemoteCredentials

  • v3: fromContainerMetadata. Cria um provedor de credenciais que pegará credenciais do serviço de metadados do contêiner do Amazon ECS.

    import { fromContainerMetadata } from "@aws-sdk/credential-providers"; // ES6 import const client = new FooClient({ credentials: fromContainerMetadata({ maxRetries: 3, // Optional timeout: 0, // Optional }), });

Credenciais do sistema de arquivos

Provedor de credenciais SAML

Credenciais do arquivo de credenciais compartilhadas

Carrega as credenciais do arquivo de credenciais compartilhadas (usando ~/.aws/credentials como padrão ou definido pela variável de ambiente AWS_SHARED_CREDENTIALS_FILE). Esse arquivo é compatível com diferentes SDKs e ferramentas da AWS. Você pode consultar o documento de arquivos de configuração e credenciais compartilhadas para obter mais informações.

  • v2: SharedIniFileCredentials

  • v3: fromIni

    import { fromIni } from "@aws-sdk/credential-providers"; // const { fromIni } from("@aws-sdk/credential-providers"); const client = new FooClient({ credentials: fromIni({ configFilepath: "~/.aws/config", // Optional filepath: "~/.aws/credentials", // Optional mfaCodeProvider: async (mfaSerial) => { // implement a pop-up asking for MFA code return "some_code"; }, // Optional profile: "default", // Optional clientConfig: { region }, // Optional }), });

Credenciais de identidade na web

Recupera credenciais usando o token OIDC de um arquivo no disco. Comumente usado no Amazon EKS.

  • v2: TokenFileWebIdentityCredentials

  • v3: fromTokenFile

    import { fromTokenFile } from "@aws-sdk/credential-providers"; // ES6 import // const { fromTokenFile } from("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromTokenFile({ // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable roleArn: "arn:xxxx", // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable roleSessionName: "session:a", // Optional. STS client config to make the assume role request. clientConfig: { region }, }), });

Credenciais de federação de identidades web

Recupera credenciais do suporte da federação de identidade web do STS.

  • v2: WebIdentityCredentials

  • v3: fromWebToken

    import { fromWebToken } from "@aws-sdk/credential-providers"; // ES6 import // const { fromWebToken } from("@aws-sdk/credential-providers"); // CommonJS import const client = new FooClient({ credentials: fromWebToken({ // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable roleArn: "arn:xxxx", // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable roleSessionName: "session:a", // Optional. STS client config to make the assume role request. clientConfig: { region }, }), });