如何从AWS Lambda函数隐藏秘密密钥和访问ID?

发布时间:2020-07-06 07:59

我想从python编写的aws lambda函数代码中隐藏我的秘密密钥和访问ID。我该怎么办?

我已经在代码中对其进行了硬编码,但这不是一个好习惯。有什么办法可以做到这一点?

回答1

我的建议是不要为Lambda使用IAM密钥和IAM机密。请改用Lambda角色。

授予IAM用户本应拥有的Lambda role权限。

出于多种原因,使用IAM角色是最佳做法:

  • 它使用临时凭据
  • 无需对不想公开的凭据进行硬编码
  • 关键部署无需部署,只需部署现有角色的策略即可。

您的Lambda将始终具有角色,要使用它而不是IAM密钥/秘密,请像这样从代码源中删除凭据

之前

 s3_client = boto3.client('s3', 
   aws_access_key_id=$KEY, 
   aws_secret_access_key=$SECRET_KEY, 
   region_name=REGION_NAME
)

之后

 s3_client = boto3.client('s3', 
   region_name=REGION_NAME
)
回答2

我已经在代码中对其进行了硬编码,但这不是一个好习惯。有什么办法可以做到这一点?

是的,有更好的方法。

您应该使用AWS Lambda execution role来授予您的函数必要的权限以完成其工作。