我在密钥管理器中存储了一个密钥(AWS访问密钥,密钥,区域)。现在,我必须从lambda检索它,并将其作为参数传递给我的lambda触发的SSM Run命令文档。尝试时,我无法使用lambda从Secret中获取值。这是我下面的代码。
import base64
client = boto3.client('secretsmanager')
def lambda_handler(event, context):
response = client.get_secret_value(
SecretId = 'arn:aws:secretsmanager:eu-west-1:*************:secret:aws/credentials/******'
)
return response```
When I execute this I got this error (earlier even without error it gives null response or identation issues)
```Response:
{
"errorMessage": "Unable to marshal response: datetime.datetime(2019, 6, 28, 13, 28, 47, 798000, tzinfo=tzlocal()) is not JSON serializable",
"errorType": "Runtime.MarshalError"
}```
**What am I missing here?**
答案 0 :(得分:2)
errorMessage似乎与实际问题无关。如果要使用lambda函数中的RunCommand API,只需将IAM role与具有适当SSM权限的lambda函数相关联即可。 Secrets Manager用于存储长期凭证,并不旨在存储AWS API密钥。暂时使用IAM角色,因为它们是短暂的/短暂的。