AWS SDK for JavaScript V3 API リファレンスガイドでは、 AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
認証情報プロバイダー
v2 は、SDK for JavaScript は、選択できる認証情報プロバイダーのリストと、Node.js でデフォルトで利用可能な認証情報プロバイダーチェーンを提供します。これにより、最も一般的なすべてのプロバイダーから AWS 認証情報の読み込みが試行されます。SDK for JavaScript v3 では、認証情報プロバイダーのインターフェイスが簡素化され、カスタム認証情報プロバイダーの利用と作成が容易になりました。新しい認証情報プロバイダーチェーンに加えて、SDK for JavaScript v3 でも、v2 と同等の機能を提供することを目的として、認証情報プロバイダーのリストが用意されています。
v2 のすべての認証情報プロバイダーと、それに相当する v3 の認証情報プロバイダーは次のとおりです。
デフォルトの認証情報プロバイダー
デフォルトの認証情報プロバイダーは、明示的に指定しない場合に SDK for JavaScript が AWS 認証情報を解決する方法です。
-
v2: Node.js の CredentialProviderChain は、ソースからの認証情報を次の順序で解決します。
上記の認証情報プロバイダーの 1 つが AWS 認証情報の解決に失敗した場合、有効な認証情報が解決されるまでチェーンは次のプロバイダーにフォールバックし、すべてのプロバイダーが失敗するとチェーンはエラーをスローします。
ブラウザおよび React Native ランタイムでは、認証情報チェーンは空であるため、認証情報を明示的に設定する必要があります。
-
v3: defaultProvider。認証情報のソースとフォールバック順序は v3 でも変更されません。また、AWS IAM アイデンティティセンター 認証情報もサポートしています。
一時認証情報
-
v2:
ChainableTemporaryCredentialsはAWS.STSから取得した一時的な認証情報を表します。追加のパラメータがない場合、認証情報はAWS.STS.getSessionToken()オペレーションから取得されます。IAM ロールが指定されている場合、AWS.STS.assumeRole()オペレーションは代わりにロールの認証情報を取得するために使用されます。AWS.ChainableTemporaryCredentialsは masterCredentials や認証情報の更新の処理方法がAWS.TemporaryCredentialsとは異なります。AWS.ChainableTemporaryCredentialsは、STS 認証情報のチェーンをサポートするためにユーザーが渡した masterCredentials を使用して期限切れの認証情報を更新します。ただし、AWS.TemporaryCredentialsはインスタンス化の際に masterCredentials を再帰的に解決するため、中間の一時的な認証情報を必要とする、認証情報の更新機能は除外されます。元の
TemporaryCredentialsは v2 でChainableTemporaryCredentialsに置き換えられ、非推奨になりました。 -
v3:
fromTemporaryCredentials。@aws-sdk/credential-providersパッケージからfromTemporaryCredentials()を呼び出すことができます。例を示します。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 }, }), });
Amazon Cognito ID の認証情報
通常ブラウザで使用される Amazon Cognito ID サービスから認証情報を読み込みます。
-
v2:
CognitoIdentityCredentialsAmazon Cognito ID サービスを使用して STS ウェブ ID フェデレーションから取得した認証情報を表します。 -
v3:
Cognito Identity Credential Provider@aws/credential-providersパッケージには 2 つの認証情報プロバイダー関数が用意されています。1 つ目の fromCognitoIdentityはアイデンティティ ID を受け取り、cognitoIdentity:GetCredentialsForIdentityを呼び出し、もう 1 つのfromCognitoIdentityPoolは アイデンティティプール ID を受け取り、最初の呼び出しでcognitoIdentity:GetIdを呼び出した後、fromCognitoIdentityを呼び出します。2 回目以降の呼び出しでは GetId は再び呼び出されません。このプロバイダーは、「Amazon Cognito デベロッパーガイド」で説明されている「簡易フロー」を実装します。
cognito:GetOpenIdTokenを呼び出した後、sts:AssumeRoleWithWebIdentityを呼び出す「クラシックフロー」はサポートされていません。必要な場合は、「機能リクエスト」でお知らせください。 // 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", }, }), });
Amazon EC2 メタデータ (IMDS) 認証情報
Amazon EC2 インスタンスのメタデータサービスから受信した認証情報を表します。
-
v3:
fromInstanceMetadata。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 }), });
Amazon ECS 認証情報
指定された URL から受信した認証情報を表します。このプロバイダーは、AWS_CONTAINER_CREDENTIALS_RELATIVE_URI または AWS_CONTAINER_CREDENTIALS_FULL_URI の環境変数で指定された URI から一時的な認証情報をリクエストします。
-
v2:
ECSCredentialsまたはRemoteCredentials -
v3:
fromContainerMetadata。Amazon ECS コンテナメタデータサービスから認証情報を取得する認証情報プロバイダーを作成します。import { fromContainerMetadata } from "@aws-sdk/credential-providers"; // ES6 import const client = new FooClient({ credentials: fromContainerMetadata({ maxRetries: 3, // Optional timeout: 0, // Optional }), });
ファイルシステムの認証情報
-
v2:
FileSystemCredentials。ディスク上の JSON ファイルからの認証情報を表します。 -
v3: 廃止。JSON ファイルを明示的に読み取り、クライアントに提供します。必要な場合は、「機能リクエスト
」でお知らせください。
SAML 認証情報プロバイダー
-
v2:
SAMLCredentialsSAML サポートから取得した認証情報を表します。 -
v3: 利用できません。必要な場合は、「機能リクエスト
」でお知らせください。
共有された認証情報ファイルの認証情報
共有された認証情報ファイルから認証情報を読み取ります (デフォルトは ~/.aws/credentials または AWS_SHARED_CREDENTIALS_FILE 環境変数で定義)。このファイルは、さまざまな AWS SDKsとツールでサポートされています。詳細については、共有設定および認証情報ファイルのドキュメントを参照してください。
-
v3:
fromIniimport { 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 }), });
ウェブ ID 認証情報
ディスク上のファイルから OIDC トークンを使用して認証情報を取得します。Amazon EKS で一般的に使用されます。
-
v3:
fromTokenFileimport { 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 }, }), });
ウェブ ID フェデレーション認証情報
STS ウェブ ID フェデレーションサポートから認証情報を取得します。
-
v3:
fromWebTokenimport { 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 }, }), });