Skip to content

Commit 5b25fda

Browse files
authored
Merge pull request #240 from github-gael-soude/aws-ecs-authentication
add aws ecs authentication
2 parents 48e3d92 + a914bfb commit 5b25fda

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

lib/fluent/plugin/in_cloudwatch_logs.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class CloudwatchLogsInput < Input
2121
config_param :aws_sts_policy, :string, default: nil
2222
config_param :aws_sts_duration_seconds, :time, default: nil
2323
config_param :aws_sts_endpoint_url, :string, default: nil
24+
config_param :aws_ecs_authentication, :bool, default: false
2425
config_param :region, :string, default: nil
2526
config_param :endpoint, :string, default: nil
2627
config_param :ssl_verify_peer, :bool, :default => true
@@ -117,6 +118,10 @@ def start
117118
credentials_options[:client] = Aws::STS::Client.new(:region => @region)
118119
end
119120
options[:credentials] = Aws::AssumeRoleWebIdentityCredentials.new(credentials_options)
121+
elsif @aws_ecs_authentication
122+
# collect AWS credential from ECS relative uri ENV variable
123+
aws_container_credentials_relative_uri = ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
124+
options[:credentials] = Aws::ECSCredentials.new({credential_path: aws_container_credentials_relative_uri}).credentials
120125
else
121126
options[:credentials] = Aws::Credentials.new(@aws_key_id, @aws_sec_key) if @aws_key_id && @aws_sec_key
122127
end

lib/fluent/plugin/out_cloudwatch_logs.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class TooLargeEventError < Fluent::UnrecoverableError; end
2323
config_param :aws_sts_policy, :string, default: nil
2424
config_param :aws_sts_duration_seconds, :time, default: nil
2525
config_param :aws_sts_endpoint_url, :string, default: nil
26+
config_param :aws_ecs_authentication, :bool, default: false
2627
config_param :region, :string, :default => nil
2728
config_param :endpoint, :string, :default => nil
2829
config_param :ssl_verify_peer, :bool, :default => true
@@ -152,6 +153,10 @@ def start
152153
credentials_options[:client] = Aws::STS::Client.new(:region => @region)
153154
end
154155
options[:credentials] = Aws::AssumeRoleWebIdentityCredentials.new(credentials_options)
156+
elsif @aws_ecs_authentication
157+
# collect AWS credential from ECS relative uri ENV variable
158+
aws_container_credentials_relative_uri = ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
159+
options[:credentials] = Aws::ECSCredentials.new({credential_path: aws_container_credentials_relative_uri}).credentials
155160
else
156161
options[:credentials] = Aws::Credentials.new(@aws_key_id, @aws_sec_key) if @aws_key_id && @aws_sec_key
157162
end

0 commit comments

Comments
 (0)