@@ -95,6 +95,7 @@ class Fluent::Kafka2Output < Output
9595 config_set_default :@type , 'json'
9696 end
9797
98+ include Fluent ::KafkaPluginUtil ::AwsIamSettings
9899 include Fluent ::KafkaPluginUtil ::SSLSettings
99100 include Fluent ::KafkaPluginUtil ::SaslSettings
100101
@@ -113,6 +114,7 @@ def initialize
113114 def refresh_client ( raise_error = true )
114115 begin
115116 logger = @get_kafka_client_log ? log : nil
117+ use_long_lived_aws_credentials = @sasl_aws_msk_iam_access_key_id != nil && @sasl_aws_msk_iam_secret_key_id != nil
116118 if @scram_mechanism != nil && @username != nil && @password != nil
117119 @kafka = Kafka . new ( seed_brokers : @seed_brokers , client_id : @client_id , logger : logger , connect_timeout : @connect_timeout , socket_timeout : @socket_timeout , ssl_ca_cert_file_path : @ssl_ca_cert ,
118120 ssl_client_cert : read_ssl_file ( @ssl_client_cert ) , ssl_client_cert_key : read_ssl_file ( @ssl_client_cert_key ) , ssl_client_cert_chain : read_ssl_file ( @ssl_client_cert_chain ) ,
@@ -125,6 +127,26 @@ def refresh_client(raise_error = true)
125127 ssl_ca_certs_from_system : @ssl_ca_certs_from_system , sasl_plain_username : @username , sasl_plain_password : @password , sasl_over_ssl : @sasl_over_ssl ,
126128 ssl_verify_hostname : @ssl_verify_hostname , resolve_seed_brokers : @resolve_seed_brokers ,
127129 partitioner : Kafka ::Partitioner . new ( hash_function : @partitioner_hash_function ) )
130+ elsif use_long_lived_aws_credentials
131+ @kafka = Kafka . new (
132+ seed_brokers : @seed_brokers ,
133+ client_id : @client_id ,
134+ logger : logger ,
135+ connect_timeout : @connect_timeout ,
136+ socket_timeout : @socket_timeout ,
137+ ssl_ca_cert_file_path : @ssl_ca_cert ,
138+ ssl_client_cert : read_ssl_file ( @ssl_client_cert ) ,
139+ ssl_client_cert_key : read_ssl_file ( @ssl_client_cert_key ) ,
140+ ssl_client_cert_chain : read_ssl_file ( @ssl_client_cert_chain ) ,
141+ ssl_ca_certs_from_system : @ssl_ca_certs_from_system ,
142+ sasl_over_ssl : @sasl_over_ssl ,
143+ ssl_verify_hostname : @ssl_verify_hostname ,
144+ resolve_seed_brokers : @resolve_seed_brokers ,
145+ sasl_aws_msk_iam_access_key_id : @sasl_aws_msk_iam_access_key_id ,
146+ sasl_aws_msk_iam_secret_key_id : @sasl_aws_msk_iam_secret_key_id ,
147+ sasl_aws_msk_iam_aws_region : @sasl_aws_msk_iam_aws_region ,
148+ partitioner : Kafka ::Partitioner . new ( hash_function : @partitioner_hash_function )
149+ )
128150 else
129151 @kafka = Kafka . new ( seed_brokers : @seed_brokers , client_id : @client_id , logger : logger , connect_timeout : @connect_timeout , socket_timeout : @socket_timeout , ssl_ca_cert_file_path : @ssl_ca_cert ,
130152 ssl_client_cert : read_ssl_file ( @ssl_client_cert ) , ssl_client_cert_key : read_ssl_file ( @ssl_client_cert_key ) , ssl_client_cert_chain : read_ssl_file ( @ssl_client_cert_chain ) ,
0 commit comments