我在许多容器化服务上运行Filebeats,以收集日志并将其发送到Logstash(v5.3.1)容器,该容器又将其上传到AWS S3。

我已经启用了具有默认kms的服务器端加密功能,可以对静态日志进行加密,并且工作正常。 但是,当我添加一个桶策略(如果未启用kms sse时拒绝访问)时,logstash失败,并显示以下错误:ERROR logstash.outputs.s3-验证桶写入权限时出错! {:message =>“访问被拒绝”,:class =>“ Aws :: S3 :: Errors :: AccessDenied”}

一旦我从策略中删除了拒绝部分,它就会再次起作用。

Logstash输出配置如下:

 output {
      s3{
        server_side_encryption           => true
        server_side_encryption_algorithm => "aws:kms"
        region => "XXXXXX"
        bucket => "XXXXX"
        prefix => "XXXXXXXX"
      }
    }

S3存储桶策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": “Logging bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::XXXXXXXXXXX:root"
                ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::bucket_name_12343456/*”
        },
        {
            "Sid": "DenyIncorrectEncryptionHeader",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket_name_12343456/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "aws:kms"
                }
            }
        },
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucket_name_12343456/*",
            "Condition": {
                "Null": {
                    "s3:x-amz-server-side-encryption": "true"
                }
            }
        }
    ]
}

奇怪的是,当我删除上述策略的Deny *部分时,它起作用了:文件被写入S3存储桶并被标记为:服务器端加密AWS-KMS KMS密钥ID XXXXXXXXXXX

最后,我进行的测试是简单地调用具有加密功能的aws cp,此调用成功完成!

#1楼 票数:0 已采纳

我有一个类似的问题。 我相信发生这种情况是因为在启动过程中,logstash试图通过将测试文件放在存储桶的根目录(忽略加密设置)并随后再次将其删除来验证其是否具有足够的权限来写入存储桶。

您可以通过向输出配置添加validate_credentials_on_root_bucket => false来禁用此行为。 对我来说,这解决了这个问题。

  ask by issykazz translate from so

未解决问题?本站智能推荐:

3回复

带有Filebeat错误的Logstash:无法执行操作

嗨,我正在尝试使用 Filebeat 和 Logstash 设置日志分析。 以下是我所做的更改 这是我的 logstash 配置文件。 运行上述程序时,我看到以下错误: 我对这种集成很陌生,我不确定应该在哪里查看。 请帮我。
1回复

当多个数据同时写入文件时,Logstash无法正常工作

我正在尝试将日志从文件插入到 clickhouse 数据库。 我已经通过手动在文件中插入几行来完成配置和测试。 但是,当我尝试对不断写入的实时日志文件执行相同操作时,logstash 无法正常使用它。 当我执行“echo 'some log here' >> /tmp/testing.l
1回复

启动logstash时出现HostUnreachableError

启动 logstash 时发生错误: 我正在通过以下方式启动 logstash: 我也通过以下方式测试了配置: 测试返回 CONF OK 如何解决这个错误? 请帮忙!
1回复

无法启动面临权限问题的logstash

我正在使用以下方法测试我的配置: 并获得以下错误: 我已经尝试 a=giving 权限给 logstash 用户到完整目录: 但还是同样的错误。 请帮忙
1回复

输出元数据时Logstash停止

我正在尝试按照本教程设置ELK Stack: https : //www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14- 0
2回复

Logstash无法从Beats中读取logtype字段

我在一个节点上运行了logstash filebeat和elasticsearch。 我试图获取logstash以标识标记为“ syslog”的日志并将其转储到名为“ syslog”的索引中,但是似乎看不到该标签,因为它们都进入了“未分类”索引(我捕获了所有默认值)指数) 这是我的节奏配
1回复

FileBeat无法与另一个实例(ELK堆栈)的logstash连接

我在一个运行良好的EC2实例上具有ELK堆栈。 在我的客户端服务器中,我安装了filebeat,它应该将日志数据从客户端服务器发送到logstash。 但是我在Elasticsearch(或Kibana)中看不到任何数据,当我在filebeat中检查日志时,看到以下错误消息:“ ERR连接错
1回复

LogStash错误:无法在1:708的START_OBJECT上获取文本

我正在尝试配置 SpringBoot <> FileBeat <> LogStash <> ElasticSearch <> Kibana。 但是我在 LogStash 遇到错误,这是我的代码片段: filebeat.yml: logstash.c