Terraform Fargate容器“定义字段”;“秘密选择”;不将datadog API_密钥传递到日志配置
我正在尝试将我的ECS Fargate日志发送到Datadog。为此,我需要将Datadog API_键作为Terraform Fargate容器“定义字段”;“秘密选择”;不将datadog API_密钥传递到日志配置,terraform,aws-fargate,datadog,aws-secrets-manager,firelens,Terraform,Aws Fargate,Datadog,Aws Secrets Manager,Firelens,我正在尝试将我的ECS Fargate日志发送到Datadog。为此,我需要将Datadog API_键作为logConfiguration对象中的字段传递。我需要保护我的API_密钥,以便通过logConfiguration对象的secretOptions密钥使用AWS Secrets Manager 我正在遵循AWS制定的步骤。 可以找到Datadog站点的完整步骤 由于某些原因,我看不到日志显示在datadog中。以下是我的地形代码的日志配置部分,位于aws\u ecs\u task\u定
logConfiguration
对象中的字段传递。我需要保护我的API_密钥,以便通过logConfiguration
对象的secretOptions
密钥使用AWS Secrets Manager
我正在遵循AWS制定的步骤。
可以找到Datadog站点的完整步骤
由于某些原因,我看不到日志显示在datadog中。以下是我的地形代码的日志配置部分,位于aws\u ecs\u task\u定义
资源的container\u定义
对象下:
"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_密钥。
secretOptions
是否不适用于Datadog?非常感谢您的帮助。至少文档建议:“使用TaskDefinition机密以避免以纯文本形式公开apikey。”
在这里很有魅力。与Terraform 0.15.3和AWS Provider 3.41.0使用的配置相同