Fournisseurs d'informations d'identification - AWS SDK for JavaScript

Le guide de API référence AWS SDK for JavaScript V3 décrit en détail toutes les API opérations de la AWS SDK for JavaScript version 3 (V3).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fournisseurs d'informations d'identification

Dans la version 2, le SDK pour JavaScript fournit une liste de fournisseurs d'informations d'identification parmi lesquels choisir, ainsi qu'une chaîne de fournisseurs d'informations d'identification, disponible par défaut sur Node.js, qui essaie de charger les AWS informations d'identification de tous les fournisseurs les plus courants. Le SDK pour JavaScript v3 simplifie l'interface du fournisseur d'informations d'identification, ce qui facilite l'utilisation et la rédaction de fournisseurs d'informations d'identification personnalisés. En plus d'une nouvelle chaîne de fournisseurs d'informations d'identification, le SDK pour la JavaScript version 3 fournit tous une liste de fournisseurs d'informations d'identification visant à fournir un équivalent à la version 2.

Voici tous les fournisseurs d'identifiants de la version 2 et leurs équivalents de la version 3.

Fournisseur d'informations d'identification par défaut

Le fournisseur d'informations d'identification par défaut est la façon dont le SDK permet de JavaScript résoudre les AWS informations d'identification si vous ne les fournissez pas explicitement.

Informations d'identification temporaires

  • v2 : ChainableTemporaryCredentialsreprésente les informations d'identification temporaires extraites deAWS.STS. Sans aucun paramètre supplémentaire, les informations d'identification seront extraites de l'AWS.STS.getSessionToken()opération. Si un rôle IAM est fourni, l'AWS.STS.assumeRole()opération sera plutôt utilisée pour récupérer les informations d'identification du rôle. AWS.ChainableTemporaryCredentialsdiffère de la AWS.TemporaryCredentials façon dont les MasterCredentials et les actualisations sont gérés. AWS.ChainableTemporaryCredentialsactualise les informations d'identification expirées à l'aide des MasterCredentials transmises par l'utilisateur pour permettre le chaînage des informations d'identification STS. Cependant, les informations d'identification principales sont réduites de AWS.TemporaryCredentials manière récursive lors de l'instanciation, ce qui empêche d'actualiser les informations d'identification qui nécessitent des informations d'identification temporaires intermédiaires.

    L'original TemporaryCredentialsa été déprécié au profit de la ChainableTemporaryCredentials version v2.

  • version 3 : fromTemporaryCredentials. Vous pouvez appeler fromTemporaryCredentials() depuis le @aws-sdk/credential-providers forfait. Voici un exemple :

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

Informations d'identification Amazon Cognito

Chargez les informations d'identification depuis le service Amazon Cognito Identity, normalement utilisé dans les navigateurs.

  • v2 : CognitoIdentityCredentialsreprésente les informations d'identification récupérées auprès de STS Web Identity Federation à l'aide du service Amazon Cognito Identity.

  • v3 : Cognito Identity Credential ProviderLe @aws/credential-providerspackage fournit deux fonctions de fournisseur d'informations d'identification, dont l'une fromCognitoIdentityprend un identifiant d'identité et des appelscognitoIdentity:GetCredentialsForIdentity, tandis que l'autre fromCognitoIdentityPoolprend un identifiant de pool d'identités, appelle cognitoIdentity:GetId lors du premier appel, puis appelle. fromCognitoIdentity Les invocations ultérieures de ce dernier ne sont pas réinvoquées. GetId

    Le fournisseur met en œuvre le « flux simplifié » décrit dans le guide du développeur Amazon Cognito. Le « flux classique » qui implique d'appeler cognito:GetOpenIdToken puis d'appeler n'sts:AssumeRoleWithWebIdentityest pas pris en charge. Veuillez nous envoyer une demande de fonctionnalité si vous en avez besoin.

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

Identifiant de métadonnées EC2 (IMDS)

Représente les informations d'identification reçues du service de métadonnées sur une instance Amazon EC2.

  • version 2 : EC2MetadataCredentials

  • v3 : fromInstanceMetadata: Crée un fournisseur d'informations d'identification qui fournira les informations d'identification auprès du service de métadonnées d'instance 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 }), });

Informations d'identification ECS

Représente les informations d'identification reçues depuis l'URL spécifiée. Ce fournisseur demandera des informations d'identification temporaires à partir de l'URI spécifiée par la variable d'environnement AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ou par la variable d'AWS_CONTAINER_CREDENTIALS_FULL_URIenvironnement.

  • v2 : ECSCredentials ou RemoteCredentials.

  • v3 : fromContainerMetadatacrée un fournisseur d'informations d'identification qui fournira les informations d'identification auprès du service de métadonnées de conteneur Amazon ECS.

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

Informations d'identification du système de fichiers

  • v2 : FileSystemCredentialsreprésente les informations d'identification d'un fichier JSON sur le disque.

  • v3 : Obsolète. Vous pouvez lire explicitement le fichier JSON et le fournir au client. Veuillez nous envoyer une demande de fonctionnalité si vous en avez besoin.

Fournisseur d'informations d'identification SAML

Informations d'identification partagées Informations d'identification

Charge les informations d'identification à partir du fichier d'informations d'identification partagé (défini par défaut ~/.aws/credentials ou défini par la variable d'AWS_SHARED_CREDENTIALS_FILEenvironnement). Ce fichier est pris en charge par différents AWS SDK et outils. Vous pouvez consulter le document sur les fichiers de configuration et d'identification partagés pour plus d'informations.

  • version 2 : SharedIniFileCredentials

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

Identifiants d'identité Web

Récupère les informations d'identification à l'aide d'un jeton OIDC à partir d'un fichier sur le disque. Il est couramment utilisé dans EKS.

  • v2 : TokenFileWebIdentityCredentials.

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

Informations d'identification de la Fédération des identités Web

Récupère les informations d'identification auprès du support de fédération d'identité Web STS.

  • version 2 : WebIdentityCredentials

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