使用AWS javascript SDK V3,是否有等效的凭证提供程序链?

whi*_*ok6 4 javascript amazon-web-services aws-sdk-js

我正在使用 NodeJS 将适用于 AWS 的 javascript SDK 从 V2 迁移到 V3。我们的应用程序需要在几个地方检查凭据。之前我们使用了凭证提供程序链,但我在 V3 中找不到等效项。当我的脚本在本地运行时,我需要查看共享 INI 文件 ( SharedIniFileCredential),但该脚本也在 kubernetes 中运行,所以(我认为)我还需要roleAssumerWithWebIdentity. 如何在 V3 中使用凭证链?

shj*_*shj 5

模块@aws-sdk/credential-provider-node提供了一个与您正在寻找的类似的默认凭证提供程序:

它将尝试从以下来源查找凭据(按优先顺序列出):

  • 通过 process.env 暴露的环境变量
  • 来自令牌缓存的 SSO 凭据
  • Web 身份令牌凭证
  • 共享凭据和配置 ini 文件
  • EC2/ECS实例元数据服务

这是他们页面上的示例:

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 });
Run Code Online (Sandbox Code Playgroud)