Fornitori di credenziali - AWS SDK for JavaScript

La guida API di riferimento AWS SDK for JavaScript V3 descrive in dettaglio tutte le API operazioni per la AWS SDK for JavaScript versione 3 (V3).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fornitori di credenziali

Nella v2, l'SDK for JavaScript fornisce un elenco di provider di credenziali tra cui scegliere, oltre a una catena di fornitori di credenziali, disponibile per impostazione predefinita su Node.js, che tenta di caricare AWS le credenziali da tutti i provider più comuni. L'SDK per la versione JavaScript 3 semplifica l'interfaccia del provider di credenziali, semplificando l'utilizzo e la scrittura di provider di credenziali personalizzati. Oltre a una nuova catena di fornitori di credenziali, l'SDK per la versione JavaScript 3 fornisce tutti un elenco di provider di credenziali che mirano a fornire una soluzione equivalente alla versione 2.

Ecco tutti i provider di credenziali nella v2 e i loro equivalenti nella v3.

Provider di credenziali predefinito

Il provider di credenziali predefinito è il modo in cui l'SDK JavaScript risolve le AWS credenziali se non ne fornite una esplicitamente.

Credenziali temporanee

  • v2: ChainableTemporaryCredentialsrappresenta le credenziali temporanee recuperate da. AWS.STS Senza parametri aggiuntivi, le credenziali verranno recuperate dall'operazione. AWS.STS.getSessionToken() Se viene fornito un ruolo IAM, l'AWS.STS.assumeRole()operazione verrà invece utilizzata per recuperare le credenziali per il ruolo. AWS.ChainableTemporaryCredentialsdifferisce dal modo AWS.TemporaryCredentials in cui vengono gestiti MasterCredentials e gli aggiornamenti. AWS.ChainableTemporaryCredentialsaggiorna le credenziali scadute utilizzando le MasterCredentials passate dall'utente per supportare il concatenamento delle credenziali STS. Tuttavia, comprime AWS.TemporaryCredentials ricorsivamente le MasterCredentials durante l'istanziazione, precludendo la possibilità di aggiornare le credenziali che richiedono credenziali intermedie e temporanee.

    L'TemporaryCredentialsoriginale è stato ChainableTemporaryCredentials deprecato a favore di in v2.

  • v3:. fromTemporaryCredentials Puoi chiamare fromTemporaryCredentials() dal @aws-sdk/credential-providers pacchetto. Ecco un esempio:

    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 }, }), });

Credenziali di identità Amazon Cognito

Carica le credenziali dal servizio Amazon Cognito Identity, normalmente utilizzato nei browser.

  • v2: CognitoIdentityCredentialsrappresenta le credenziali recuperate da STS Web Identity Federation utilizzando il servizio Amazon Cognito Identity.

  • v3: Cognito Identity Credential ProviderIl @aws/credential-providerspacchetto fornisce due funzioni di fornitore di credenziali, una delle quali fromCognitoIdentityrichiede un ID di identità e chiamacognitoIdentity:GetCredentialsForIdentity, mentre l'altra fromCognitoIdentityPoolaccetta un ID di pool di identità, chiama alla prima chiamata e cognitoIdentity:GetId poi chiama. fromCognitoIdentity Le successive invocazioni di quest'ultimo non vengono reinvocate. GetId

    Il provider implementa il «Simplified Flow» descritto nella Amazon Cognito Developer Guide. Il «Classic Flow» che prevede la chiamata cognito:GetOpenIdToken e quindi la chiamata sts:AssumeRoleWithWebIdentity non è supportato. Se ne hai bisogno, apri una richiesta di funzionalità.

    // 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", }, }), });

Credenziale EC2 Metadata (IMDS)

Rappresenta le credenziali ricevute dal servizio di metadati su un'istanza Amazon EC2.

  • v2: EC2MetadataCredentials

  • v3: fromInstanceMetadata: Crea un provider di credenziali che raccoglierà le credenziali dall'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 }), });

Credenziali ECS

Rappresenta le credenziali ricevute dall'URL specificato. Questo provider richiederà credenziali temporanee all'URI specificato dalla variabile di AWS_CONTAINER_CREDENTIALS_FULL_URI ambiente AWS_CONTAINER_CREDENTIALS_RELATIVE_URI o.

  • v2: ECSCredentials o. RemoteCredentials

  • v3: fromContainerMetadatacrea un provider di credenziali che fornirà le credenziali da 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 }), });

Credenziali del file system

Provider di credenziali SAML

Credenziali condivise: credenziali (file)

Carica le credenziali dal file di credenziali condiviso (predefinito ~/.aws/credentials o definito dalla variabile di ambiente). AWS_SHARED_CREDENTIALS_FILE Questo file è supportato da diversi SDK e strumenti. AWS Puoi fare riferimento al documento sui file di configurazione e credenziali condivisi per ulteriori informazioni.

  • 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 }), });

Credenziali di identità Web

Recupera le credenziali utilizzando il token OIDC da un file su disco. È comunemente usato in 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 }, }), });

Credenziali Web Identity Federation

Recupera le credenziali dal supporto STS Web Identity Federation.

  • 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 }, }), });