gpt4 book ai didi

python - 如何(正确地)在 AWS Lambda 函数中使用外部凭证?

转载 作者:太空狗 更新时间:2023-10-29 21:28:30 30 4
gpt4 key购买 nike

我有一个用 Python 编写的(非常基本但工作完美的)AWS lambda 函数,但是它具有嵌入式凭证以连接到:1)外部网络服务2) DynamoDB 表。

该函数的作用相当基本:它针对服务发布登录(使用凭据 #1),然后将部分响应状态保存到 DynamoDB 表中(使用 AWS 凭据 #2)。

这些是函数的相关部分:

h = httplib2.Http()
auth = base64.encodestring('myuser' + ':' + 'mysecretpassword')
(response, content) = h.request('https://vca.vmware.com/api/iam/login', 'POST', headers = {'Authorization':'Basic ' + auth,'Accept':'application/xml;version=5.7'})

然后

conn = boto.connect_dynamodb(aws_access_key_id='FAKEhhahahah',aws_secret_access_key='FAKEdhdhdudjjdjdjhdjjhdjdjjd')

如果函数中没有这些凭据,您将如何清理代码?

仅供引用,此函数计划每 5 分钟运行一次(没有其他外部事件触发它)。

最佳答案

在您的示例中,您有两种类型的凭据:

  1. AWS 凭证
  2. 无 AWS 凭证

有了 AWS creds,一切都变得简单了:创建 IAM 角色,授予它对 dynamodb 的权限,一切顺利。

对于非 AWS 凭证,最安全的方法是:

  1. 使用 kms 服务预先加密凭据。 (kms.encrypt('foo'))
  2. 一旦您拥有信息的加密版本。随意将它存储在任何你想要的地方。最简单的方法是在 lambda 中对其进行硬编码。
  3. 向 lambda IAM 角色添加权限,以使用您在第 1 步中使用的 kms key 解密信息。
  4. 然后每次调用lambda时,让它调用kms来解密信息。

关于python - 如何(正确地)在 AWS Lambda 函数中使用外部凭证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36225031/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com