#terraform #aws-fargate #datadog #aws-secrets-manager #firelens
#терраформирование #aws-фаргейт #список данных #aws-secrets-manager #firelens
Вопрос:
Я пытаюсь отправить свои журналы ECS Fargate в Datadog. Чтобы сделать это, мне нужно передать мой Datadog API_KEY в качестве поля в logConfiguration
объекте. Мне нужно защитить свой API_KEY, поэтому я использую AWS Secrets Manager через secretOptions
ключ logConfiguration
объекта.
Я следую инструкциям AWS, изложенным здесь. Полные инструкции с сайта Datadog можно найти здесь
По какой-то причине я не вижу, чтобы журналы отображались в datadog. Вот раздел конфигурации журнала моего кода Terraform в разделе container_definitions
объект aws_ecs_task_definition
ресурса:
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "myservice",
"dd_source": "mysource",
"dd_message_key": "log",
"dd_tags": "env:dev",
"TLS": "on",
"provider": "ecs"
},
"secretOptions": [{
"name": "apikey",
"valueFrom": "arn:aws:secretsmanager:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:secret:mysecret"
}]
}
Если я извлекаю secretOptions
и добавляю apikey в виде открытого текста, журналы отображаются на консоли datadog:
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "myservice",
"dd_source": "mysource",
"dd_message_key": "log",
"dd_tags": "env:dev",
"TLS": "on",
"provider": "ecs",
"apikey": "myapikey"
}
}
Я, конечно, не могу просто отправить свой API_KEY открытым текстом. Разве secretOptions
just не работает для Datadog? Любая помощь приветствуется.
Ответ №1:
По крайней мере, документация предполагает это: «Используйте секрет определения задачи, чтобы избежать раскрытия apikey в виде простого текста».
Здесь работает как шарм. Та же конфигурация, что и в Terraform 0.15.3 и AWS Provider 3.41.0