Amazon web services 如何将数据从s3获取到logstash?

Amazon web services 如何将数据从s3获取到logstash?,amazon-web-services,amazon-s3,logstash,Amazon Web Services,Amazon S3,Logstash,在logstash配置文件中,我给出了以下输入插件 input{ s3{ bucket => 'bucket_name' region => 'eu-west-1' } } 当我启动logstash时,它抛出了一个请求AWS凭据的错误。但我无法提供AWS访问密钥id和密钥。我发现,对于EC2实例上的IAM角色,我们不必为发出这些请求的应用程序显式提供AWS凭据。我试图了解如何从配置IAM角色,但失败了。请建议如何配置日志存储文件,以便在不明确提供AWS凭据的

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

input{
  s3{
    bucket => 'bucket_name'
    region => 'eu-west-1'
  }
}
当我启动logstash时,它抛出了一个请求AWS凭据的错误。但我无法提供AWS访问密钥id和密钥。我发现,对于EC2实例上的IAM角色,我们不必为发出这些请求的应用程序显式提供AWS凭据。我试图了解如何从配置IAM角色,但失败了。请建议如何配置日志存储文件,以便在不明确提供AWS凭据的情况下从S3获取数据。

创建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
$
我能够列出bucket内容,因此运行此命令的EC2实例必须具有IAM角色,允许它列出此bucket内容

创建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
$

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

好的,我将创建EC2实例并分配一个IAM角色。我的疑问是,我是否必须在日志文件中指定更多的内容。无论如何,我将首先按照您的建议创建并检查。Thans for ypur response。默认情况下,我并不完全清楚s3输入插件的哪个版本可用。但是,在没有提供凭据且在具有角色的计算机上运行时,将正常运行。确保您的角色具有正确的权限(最简单的方法是执行错误的安全性并将其授予“S3完全访问”角色)。好的,我将创建EC2实例并分配IAM角色。我的疑问是,我是否必须在日志文件中指定更多的内容。无论如何,我将首先按照您的建议创建并检查。Thans for ypur response。默认情况下,我并不完全清楚s3输入插件的哪个版本可用。但是,在没有提供凭据且在具有角色的计算机上运行时,将正常运行。确保您的角色具有正确的权限(最简单的方法是执行错误的安全性,并将其授予“S3完全访问”角色)。