1

我有一个存储在 Secrets Manager 中的密钥(AWS 访问密钥、密钥、区域)。现在我必须从我的 lambda 中检索它并将其作为参数传递给我的 SSM Run 命令文档,该文档将由我的 lambda 触发。尝试时,我无法使用我的 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?**
4

1 回答 1

2

errorMessage 似乎与实际问题无关。如果您想从您的 lambda 函数使用 RunCommand API,您只需将IAM 角色与具有适当 SSM 权限的 lambda 函数相关联。Secrets Manager 用于存储长期凭证,而不是用于存储 AWS API 密钥。尽可能为此使用 IAM 角色,因为它们是短暂/短暂的。

于 2019-07-03T00:07:39.317 回答