У меня есть правило CloudWatch, настроенное для запуска функции Lambda при создании новой учетной записи AWS. Я использую вызовы API из CloudTrail с именем события CreateAccountResult
. В журнале CloudTrail он в основном дает мне следующие данные:
"serviceEventDetails": {
"createAccountStatus": {
"id": "string",
"state": "SUCCEEDED",
"accountName": "****",
"accountId": " *accountID* ",
"requestedTimestamp": "date/time",
"completedTimestamp": "date/time"
Срабатывающая лямбда-функция написана в Python 3.7 и использует этот идентификатор учетной записи для создания AWS коннектора к программе с именем Trend Micro Deep Security. В настоящее время я вручную беру этот идентификатор учетной записи, заменяю его переменной и запускаю скрипт:
import http.client
import mimetypes
def lambda_handler(event,context):
account = ' *accountID* '
conn = http.client.HTTPSConnection("app.deepsecurity.trendmicro.com", 443)
payload = "{\n \"crossAccountRoleArn\": \"arn:aws:iam::" + account + ":role/*role*\",\n \"workspacesEnabled\": true\n}"
headers = {
'api-version': 'v1',
'Content-Type': 'application/json',
'api-secret-key': 'string'
}
conn.request("POST", "/api/awsconnectors", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
То, что я хотел бы сделать, это написать некоторый код в лямбда-функцию, которая извлекает идентификатор учетной записи из события CloudTrail, запустившего функцию Lambda, и использовать его для замены строки переменной для завершения этого сценария, по существу, автоматизируя процесс.
Кто-нибудь знает способ выполнить sh это?
Заранее спасибо!
РЕДАКТИРОВАТЬ: Мне нужно проверить это перед реализацией, но я не могу свободно создавать учетные записи для проб и ошибок. Если бы вы также могли предоставить средства для извлечения идентификатора учетной записи из существующего журнала CloudTrail, чтобы я мог проверить его работу, это было бы очень полезно.
Я тестировал экземпляры EC2 чтобы получить идентификатор экземпляра, но AWS создание учетной записи и создание экземпляра EC2 кажутся слишком разными, чтобы точно проверить это.