使用 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 });