通过input transformer向事件总线事件注入secret values。安全与否?

0

【以下的问题经过翻译处理】 我有一个由事件总线触发的 Lambda 函数(主要是警报状态更改等事件)。在函数内部,对于每种不同类型的事件(警报),我需要向不同的终端发送请求,并且对于这些终端,我需要不同的 API_KEY。我正在考虑如何将 API_KEY 传递给函数。显而易见的方法是使用环境变量,但存在以下问题:

  1. 这将导致有大量的环境变量。
  2. 每次 Lambda 调用都可以访问不与该调用相关的 API_KEY,我不太喜欢这种情况。

另一个我考虑过的选项是使用事件总线输入转换器来注入 API_KEY 到调用中。这种方式可以确保每次调用只接收到正确的 API_KEY。

问题是:这种方法是否可行,或者是否有不妥之处?相比将 API_KEY 存储在函数的环境变量中,我认为安全风险并不会更大,但我可能是错误的。

profile picture
专家
已提问 5 个月前10 查看次数
1 回答
0

【以下的回答经过翻译处理】 只有当 API 密钥是原始事件的一部分时,才能使用Input Transformer将其包含在内。否则,Transformer无法从任何地方获取它。

如果有很多 API 密钥,并且不时添加新密钥或更改现有密钥,我不建议使用环境变量,因为每次更改都需要重新部署函数。倒不如将 API 密钥存储在 SSM、SecretsManager、DynamoDB 或 S3 中,并在函数启动时读取它们。

我明白你担心在只需要一个密钥的情况下访问所有密钥,但无论如何你都需要这样做,除非 API 密钥是在事件本身中发送的。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则