logstash-plugins / logstash-output-s3

Apache License 2.0
58 stars 151 forks source link

validate_credentials_on_root_bucket is ignored #258

Open deepak5127 opened 1 year ago

deepak5127 commented 1 year ago

Logstash information:

Please include the following information:

  1. Logstash version = 7.7.1
  2. Logstash installation source = docker
  3. How is Logstash being run = docker
  4. How was the Logstash Plugin installed = installed via Docker build. RUN bin/logstash-plugin install --version 4.4.1 logstash-output-s3

JVM (e.g. java -version):

Bundled JVM

Description of the problem including expected versus actual behavior:

Steps to reproduce:

Configured something like this in output,

output { if [@metadata][type] == 'FAILED_PROCESSING' { s3 { id => "id1" bucket => "bucket_one" prefix => "stat_action_outputs/%{+YYYY}/%{+MM}/%{+dd}/%{+HH}" region => "aws region" rotation_strategy => "size_and_time" time_file => "5" size_file => "10000" codec => "json_lines" encoding => "gzip" tags => ["errors"] temporary_directory => "location 1" validate_credentials_on_root_bucket => false } } else { s3{ id => "id2" bucket => "bucket_two" prefix => "json/%{+YYYY}/%{+MM}/%{+dd}" region => "aws region" rotation_strategy => "size_and_time" time_file => "5" size_file => "10000" codec => "json_lines" encoding => "gzip" tags => ["normal"] temporary_directory => "location 2" validate_credentials_on_root_bucket => false } } }

Getting error

Provide logs (if relevant):

[2023-06-13T09:02:05,290][ERROR][logstash.outputs.s3 ][pipeline_id] Error validating bucket write permissions! {:message=>"uninitialized constant Aws::S3::Object::FileUploader", :class=>"NameError", :backtrace=>["org/jruby/RubyModule.java:3760:in const_missing'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/aws-sdk-resources-2.11.475/lib/aws-sdk-resources/services/s3/object.rb:249:inupload_file'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-s3-4.4.1/lib/logstash/outputs/s3/write_bucket_permission_validator.rb:43:in upload_test_file'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-s3-4.4.1/lib/logstash/outputs/s3/write_bucket_permission_validator.rb:18:invalid?'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-s3-4.4.1/lib/logstash/outputs/s3.rb:215:in register'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:126:inregister'", "org/logstash/config/ir/compiler/AbstractOutputDelegatorExt.java:68:in register'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:216:inblock in register_plugins'", "org/jruby/RubyArray.java:1809:in each'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:215:inregister_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:520:in maybe_setup_out_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:228:instart_workers'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:170:in run'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:125:inblock in start'"]}

[2023-06-13T09:02:05,294][ERROR][logstash.javapipeline ][pipeline_id] Pipeline aborted due to error {:pipeline_id=>"stat_aciton_outputs", :exception=>#<LogStash::ConfigurationError: Logstash must have the privileges to write to root bucket bucket_one, check your credentials or your permissions.>, :backtrace=>["/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-s3-4.4.1/lib/logstash/outputs/s3.rb:216:in register'", "org/logstash/config/ir/compiler/OutputStrategyExt.java:126:inregister'", "org/logstash/config/ir/compiler/AbstractOutputDelegatorExt.java:68:in register'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:216:inblock in register_plugins'", "org/jruby/RubyArray.java:1809:in each'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:215:inregister_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:520:in maybe_setup_out_plugins'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:228:instart_workers'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:170:in run'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:125:inblock in start'"], "pipeline.sources"=>["/usr/share/logstash/pipeline/stat_aciton_outputs.conf"], :thread=>"#"}