Fargate container_definition 字段“secretOptions”未将 datadog API_KEY 传递给 logConfiguration

Sog*_*gun 5 datadog terraform aws-fargate aws-secrets-manager firelens

我正在尝试将我的 ECS Fargate 日志发送到 Datadog。为此,我需要将 Datadog API_KEY 作为logConfiguration对象中的字段传递。我需要保护我的 API_KEY,因此我通过secretOptions以下密钥使用 AWS Secrets ManagerlogConfiguration使用 AWS Secrets Manager 。

我正在按照此处列出的 AWS 步骤进行操作。Datadog 网站的完整步骤可在此处找到

由于某种原因,我没有看到日志显示在 datadog 中。container_definitions这是资源对象下我的 Terraform 代码的日志配置部分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"
                }]
}
Run Code Online (Sandbox Code Playgroud)

如果我取出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"
   }
}
Run Code Online (Sandbox Code Playgroud)

我当然不能只以明文形式发送我的 API_KEY。secretOptions只是对 Datadog 不起作用吗?任何帮助表示赞赏。

Mat*_*ias 0

至少文档表明:“使用 TaskDefinition 秘密来避免以纯文本形式暴露 apikey。”

数据狗文档

在这里就像一个魅力。Terraform 0.15.3 和 AWS Provider 3.41.0 使用相同的配置