【问题标题】:ECS: firelens container can not push logs to S3ECS:firelens 容器无法将日志推送到 S3
【发布时间】:2021-07-07 03:19:31
【问题描述】:

我目前正在将 ECS 任务(EC2 托管)用于使用 firelens Fluent Bit 作为日志路由器的 Web 应用程序。我使用this plug-in 将输出目标设置为S3,但它收到如下访问错误:[error] [output:s3:s3.3] PutObject API responded with error='AccessDenied', message='Access Denied

我的 Fluent Bit 的配置文件是这样的:

[OUTPUT]
    Name          s3
    Match         app
    region        ap-northeast-1
    bucket        BUCKET_NAME
    s3_key_format /logs/app/%Y/%m/%d/%H/logs_ecs_$uuid_flush.txt
    store_dir     /tmp/fluent-bit/s3
    upload_chunk_size 10m
    upload_timeout 10s

我尝试的是:

  • 将 AmazonS3FullAccess 策略附加到任务角色。
  • 添加允许从任务角色访问的存储桶策略,如下所示:
    {
       "Effect": "Allow",
       "Principal": {
           "AWS": "TASK_ROLE_ARN"
       },
       "Action": "s3:*",
       "Resource": [
          "arn:aws:s3:::BUCKET_NAME",
          "arn:aws:s3:::BUCKET_NAME/*"
      ]
    }
    

这些都不能解决问题。有没有我遗漏的配置?

感谢您的帮助。

【问题讨论】:

  • 你可以回答你的问题,而不是用解决方案更新问题
  • 感谢您的评论!我会移动解决方案来回答。

标签: amazon-s3 amazon-ecs fluent-bit


【解决方案1】:

我自己找到了解决方案。我的 Fluent Bit 容器正在使用其主机实例的角色,因此只需为角色添加权限即可解决问题。

【讨论】:

    猜你喜欢
    • 2016-01-12
    • 2018-05-23
    • 2017-10-20
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多