2016-02-17 52 views
1

我需要为AWS Lambda功能发送另一个服务的密钥和密码。我可以将关键/秘密烘焙到函数中,但是,如果它们发生更改并且看起来不合乎要求,我必须重新发布Lambda函数。将敏感令牌安全地发送到SNS以用于Lambda

我通过SNS触发了我的Lambda函数。所以,我的工作流程是:

  • 准备有效载荷
  • 发布负载到SNS主题
  • LAMBDA运行接收的有效载荷,
  • LAMBDA使用的有效载荷提供的密钥/秘密到另一个API执行必要的行动

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

我没有看到具体叫出的是从SNS -> Lambda转移。我可以再次假设它安全地完成了,但我正在寻找验证。

我在AWS Lambda示例中为Slack Echo Service所做的其他选项是使用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处理呢?

OR

我应该公开鞭笞甚至想送点东西就像一个键/秘密了SNS -> Lambda的,而是应该把它烤到lambda函数本身。

回答

0

我无法回答关于SNS-> Lambda加密的问题。我会假设,就像你一样,这是通过HTTPS,但我认为你需要联系AWS支持来获得确认。

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

+0

还刚刚发现这个回应你的其他答案:https://www.quora.com/What-are-some-good-ways-to-store-configuration-properties-for-AWS-Lambda-functions。谢谢! –