@@ -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