npm 包 @aws-sdk/credential-provider-node 使用教程

阅读时长 6 分钟读完

前置知识

在学习使用 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 命令行工具进行安装:

使用方法

基本使用

使用 @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

纠错
反馈