我想从用python编写的aws lambda函数代码中隐藏我的密钥和访问ID。我该怎么做?
我已经在代码中对其进行了硬编码,但这不是一个好的做法。有什么办法做到这一点吗?
我在代码中对其进行了硬编码,但这不是一个好的做法。有什么办法做到这一点吗??
是的,有更好的方法。
您应该使用AWS Lambda执行角色来为您的功能提供必要的权限来完成其工作。
我的建议是不要为您的Lambda使用IAM密钥和IAM机密。请改用Lambda角色。
授予IAM用户本应具有的Lambda角色权限。
最佳做法是使用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
)