安全地将敏感令牌发送到SNS以便在Lambda中使用

时间:2016-02-17 19:45:40

标签: amazon-sns aws-lambda

我需要向AWS Lambda函数发送另一项服务的密钥和密钥。我可以将密钥/秘密烘焙到函数中,但是当它/如果它们发生变化时我必须重新发布Lambda函数,这似乎是不可取的。

我通过SNS触发我的Lambda功能。所以我的工作流程将是:

  • 准备有效负载
  • 将有效负载发布到SNS主题
  • Lambda运行接收有效负载,
  • Lambda使用有效负载中提供的密钥/机密来对另一个API执行必要的操作

我假设SNS发布是通过HTTPS完成的,因此Server -> SNS topic将被加密。

我没有看到特别提到的是SNS -> Lambda的转移。我可以再次认为它已经安全完成,但我正在寻找验证。

我在Slack Echo Service的AWS Lambda示例中看到的另一个选项是使用AWS Key Management进行加密和解密。例如,使用python:

kms = boto3.client('kms')
key = kms.decrypt(CiphertextBlob = b64decode(event["key"]))['Plaintext']
secret = kms.decrypt(CiphertextBlob = b64decode(event["secret"]))['Plaintext']

在这里使用Key Management Encryption Services是否过度/甚至是必要的还是我可以发送有效负载并让HTTPS处理它?<​​/ p>

我是否应该公开抨击,甚至考虑在SNS -> Lambda上发送类似密钥/密钥的内容,而应将其烘焙到Lambda函数本身。

1 个答案:

答案 0 :(得分:0)

我无法回答有关SNS-&gt; Lambda加密的问题。我认为,就像你一样,这是通过HTTPS,但我认为你需要联系AWS支持以获得确认。

关于你的另一个问题,我认为KMS实际上非常适合这一点而不一定是矫枉过正。您可能考虑的另一个选项是将密钥存储在DynamoDB中。我也看到人们建议在S3中存储这样的Lambda配置数据。