【问题标题】:How to get data from s3 to logstash?如何从s3获取数据到logstash?
【发布时间】:2015-11-10 06:45:25
【问题描述】:

在logstash配置文件中,我给出了如下输入插件。

input{
  s3{
    bucket => 'bucket_name'
    region => 'eu-west-1'
  }
}

当我启动 logstash 时,它抛出了一个要求提供 AWS 凭证的错误。但我无法提供 AWS access_key_id 和 secret_key。我发现使用 EC2 实例上的 IAM 角色,我们不必为发出这些请求的应用程序显式提供 AWS 凭证。我试图了解如何从a logstash Github issue 配置 IAM 角色,但失败了。请建议我应该如何配置 logstash 文件,以便我可以从 S3 获取数据而无需明确提供 AWS 凭证。

【问题讨论】:

    标签: amazon-web-services amazon-s3 logstash


    【解决方案1】:

    当您创建 EC2 实例时,您可以为其分配一个 IAM 角色。如果您在创建它时不给它一个角色,那么您永远无法给它一个角色。您可以修改角色的属性(例如赋予角色更多或更少的访问权限),但您无法在实例创建后更改实例所具有的角色。

    测试实例是否具有所需凭据的最简单方法是使用命令行工具:

    $ echo $AWS_ACCESS_KEY_ID
    $
    

    这表明我们没有设置环境变量,所以如果我们获取凭据,它们必须是实例凭据。

    $ aws --region=eu-west-1 s3 ls my.bucket
                               PRE some-directory/
                               PRE another-dir/
    2015-11-05 18:03:53        464 little-file
    2014-10-28 15:32:13      19740 bigger-file.html
    $
    

    我能够列出存储桶内容,因此我运行此命令的 EC2 实例必须具有允许它列出此存储桶内容的 IAM 角色!

    【讨论】:

    • 好的,我将创建 EC2 实例并分配一个 IAM 角色。我的疑问是我是否必须在 logstash 文件中指定更多内容。无论如何,我将首先按照您的建议创建和检查。感谢 ypur 响应。
    • 我并不完全清楚哪个版本的 s3 输入插件默认可用。但是,most recent code 在没有提供凭据并在具有角色的机器上运行时会正常运行。确保您的角色具有正确的权限(最简单的方法是安全性差,并为其赋予“S3 完全访问”角色)。
    猜你喜欢
    • 2015-09-26
    • 2019-01-02
    • 2020-07-01
    • 1970-01-01
    • 2019-05-10
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多