logstash-integration-kafka 11.6.0-java → 11.6.1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9d342010bbdc6c64b7380374583eb1d33648c5cd9e8b948e6d40c9c62c120963
4
- data.tar.gz: 3bcf9b167d4cb7cc6d2857d6f81dce26bf09120fed71a2a75d7a54137f6d4a0a
3
+ metadata.gz: 5dd14bd1f2219bc6c12f2e880648a3f5101a2735a0a6b5b223fd9c38b5979a6a
4
+ data.tar.gz: 80902b49827a7127b8b7b4e4e7266738624093cfed80d59fd4b840402df198c1
5
5
  SHA512:
6
- metadata.gz: 1d0097a7d05bbc52065e1f32f6fc8f600052f6eeb75a782bfd270763d73df8150fa74fdadb705bc1eb6e448ed725420642cb6aaeb016bfae058718ec3b8fe0ea
7
- data.tar.gz: 99487e99f6fbfdb52f2b103a2f9fa9504a67253f9591ef3650ccbbcc7eac5cd5ca5170c841e692b17ac9b02d17c356519d6e4a3b7caf3e1a24825e65e3b9aee5
6
+ metadata.gz: c9e51ace320c2c5505f9cce929e5b483e0d9d40193f4a629e337ddec7427fd9a1906b9cd9b4cdbf6a072a1add7ef85b7e8aa00035b1f983317559d3c832ce852
7
+ data.tar.gz: fd49cf285a490cc3b94371dadbca0301d7efea5e34348d908d5f84d4213a6ad77d4d4d0e96b7556518d60f71165af7054ce085eca4bf9c46be2bc95853c17e1c
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 11.6.1
2
+ - Expose the SASL client callback class setting to the Logstash configuration [#177](https://github.com/logstash-plugins/logstash-integration-kafka/pull/177)
3
+ - Adds a mechanism to load AWS IAM authentication as SASL client libraries at startup [#178](https://github.com/logstash-plugins/logstash-integration-kafka/pull/178)
4
+
1
5
  ## 11.6.0
2
6
  - Support additional `oauth` and `sasl` configuration options for configuring kafka client [#189](https://github.com/logstash-plugins/logstash-integration-kafka/pull/189)
3
7
 
@@ -65,6 +65,23 @@ For more information see https://kafka.apache.org/{kafka_client_doc}/documentati
65
65
 
66
66
  Kafka consumer configuration: https://kafka.apache.org/{kafka_client_doc}/documentation.html#consumerconfigs
67
67
 
68
+ [id="plugins-{type}s-{plugin}-aws_msk_iam_auth"]
69
+ ==== AWS MSK IAM authentication
70
+ If you use AWS MSK, the AWS MSK IAM access control enables you to handle both authentication and authorization for your MSK cluster with AWS IAM.
71
+ For more information on this AWS MSK feature see the https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html[AWS documentation].
72
+
73
+ To use this Kafka input with AWS MSK IAM authentication, download the uber jar which contains the client library for
74
+ this specific cloud vendor and all the transitive dependencies from this https://github.com/elastic/logstash-kafka-iams-packages/releases[repository].
75
+ Configure the following setting:
76
+ ```
77
+ security_protocol => "SASL_SSL"
78
+ sasl_mechanism => "AWS_MSK_IAM"
79
+ sasl_iam_jar_paths => ["/path/to/aws_iam_uber.jar"]
80
+ sasl_jaas_config => "software.amazon.msk.auth.iam.IAMLoginModule required;"
81
+ sasl_client_callback_handler_class => "software.amazon.msk.auth.iam.IAMClientCallbackHandler"
82
+ ```
83
+ For more IAM authentication configurations, see the https://github.com/aws/aws-msk-iam-auth[AWS MSK IAM authentication library documentation].
84
+
68
85
  ==== Metadata fields
69
86
 
70
87
  The following metadata from Kafka broker are added under the `[@metadata]` field:
@@ -133,6 +150,7 @@ See the https://kafka.apache.org/{kafka_client_doc}/documentation for more detai
133
150
  | <<plugins-{type}s-{plugin}-sasl_client_callback_handler_class>> |<<string,string>>|No
134
151
  | <<plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url>> |<<string,string>>|No
135
152
  | <<plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name>> |<<string,string>>|No
153
+ | <<plugins-{type}s-{plugin}-sasl_iam_jar_paths>> |<<array,array>>|No
136
154
  | <<plugins-{type}s-{plugin}-sasl_login_callback_handler_class>> |<<string,string>>|No
137
155
  | <<plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms>> |<<number,number>>|No
138
156
  | <<plugins-{type}s-{plugin}-sasl_login_read_timeout_ms>> |<<number,number>>|No
@@ -584,6 +602,14 @@ The URL for the OAuth 2.0 issuer token endpoint.
584
602
 
585
603
  (optional) The override name of the scope claim.
586
604
 
605
+ [id="plugins-{type}s-{plugin}-sasl_iam_jar_paths"]
606
+ ===== `sasl_iam_jar_paths`
607
+ * Value type is <<arrays,array>>
608
+ * There is no default value for this setting.
609
+
610
+ Contains the list of paths to jar libraries that contains cloud providers MSK IAM's clients.
611
+ There is one jar per provider and can be retrieved as described in <<"plugins-{type}s-{plugin}-aws_msk_iam_auth">>.
612
+
587
613
  [id="plugins-{type}s-{plugin}-sasl_login_callback_handler_class"]
588
614
  ===== `sasl_login_callback_handler_class`
589
615
  * Value type is <<string,string>>
@@ -654,6 +680,7 @@ This can be defined either in Kafka's JAAS config or in Kafka's config.
654
680
 
655
681
  http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
656
682
  This may be any mechanism for which a security provider is available.
683
+ For AWS MSK IAM authentication use `AWS_MSK_IAM`.
657
684
  GSSAPI is the default mechanism.
658
685
 
659
686
  [id="plugins-{type}s-{plugin}-schema_registry_key"]
@@ -66,6 +66,23 @@ https://kafka.apache.org/{kafka_client_doc}/documentation.html#producerconfigs
66
66
 
67
67
  NOTE: This plugin does not support using a proxy when communicating to the Kafka broker.
68
68
 
69
+ [id="plugins-{type}s-{plugin}-aws_msk_iam_auth"]
70
+ ==== AWS MSK IAM authentication
71
+ If you use AWS MSK, the AWS MSK IAM access control enables you to handle both authentication and authorization for your MSK cluster with AWS IAM.
72
+ For more information on this AWS MSK feature see the https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html[AWS documentation].
73
+
74
+ To use this Kafka input with AWS MSK IAM authentication, download the uber jar which contains the client library for
75
+ this specific cloud vendor and all the transitive dependencies from this https://github.com/elastic/logstash-kafka-iams-packages/releases[repository].
76
+ Configure the following setting:
77
+ ```
78
+ security_protocol => "SASL_SSL"
79
+ sasl_mechanism => "AWS_MSK_IAM"
80
+ sasl_iam_jar_paths => ["/path/to/aws_iam_uber.jar"]
81
+ sasl_jaas_config => "software.amazon.msk.auth.iam.IAMLoginModule required;"
82
+ sasl_client_callback_handler_class => "software.amazon.msk.auth.iam.IAMClientCallbackHandler"
83
+ ```
84
+ For more IAM authentication configurations, see the https://github.com/aws/aws-msk-iam-auth[AWS MSK IAM authentication library documentation].
85
+
69
86
  [id="plugins-{type}s-{plugin}-options"]
70
87
  ==== Kafka Output Configuration Options
71
88
 
@@ -104,6 +121,7 @@ See the https://kafka.apache.org/{kafka_client_doc}/documentation for more detai
104
121
  | <<plugins-{type}s-{plugin}-sasl_client_callback_handler_class>> |<<string,string>>|No
105
122
  | <<plugins-{type}s-{plugin}-sasl_oauthbearer_token_endpoint_url>> |<<string,string>>|No
106
123
  | <<plugins-{type}s-{plugin}-sasl_oauthbearer_scope_claim_name>> |<<string,string>>|No
124
+ | <<plugins-{type}s-{plugin}-sasl_iam_jar_paths>> |<<array,array>>|No
107
125
  | <<plugins-{type}s-{plugin}-sasl_login_callback_handler_class>> |<<string,string>>|No
108
126
  | <<plugins-{type}s-{plugin}-sasl_login_connect_timeout_ms>> |<<number,number>>|No
109
127
  | <<plugins-{type}s-{plugin}-sasl_login_read_timeout_ms>> |<<number,number>>|No
@@ -420,6 +438,14 @@ The URL for the OAuth 2.0 issuer token endpoint.
420
438
 
421
439
  (optional) The override name of the scope claim.
422
440
 
441
+ [id="plugins-{type}s-{plugin}-sasl_iam_jar_paths"]
442
+ ===== `sasl_iam_jar_paths`
443
+ * Value type is <<arrays,array>>
444
+ * There is no default value for this setting.
445
+
446
+ Contains the list of paths to jar libraries that contains cloud providers MSK IAM's clients.
447
+ There is one jar per provider and can be retrieved as described in <<"plugins-{type}s-{plugin}-aws_msk_iam_auth">>.
448
+
423
449
  [id="plugins-{type}s-{plugin}-sasl_login_callback_handler_class"]
424
450
  ===== `sasl_login_callback_handler_class`
425
451
  * Value type is <<string,string>>
@@ -490,6 +516,7 @@ This can be defined either in Kafka's JAAS config or in Kafka's config.
490
516
 
491
517
  http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
492
518
  This may be any mechanism for which a security provider is available.
519
+ For AWS MSK IAM authentication use `AWS_MSK_IAM`.
493
520
  GSSAPI is the default mechanism.
494
521
 
495
522
  [id="plugins-{type}s-{plugin}-security_protocol"]
@@ -216,6 +216,8 @@ class LogStash::Inputs::Kafka < LogStash::Inputs::Base
216
216
  config :sasl_oauthbearer_scope_claim_name, :validate => :string, :default => 'scope' # Kafka default
217
217
  # SASL login callback handler class
218
218
  config :sasl_login_callback_handler_class, :validate => :string
219
+ # Path to the jar containing client and all dependencies for SASL IAM authentication of specific cloud vendor
220
+ config :sasl_iam_jar_paths, :validate => :array
219
221
  # (optional) The duration, in milliseconds, for HTTPS connect timeout
220
222
  config :sasl_login_connect_timeout_ms, :validate => :number
221
223
  # (optional) The duration, in milliseconds, for HTTPS read timeout.
@@ -224,7 +226,7 @@ class LogStash::Inputs::Kafka < LogStash::Inputs::Base
224
226
  config :sasl_login_retry_backoff_ms, :validate => :number, :default => 100 # Kafka default
225
227
  # (optional) The maximum duration, in milliseconds, for HTTPS call attempts.
226
228
  config :sasl_login_retry_backoff_max_ms, :validate => :number, :default => 10000 # Kafka default
227
- # http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
229
+ # http://kafka.apache.org/documentation.html#security_sasl[SASL mechanism] used for client connections.
228
230
  # This may be any mechanism for which a security provider is available.
229
231
  # GSSAPI is the default mechanism.
230
232
  config :sasl_mechanism, :validate => :string, :default => "GSSAPI"
@@ -149,6 +149,8 @@ class LogStash::Outputs::Kafka < LogStash::Outputs::Base
149
149
  config :security_protocol, :validate => ["PLAINTEXT", "SSL", "SASL_PLAINTEXT", "SASL_SSL"], :default => "PLAINTEXT"
150
150
  # SASL client callback handler class
151
151
  config :sasl_client_callback_handler_class, :validate => :string
152
+ # Path to the jar containing client and all dependencies for SASL IAM authentication of specific cloud vendor
153
+ config :sasl_iam_jar_paths, :validate => :array
152
154
  # The URL for the OAuth 2.0 issuer token endpoint.
153
155
  config :sasl_oauthbearer_token_endpoint_url, :validate => :string
154
156
  # (optional) The override name of the scope claim.
@@ -49,6 +49,7 @@ module LogStash module PluginMixins module Kafka
49
49
  props.put("sasl.login.read.timeout.ms", sasl_login_read_timeout_ms.to_s) unless sasl_login_read_timeout_ms.nil?
50
50
  props.put("sasl.login.retry.backoff.ms", sasl_login_retry_backoff_ms.to_s) unless sasl_login_retry_backoff_ms.nil?
51
51
  props.put("sasl.login.retry.backoff.max.ms", sasl_login_retry_backoff_max_ms.to_s) unless sasl_login_retry_backoff_max_ms.nil?
52
+ sasl_iam_jar_paths&.each {|jar_path| require jar_path }
52
53
  end
53
54
 
54
55
  def reassign_dns_lookup
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-integration-kafka'
3
- s.version = '11.6.0'
3
+ s.version = '11.6.1'
4
4
  s.licenses = ['Apache-2.0']
5
5
  s.summary = "Integration with Kafka - input and output plugins"
6
6
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline "+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-integration-kafka
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.6.0
4
+ version: 11.6.1
5
5
  platform: java
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-07 00:00:00.000000000 Z
11
+ date: 2025-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement