Импорт отчетов с помощью AWS Lambda Function в AWS Security Hub
Чтобы отправить данные сканирования из AWS Security Hub в Security Center
Для этого используется функция AWS Lambda, написанная на языке Python. Функция извлекает API-ключ из AWS Secrets Manager, формирует запрос с данными сканирования и отправляет его на указанный адрес Security Center.
Шаг 1: Подготовка к интеграции
AWS Lambda: Убедитесь, что у вас настроена и функционирует функция AWS Lambda
AWS Secrets Manager: Создайте секрет в AWS Secrets Manager, содержащий API-ключ для доступа к Security Center. Убедитесь, что у вас есть права на чтение этого секрета
Шаг 2: Создание функции AWS Lambda
Перейдите в консоль AWS Lambda
Создайте новую лямбда-функцию согласно вашим требованиям
Убедитесь, что функция имеет необходимые разрешения для доступа к Secrets Manager и выполнения HTTP-запросов.
Вставьте код в редактор кода вашей функции:
import json
import boto3
import urllib.request
import urllib3
def lambda_handler(event, context):
# Fetch Security Center API key from AWS Secrets Manager
client_sm = boto3.client('secretsmanager')
security_center_secret_raw = client_sm.get_secret_value(
SecretId="<secret_name>"
)
security_center_api_json = json.loads(security_center_secret_raw["SecretString"])
security_center_api_token = "Token " + security_center_api_json['key']
while True:
try:
url = 'https://<security_center_address>/api/v1/scan/import/'
body = {
"file": ("event.json", json.dumps(event)),
"product_name": "AWS",
"product_type": "AWS",
"scanner_name": "AWS Security Hub Scan"
}
data, header = urllib3.encode_multipart_formdata(body)
r = urllib.request.Request(url, data=data)
r.add_header('Authorization', security_center_api_token)
r.add_header('Content-Type', header)
response = urllib.request.urlopen(r)
print(response.getcode())
except Exception as e:
raise e
break
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Замените "<secret_name>" на имя секрета в AWS Secrets Manager, содержащего ваш API-ключ для Security Center
Замените "<security_center_address>" адресом вашего Security Center
Сохраните изменения, внесенные в функцию
Шаг 3: Запустите функцию
В разделе "Тест" консоли AWS Lambda создайте тестовое событие с содержимым, аналогичным вашему отчету, чтобы проверить работу функции
Если функция успешно прошла тестирование, опубликуйте ее
Поздравляем! Теперь ваша функция готова отправлять отчеты на Security Center
Last updated