使用 AWS javascript SDK V3,是否有等效的凭证提供程序链?
Using the AWS javascript SDK, V3, is there a credentials provider chain equivalent?
我正在使用 NodeJS 从适用于 AWS 的 javascript SDK 的 V2 迁移到 V3。我们的应用程序需要在几个地方检查凭据。以前我们使用 Credential Provider Chain 但我找不到 V3 中的等效项。当我的脚本在本地运行时,我需要查看共享的 INI 文件 (SharedIniFileCredential
),但该脚本也在 kubernetes 中运行,所以(我认为)我还需要 roleAssumerWithWebIdentity
。如何在 V3 中使用凭证链?
模块 @aws-sdk/credential-provider-node 提供了一个与您正在寻找的类似的默认凭据提供程序:
It will attempt to find credentials from the following sources (listed in order of precedence):
- Environment variables exposed via process.env
- SSO credentials from token cache
- Web identity token credentials
- Shared credentials and config ini files
- The EC2/ECS Instance Metadata Service
这是他们页面中的示例:
const { getDefaultRoleAssumerWithWebIdentity } = require("@aws-sdk/client-sts");
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3");
const provider = defaultProvider({
roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity,
});
const client = new S3Client({ credentialDefaultProvider: provider });
我正在使用 NodeJS 从适用于 AWS 的 javascript SDK 的 V2 迁移到 V3。我们的应用程序需要在几个地方检查凭据。以前我们使用 Credential Provider Chain 但我找不到 V3 中的等效项。当我的脚本在本地运行时,我需要查看共享的 INI 文件 (SharedIniFileCredential
),但该脚本也在 kubernetes 中运行,所以(我认为)我还需要 roleAssumerWithWebIdentity
。如何在 V3 中使用凭证链?
模块 @aws-sdk/credential-provider-node 提供了一个与您正在寻找的类似的默认凭据提供程序:
It will attempt to find credentials from the following sources (listed in order of precedence):
- Environment variables exposed via process.env
- SSO credentials from token cache
- Web identity token credentials
- Shared credentials and config ini files
- The EC2/ECS Instance Metadata Service
这是他们页面中的示例:
const { getDefaultRoleAssumerWithWebIdentity } = require("@aws-sdk/client-sts");
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3");
const provider = defaultProvider({
roleAssumerWithWebIdentity: getDefaultRoleAssumerWithWebIdentity,
});
const client = new S3Client({ credentialDefaultProvider: provider });