AWS 官方提供了用于 JavaScript 语言的 AWS SDK,它能让开发者在前端直接与 AWS 服务进行交互。然而,每次在前端调用 AWS SDK 时都需要传递 AWS 的 Access Key ID 和 Secret Access Key,这样做并不安全,常常会引起泄漏。
AWS SDK 提供了一个名为 shared-ini-file-loader
的 npm 包来解决这个问题,它可以从默认的 AWS 配置文件(通常在 ~/.aws/credentials
)中读取这些敏感信息,供应用程序使用。本文将讲解如何使用 shared-ini-file-loader
包来加载 AWS 配置文件中的信息。
安装 shared-ini-file-loader
使用 npm 包管理器,可以很容易地安装 shared-ini-file-loader
:
npm install @aws-sdk/shared-ini-file-loader
加载 AWS Credentials
在使用 shared-ini-file-loader
之前,需要确保确有 AWS 配置文件。如果你还没有这个文件,可以使用 AWS CLI 在命令行上创建。这里假设你已经创建好了 AWS 配置文件。
在代码中使用 shared-ini-file-loader
:
-- -------------------- ---- ------- ----- - --------- ---------------- - - ------------------------------ ----- - ------- - - -------------------------------------------- ----- - --------------------------- - - ------------------------------------------- ----- -------- -------------------- --------- ------ - ----- ----------- - ----- ----------------------------- -------- ---------- --- ----- ------ - --- ---------- ------------ ------- ------------ --- ----- ----------- - ----- ------------------------------- ----- ------- - --- ------------------ ------- --------- ---- ------ ----- ------------ --- ----- - --------- ---------- - - ----- --------------------- ----------------- -------- ------------- -- --------- ---------------- -
在上面的示例中,我们使用了 getSharedIniFileCredentials()
方法来创建一个 credentials
对象,这个对象包含 AWS Access Key ID 和 Secret Access Key。这些值将被传递给 S3Client
对象,从而让其能够进行身份验证,并发送请求到 AWS S3 服务上。
指定 AWS 配置文件
如果你的 AWS 配置文件不在默认位置中(~/.aws/credentials
),你可以使用 fromIni
函数并指定 AWS 配置文件的绝对路径:
const credentials = await fromIni({ filepath: '/path/to/aws/credentials', });
只读模式读取 AWS 配置文件
默认情况下,shared-ini-file-loader
会尝试按照默认配置文件和文件格式从文件中读取敏感信息。但是,通过在调用 getSharedIniFileCredentials()
方法时指定 readOnly
参数,你可以指示 shared-ini-file-loader
只读取文件,并不试图从文件中写入任何内容。
例如,下面的示例展示了如何使用只读模式读取 AWS 配置文件:
-- -------------------- ---- ------- ----- - --------------------------- - - ------------------------------------------- ----- -------- ------------------- - ----- ----------- - ----- ----------------------------- -------- ---------- --------- ----- --- ------------------------- -
结论
@aws-sdk/shared-ini-file-loader
包极大地简化了使用 AWS SDK 的前端开发人员的工作流程。使用这个包,你可以从 AWS 配置文件中安全地读取敏感信息,并用于向 AWS 服务发送请求。与直接将这些敏感信息硬编码在项目中相比,使用 shared-ini-file-loader
包更为安全可靠。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/aws-sdk-shared-ini-file-loader