@@ -17,6 +17,7 @@ class AwsElasticsearchServiceOutput < ElasticsearchOutput
1717 config_param :access_key_id , :string , :default => ""
1818 config_param :secret_access_key , :string , :default => ""
1919 config_param :assume_role_arn , :string , :default => nil
20+ config_param :ecs_container_credentials_relative_uri , :string , :default => nil #Set with AWS_CONTAINER_CREDENTIALS_RELATIVE_URI environment variable value
2021 config_param :assume_role_session_name , :string , :default => "fluentd"
2122 end
2223
@@ -63,10 +64,15 @@ def credentials(opts)
6364 credentials = Aws ::Credentials . new opts [ :access_key_id ] , opts [ :secret_access_key ]
6465 else
6566 if opts [ :assume_role_arn ] . nil?
66- credentials = Aws ::SharedCredentials . new ( {
67- retries : 2
68- } ) . credentials
69- credentials ||= Aws ::InstanceProfileCredentials . new . credentials
67+ if opts [ :ecs_container_credentials_relative_uri ] . nil?
68+ credentials = Aws ::SharedCredentials . new ( { retries : 2 } ) . credentials
69+ credentials ||= Aws ::InstanceProfileCredentials . new . credentials
70+ credentials ||= Aws ::ECSCredentials . new . credentials
71+ else
72+ credentials = Aws ::ECSCredentials . new ( {
73+ credential_path : opts [ :ecs_container_credentials_relative_uri ]
74+ } ) . credentials
75+ end
7076 else
7177 credentials = sts_credential_provider ( {
7278 role_arn : opts [ :assume_role_arn ] ,
0 commit comments