2

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

我正在按照 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"
                }]
}

如果我取出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只是不适用于Datadog吗?任何帮助表示赞赏。

4

1 回答 1

0

至少文档建议它:“使用 TaskDefinition 秘密来避免以纯文本形式公开 apikey。”

数据狗文档

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

于 2021-05-19T09:50:01.760 回答