Provedores de credenciais - AWS SDK for JavaScript

O Guia de API referência da AWS SDK for JavaScript V3 descreve detalhadamente todas as API operações da 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 para escolher, bem como uma cadeia de fornecedores de credenciais, disponível por padrão no Node.js, que tenta carregar AWS as credenciais 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 fornecedores de credenciais, o SDK para JavaScript v3 fornece uma lista de provedores de credenciais com o objetivo de fornecer o equivalente à 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 JavaScript resolve a AWS credencial se você não fornecer uma explicitamente.

Credenciais temporárias

  • v2: ChainableTemporaryCredentialsrepresenta credenciais temporárias recuperadas de. AWS.STS Sem nenhum parâmetro extra, as credenciais serão obtidas da AWS.STS.getSessionToken() operação. Se uma função do IAM for fornecida, a AWS.STS.assumeRole() operação será usada para buscar credenciais para a função. AWS.ChainableTemporaryCredentialsdifere da AWS.TemporaryCredentials forma como as MasterCredentials e as atualizações são tratadas. AWS.ChainableTemporaryCredentialsatualiza as credenciais expiradas usando as MasterCredentials passadas pelo usuário para suportar o encadeamento de credenciais STS. No entanto, reduz AWS.TemporaryCredentials recursivamente as MasterCredentials durante a instanciação, impedindo a capacidade de atualizar credenciais que exigem credenciais intermediárias temporárias.

    O original TemporaryCredentialsfoi descontinuado em favor do ChainableTemporaryCredentials v2.

  • v3: fromTemporaryCredentials. Você pode ligar fromTemporaryCredentials() do @aws-sdk/credential-providers pacote. 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 Amazon Cognito Identity, normalmente usado em navegadores.

  • v2: CognitoIdentityCredentialsrepresenta as credenciais recuperadas da STS Web Identity Federation usando o serviço Amazon Cognito Identity.

  • v3: Cognito Identity Credential ProviderO @aws/credential-providerspacote fornece duas funções de provedor de credenciais, uma das quais fromCognitoIdentityrecebe uma ID de identidade e chamadascognitoIdentity:GetCredentialsForIdentity, enquanto a outra fromCognitoIdentityPoolrecebe uma ID de grupo de identidades, chama a primeira invocação e, cognitoIdentity:GetId em seguida, chama. fromCognitoIdentity As invocações subsequentes deste último não são invocadas novamente. GetId

    O provedor implementa o “Fluxo simplificado” descrito no Guia do Desenvolvedor do Amazon Cognito. O “Classic Flow”, que envolve chamadas cognito:GetOpenIdToken e depois chamadas, não sts:AssumeRoleWithWebIdentity é suportado. Abra uma solicitação de recurso para nós, 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 EC2 (IMDS)

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

  • v2: EC2MetadataCredentials

  • v3: fromInstanceMetadata: Cria um provedor de credenciais que fornecerá credenciais do Amazon EC2 Instance Metadata Service.

    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 ECS

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

  • v2: ECSCredentials ou RemoteCredentials.

  • v3: fromContainerMetadatacria um provedor de credenciais que fornecerá credenciais do Amazon ECS Container Metadata Service.

    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 credencial compartilhado

Carrega as credenciais do arquivo de credenciais compartilhado (usando como padrão ~/.aws/credentials ou definido pela variável de ambiente). AWS_SHARED_CREDENTIALS_FILE Esse arquivo é compatível com diferentes AWS SDKs e ferramentas. Você pode consultar o documento de arquivos de configuração e credenciais compartilhados 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 as credenciais usando o token OIDC de um arquivo no disco. É comumente usado no 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 da Web Identity Federation

Recupera credenciais do suporte da federação de identidade web 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 }, }), });