前置知识
在学习使用 npm 包 @aws-sdk/credential-provider-node 之前,需要了解以下知识:
- AWS IAM 用户和角色
- AWS SDK for JavaScript v3
简介
@aws-sdk/credential-provider-node 是一个 Node.js SDK,提供了 AWS 身份验证所需的凭证。它支持许多不同类型的凭据,包括 IAM 用户凭据、角色凭据、STS 临时凭据以及 EC2 实例凭据等。
使用 @aws-sdk/credential-provider-node 可以轻松地使用 AWS SDK for JavaScript v3 中的其他组件,并且避免了直接与 AWS 身份验证系统进行通信的复杂性。
安装
使用 npm 命令行工具进行安装:
npm install @aws-sdk/credential-provider-node
使用方法
基本使用
使用 @aws-sdk/credential-provider-node 的最简单方法是使用 createDefaultProvider() 方法。这个方法将自动检测环境中可用的 AWS 凭据,并返回一个 Promise。使用这个 Promise 可以获取一个已认证的 AWS SDK for JavaScript v3 的客户端对象。
-- -------------------- ---- ------- ----- - -------- - - ------------------------------ ----- - --------------------- - - --------------------------------------------- ----- -------- - --- ---------- ------- ------------ ------------ ----- ----------------------------------------- --- ----- ---------- - ------------ ----- --------- - ------------ ----- ---- - ----- -------------------- ------- ----------- ---- --------- --- ------------------- --------- --------------------------
指定 AWS 账户
如果您有多个 AWS 账户,可以通过指定 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 环境变量,以及指定 AWS_REGION 和 AWS_PROFILE 的值来选择要使用的 AWS 账户。
-- -------------------- ---- ------- ----- - -------- - - ------------------------------ ----- - ------- - - -------------------------------------------- ----- -------- - --- ---------- ------- ------------ ------------ --------- -------- ------------- ------- ------------ -------- ----------------------------------------- ----------- ----------------- --- --- ----- ---------- - ------------ ----- --------- - ------------ ----- ---- - ----- -------------------- ------- ----------- ---- --------- --- ------------------- --------- --------------------------
在上面的代码中,使用 fromIni() 方法从 ~/.aws/credentials 文件中获取凭证。同时,指定了 roleArn 和 externalId,以使用角色访问 S3 存储桶。
自定义凭证提供程序
如果需要自定义 AWS 凭证提供程序,可以使用 createFromProvider() 方法。这个方法接受一个凭证提供程序作为参数,并返回一个函数。使用这个函数可以通过 resolvePromise() 方法获取一个已认证的 AWS SDK for JavaScript v3 的客户端对象。
-- -------------------- ---- ------- ----- - -------- - - ------------------------------ ----- - ------------------ - - --------------------------------------------- ----- ---------- - - -------- -- -- ----------------- ------------ ------------------- ---------------- ----------------------- ------------- ------------------- --- -- ----- -------- - --- ---------- ------- ------------ ------------ ------------------------------------------------ --- ----- ---------- - ------------ ----- --------- - ------------ ----- ---- - ----- -------------------- ------- ----------- ---- --------- --- ------------------- --------- --------------------------
在上面的代码中,使用 createFromProvider() 方法从自定义凭证提供程序中获取凭证。同时,指定了 accessKeyId、secretAccessKey 和 sessionToken,以认证 AWS 客户端对象。
总结
在本文中,我们介绍了 @aws-sdk/credential-provider-node 的基本用法和自定义用法。这个 Node.js SDK 提供了 AWS 身份验证所需的凭证,支持许多不同类型的凭据。
通过了解和使用这个 npm 包,可以轻松地使用 AWS SDK for JavaScript v3 中的其他组件,并且避免了直接与 AWS 身份验证系统进行通信的复杂性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6eecd1a9b7065299ccba1a