Как я могу получить секрет из диспетчера секретов и передать его в мой документ команды запуска SSM через лямбду? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть секрет (ключ доступа AWS, секретный ключ, регион), хранящийся в диспетчере секретов.Теперь мне нужно извлечь его из моей лямбды и передать это как параметры в мой документ команды SSM Run, который будет запущен моей лямбдой.При попытке я не могу получить значение из секрета, используя мою лямбду.Вот мой код ниже.

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?**

1 Ответ

2 голосов
/ 03 июля 2019

Сообщение об ошибке, похоже, не связано с фактическим вопросом.Если вы хотите использовать API-интерфейс RunCommand из своей лямбда-функции, все, что вам нужно сделать, - это связать роль IAM с лямбда-функцией, имеющей соответствующие разрешения SSM.Secrets Manager используется для хранения долгосрочных учетных данных и не предназначен для хранения ключей API AWS.По возможности используйте для этого роли IAM, поскольку они эфемерны / недолговечны.

...