繁体   English   中英

NodeJS Aws sdk,无法取消设置凭据

[英]NodeJS Aws sdk, can't unset credentials


我有一个在 EC2 实例上运行的 NodeJS 应用程序,它为我的客户提供 API 服务。 EC2 实例有一个实例角色,该角色授予应用程序访问所需服务的最低权限(我需要 sqs、s3 读写和 ses)。
我的 api 中的一个特定端点用于创建签名的 url,以便能够访问 s3 文件,并创建签名的 url 我使用的 IAM 用户对该存储桶只有 s3 读取权限。

我的问题是,每当调用该端点时,都会使用 AWS 凭证设置

const awsConfig = { region, accessKeyId: ${keyofreadonlyuser}, secretAccessKey: ${secretofreadonlyuser}, }; AWS.config.update(awsConfig);

这样,对 aws sdk 的所有后续调用都将使用该凭证,从而导致拒绝访问错误。
我尝试设置accessKeyId: null, secretAccessKey:null并调用 AWS.config.update,但凭证未被清除。
处理这种情况的最佳方法是什么?

我建议您不要更新默认配置,而是使用两个 boto3 会话对象:

  1. 默认的、隐式创建的 session,与假定的 IAM 角色关联
  2. 一个明确创建的 session,它与 IAM 用户凭证相关联

专门针对第二个用例,将 IAM 用户凭证传递给session构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM