前言
在前端开发中,经常需要使用 AWS(Amazon Web Services)提供的服务,需要在客户端执行 AWS 操作,为了保证安全性,在访问某些 AWS API 时需要进行身份验证。AWS SDK 开发团队提供了许多 Node.js 模块,以便在使用浏览器和 Node.js 工具时使用 AWS 服务,其中 @aws-sdk/credential-provider-imds 模块可以使用来生成身份验证凭据。
本文将介绍如何在浏览器中使用 npm 模块 @aws-sdk/credential-provider-imds,详细讲解其使用方法和意义,并提供示例代码作为参考。
什么是 @aws-sdk/credential-provider-imds
@aws-sdk/credential-provider-imds 是一个 Node.js 模块,它从浏览器中的 EC2 实例元数据服务(IMDS)获取安全令牌,并生成用于对 AWS 服务进行身份验证的凭据。
IMDS 是一个 REST 端点,它允许 EC2 实例在实例本身上请求和接收元数据信息。此外,EC2 实例元数据中的一部分是 IAM 权限信息,可以用来生成 AWS 凭据。
@aws-sdk/credential-provider-imds 模块可以运行在浏览器中,并允许您在本地构建和测试使用 AWS 服务的单页应用程序。
如何使用 @aws-sdk/credential-provider-imds
要在浏览器中使用 @aws-sdk/credential-provider-imds,首先需要将其安装为 npm 包,并将其引入项目中。
npm install @aws-sdk/credential-provider-imds
当引入 @aws-sdk/credential-provider-imds 模块时,可以使用以下方式创建凭证提供程序:
import { fromImdsCredentials } from '@aws-sdk/credential-provider-imds'; const credentials = fromImdsCredentials({ timeout: 1000, maxRetries: 5, roleArn: 'arn:aws:iam::123456789012:role/AWSServiceRoleForEC2Spot', httpOptions: {}, });
上述代码中,fromImdsCredentials 方法接收一个配置对象,包含以下字段:
- timeout:IMDS 请求超时时间。默认为 1000 毫秒。
- maxRetries:IMDS 请求最大尝试次数。默认为 5 次。
- roleArn:要生成凭证的角色 ARN(Amazon 资源名称)。
- httpOptions:IMDS 请求选项。
创建凭证提供程序后,可以针对 AWS 服务创建相应的客户端。
import { S3 } from '@aws-sdk/client-s3'; const s3 = new S3({ region: 'us-west-2', // 此处填写您的 S3 存储库的区域 credentials, });
示例代码
以下为使用 @aws-sdk/credential-provider-imds 模块在浏览器中与 AWS S3 存储库进行交互的示例代码:
-- -------------------- ---- ------- --------- ----- ------ ------ ------------- -- --------------- ------- -------------- ------ - -- - ---- --------------------- ------ - ------------------- - ---- ------------------------------------ ----- ----------- - --------------------- -------- ----- ----------- -- -------- ---------------------------------------------------------- ------------ --- --- ----- -- - --- ---- ------- ------------ -- ------ -- ------ ------------ --- ----- ---- - ------------------------------- ----- -------- - -------------------- ----- ---------- - ----- -- -- - --- - ----- --- - ----- -------------- ------- ----------------------------- ---- --------- ----- ----- ---- -------------- --- ----------------- - ----- --- - ----------------- - -- --------- ------- ------ --------- -- -------- ------- -------------------------------------- ------- -------
总结
@aws-sdk/credential-provider-imds 模块可以在浏览器中使用,它从 EC2 实例元数据服务(IMDS)获取安全令牌,并生成用于对 AWS 服务进行身份验证的凭据。在使用 @aws-sdk/credential-provider-imds 模块前,需要将其安装为 npm 包,并使用 fromImdsCredentials 方法创建凭证提供程序。本文提供了使用示例代码,供读者参考。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6f182ca9b7065299ccba41