AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
Amazon MSK クラスターに接続しようとすると発生するエラーをトラブルシューティングする方法を教えてください。
Amazon Managed Streaming for Apache Kafka (Amazon MSK) クラスターに接続しようとすると、エラーが発生します。
解決策
特定の認証タイプに関連しないエラー
Amazon MSK クラスターに接続しようとすると、使用中の認証タイプとは関連しない、次のエラーのいずれかが発生する場合があります。
java.lang.OutOfMemoryError: Java ヒープスペース
クライアントプロパティファイルを使用せずにクラスター操作用のコマンドを実行すると、OutOfMemoryError が発生します。この問題を解決するには、認証の種類に応じた適切なプロパティを client.properties ファイルに含めます。
AWS Identity and Access Management (IAM) 認証ポートを使用するコマンド例
./kafka-topics.sh --create --bootstrap-server $BOOTSTRAP:9098 --replication-factor 3 --partitions 1 --topic TestTopic
IAM 認証ポートとクライアントプロパティファイルを使用するコマンド例
./kafka-topics.sh --create --bootstrap-server $BOOTSTRAP:9098 --command-config client.properties --replication-factor 3 --partitions 1 --topic TestTopic
org.apache.kafka.common.errors.TimeoutException: ノード割り当てを待ってタイムアウトしました。Call: createTopics
クライアントアプリケーションと Amazon MSK クラスター間のネットワーク設定に誤りがある場合、TimeoutException が発生する場合があります。
この問題をトラブルシューティングするには、クライアントマシンから次の接続テストを実行します。
telnet bootstrap-broker port-number
注: bootstrap-broker は、お使いの Amazon MSK クラスターのいずれかのブローカーアドレスに置き換えます。port-number は、クラスターで有効になっている認証に応じて適切なポート値に置き換えます。
クライアントマシンがブローカーにアクセスできる場合は、接続に問題はありません。クライアントマシンがブローカーにアクセスできない場合は、ネットワーク接続を確認します。セキュリティグループのインバウンドルールとアウトバウンドルールを確認します。
org.apache.kafka.common.errors.TopicAuthorizationException: トピック [test_topic] へのアクセスが許可されていません
IAM 認証を使用しており、アクセスポリシーによって WriteData や ReadData などのトピック操作がブロックされている場合に、TopicAuthorizationException エラーが発生します。
注: ユーザーが必要な認証を使用せずにクラスターに接続した場合、アクセス許可境界とサービスコントロールポリシーもその試行をブロックします。
IAM 以外の認証を使用している場合は、操作をブロックするトピックレベルのアクセスコントロールリスト (ACL) を追加したかどうかを確認します。
次のコマンドを実行し、トピックに適用される ACL を一覧表示します。
bin/kafka-acls.sh --bootstrap-server $BOOTSTRAP:PORT --command-config adminclient-configs.conf --list --topic testtopic
ZooKeeperClientTimeoutException
クライアントが Apache ZooKeeper 文字列を使用してクラスターへの接続を試行したが、接続を確立できなかった場合、ZooKeeperClientTimeoutException エラーが発生します。このエラーは、Apache ZooKeeper の文字列が誤っている場合に発生する場合もあります。
誤った Apache Zookeeper 文字列の例
./kafka-topics.sh --zookeeper z-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:2181,z-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:2181,z-3.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:2181 --list[2020-04-10 23:58:47,963] WARN Client session timed out, have not heard from server in 10756ms for sessionid 0x0 (org.apache.zookeeper.ClientCnxn)
出力例
[2020-04-10 23:58:58,581] WARN Client session timed out, have not heard from server in 10508ms for sessionid 0x0 (org.apache.zookeeper.ClientCnxn) [2020-04-10 23:59:08,689] WARN Client session timed out, have not heard from server in 10004ms for sessionid 0x0 (org.apache.zookeeper.ClientCnxn) Exception in thread "main" kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTING at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:259) at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23) at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:253) at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:255) at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:113) at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1858) at kafka.admin.TopicCommand$ZookeeperTopicService$.apply(TopicCommand.scala:321) at kafka.admin.TopicCommand$.main(TopicCommand.scala:54) at kafka.admin.TopicCommand.main(TopicCommand.scala)
この問題を解決するには、次の手順を実行します。
- 正しい Apache ZooKeeper 文字列を使用していることを確認します。
- Amazon MSK クラスターのセキュリティグループが、クライアントのセキュリティグループからのインバウンドトラフィックを Apache ZooKeeper のポートで許可していることを確認してください。
ブローカーが使用できない
60000 ms 経過後、メタデータにトピック 'topicName' が見つかりませんでした。または、ノード -<node-id> (<broker-host>/<broker-ip>:<port>) への接続を確立できませんでした。ブローカーが使用できない可能性があります。(org.apache.kafka.clients.NetworkClient)
次のいずれかに当てはまる場合、上記のエラーが発生する場合があります。
- プロデューサーまたはコンシューマーがブローカーのホストとポートに接続できない。
- ブローカーの文字列が誤っている。
クライアントまたはブローカーの接続が最初は機能していたにもかかわらず、このエラーが発生した場合は、ブローカーが使用できない可能性があります。
このエラーは、仮想プライベートクラウド (VPC) 外部から、ブローカー文字列を使用してクラスターにアクセスするデータを生成した場合にも発生する場合があります。
プロデューサーブローカーの文字列例
./kafka-console-producer.sh --broker-list b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9092,b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9092 --topic test
出力例
[2020-04-10 23:51:57,668] ERROR Error when sending message to topic test with key: null, value: 1 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Topic test not present in metadata after 60000 ms.
コンシューマーブローカーの文字列例
./kafka-console-consumer.sh --bootstrap-server b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9092,b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9092 --topic test
出力例
[2020-04-11 00:03:21,157] WARN [Consumer clientId=consumer-console-consumer-88994-1, groupId=console-consumer-88994] Connection to node -1 (b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com/172.31.6.19:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2020-04-11 00:04:36,818] WARN [Consumer clientId=consumer-console-consumer-88994-1, groupId=console-consumer-88994] Connection to node -2 (b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com/172.31.44.252:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) [2020-04-11 00:05:53,228] WARN [Consumer clientId=consumer-console-consumer-88994-1, groupId=console-consumer-88994] Connection to node -1 (b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com/172.31.6.19:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
この問題をトラブルシューティングするには、次の手順を実行します。
- 正しいブローカー文字列とポートを使用していることを確認してください。
- ブローカーが使用できない場合は、Amazon CloudWatchメトリクス ActiveControllerCount を参照し、コントローラーが当該期間中有効であったことを確認します。メトリクスの値が 1 以外の場合は、クラスター内のいずれかのブローカーが使用できない可能性があります。
- ZooKeeperSessionState メトリクスを参照し、ブローカーが Apache ZooKeeper ノードと継続的に通信していることを確認します。
- ブローカーでの障害の原因を把握するには、KafkaDataLogsDiskUsed メトリクスを参照し、ブローカーがストレージ容量を使い果たしたかどうかを判断します。詳細については、「CloudWatch で標準ブローカーを監視するための Amazon MSK メトリクス」を参照してください。
- ネットワーク構成が問題の原因であるかどうかを確認します。Amazon MSK リソースは VPC 内でプロビジョニングされます。Amazon MSK クラスターに接続するか、同じ VPC 内のプライベートネットワーク経由でクラスターから生成して使用する必要があります。詳細については、「AWS 内からクラスターにアクセスできない:ネットワークの問題」および「AWS ネットワーク内にある、クラスターの Amazon VPC 以外の場所から Amazon MSK クラスターに接続する方法を教えてください」を参照してください。
トピックがメタデータで欠落している
org.apache.kafka.common.errors.TimeoutException: 60000 ms 経過後、トピック test がメタデータで見つかりませんでした
書き込もうとしているトピックが Amazon MSK に存在しない場合、上記のエラーが発生します。トピックが Amazon MSK クラスター内にあるかどうかを確認します。クライアント構成で、正しいブローカー文字列とポートを使用していることを確認します。トピックがない場合は、Amazon MSK でトピックを作成するか、クラスター設定で auto.create.enable を true に設定します。auto.create.enable が true に設定されている場合、トピックは自動的に作成されます。
このエラーは、トピックはあるがパーティションがない場合にも発生する可能性があります。たとえば、単一のパーティション [0] があり、プロデューサーがパーティション [1] に接続しようとした場合が該当します。
Amazon MSK クラスターのセキュリティグループは、適切なポートでクライアントアプリケーションのセキュリティグループからのインバウンドトラフィックを許可する必要があります。
システムが以前動作していたにもかかわらず、突然エラーが発生した場合は、次の手順を実行して Amazon MSK ブローカーの状態を確認します。
- ActiveControllerCount メトリクスを確認します。値は 1 である必要があります。メトリクスの値がそれ以外の場合は、クラスター内のいずれかのブローカーが使用できなくなっています。
- ZooKeeperSessionState メトリクスを参照し、ブローカーが ZooKeeper ノードと継続的に通信していることを確認します。
- KafkadatalogsDiskUsed メトリクスを監視して、ブローカーのストレージ容量が不足していないことを確認します。
正しい設定を行わずに VPC の外部からクラスターへのアクセスを試みたかどうかを確認します。デフォルトでは、Amazon MSK リソースは VPC 内でプロビジョニングされます。同じ VPC 内のプライベートネットワーク経由で接続する必要があります。
VPC の外部からクラスターにアクセスを試みる場合は、AWS Client VPN や AWS Direct Connect などの必要なネットワーク設定を行う必要があります。
Kafka クライアントのプロデューサーまたはコンシューマーが正しく設定されていない
Kafka クライアントのプロデューサーまたはコンシューマーの構成が誤っている状況を解決するために、クライアントの設定に正しいブートストラップサーバーが含まれていることを確認します。さらに、構成に必要なセキュリティ設定および、Kafka-Client と Spring Boot の互換バージョンが含まれていることを確認します。
TLS クライアント認証に固有のエラー
ブートストラップブローカーが切断された
ブートストラップブローカー <broker-host>:9094 (id:-<broker-id> rack: null) が切断されました
SSL/TLS クライアント認証が有効になっているクラスターに接続しようとすると、上記のエラーが表示されることがあります。
プロデューサーまたはコンシューマーが TLS ポート 9094 経由で SSL/TLS 暗号化クラスターに接続しようとしたが、SSL/TLS 構成を渡さなかった場合にも、このエラーが発生する場合があります。この問題を解決するには、SSL/TLS 構成を設定します。
次の例では、プロデューサーがクラスターに接続しようとするとエラーが発生します。
./kafka-console-producer.sh --broker-list b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094,b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 --topic test[2020-04-10 18:57:58,019] WARN [Producer clientId=console-producer] Bootstrap broker b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -2 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
出力例
[2020-04-10 18:57:58,342] WARN [Producer clientId=console-producer] Bootstrap broker b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -2 rack: null) disconnected (org.apache.kafka.clients.NetworkClient) [2020-04-10 18:57:58,666] WARN [Producer clientId=console-producer] Bootstrap broker b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
次の例では、コンシューマーがクラスターに接続しようとするとエラーが発生します。
./kafka-console-consumer.sh --bootstrap-server b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094,b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 --topic test[2020-04-10 19:09:03,277] WARN [Consumer clientId=consumer-console-consumer-79102-1, groupId=console-consumer-79102] Bootstrap broker b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
出力例
[2020-04-10 19:09:03,596] WARN [Consumer clientId=consumer-console-consumer-79102-1, groupId=console-consumer-79102] Bootstrap broker b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient) [2020-04-10 19:09:03,918] WARN [Consumer clientId=consumer-console-consumer-79102-1, groupId=console-consumer-79102] Bootstrap broker b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 (id: -2 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
クラスターのクライアント認証が有効な場合は、AWS プライベート認証機関の追加パラメータを含める必要があります。詳細については、「Amazon MSK の相互 TLS クライアント認証」を参照してください。
キーストアのアクセスエラー
「ERROR: キーストアの変更時刻を取得できませんでした: <configure-path-to-truststore>」
または、
「キーストアをロードできませんでした」
トラストストアを誤って設定し、プロデューサとコンシューマのトラストストアファイルをロードした場合に、上記のエラーが発生する場合があります。この問題を解決するには、SSL/TLS 設定でトラストストアファイルの正しいパスを指定します。
誤ったコンシューマーブローカーの文字列例
./kafka-console-consumer --bootstrap-server b-2.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094,b-1.encryption.3a3zuy.c7.kafka.us-east-1.amazonaws.com:9094 --topic test --consumer.config /home/ec2-user/ssl.config
出力例
[2020-04-11 10:39:12,194] ERROR Modification time of key store could not be obtained: /home/ec2-ser/certs/kafka.client.truststore.jks (org.apache.kafka.common.security.ssl.SslEngineBuilder) java.nio.file.NoSuchFileException: /home/ec2-ser/certs/kafka.client.truststore.jks [2020-04-11 10:39:12,253] ERROR Unknown error when running consumer: (kafka.tools.ConsoleConsumer$) Caused by: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: org.apache.kafka.common.KafkaException: Failed to load SSL keystore /home/ec2-ser/certs/kafka.client.truststore.jks of type JKS
このエラーは、トラストストアまたはキーストアファイルが破損しているか、トラストストアファイルのパスワードが誤っている場合にも発生する可能性があります。
SSL/TLS ハンドシェイクの失敗
トピック test へのメッセージ送信中にエラーが発生しました。キー: null、値: 0。エラー (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.SslAuthenticationException: SSL ハンドシェイクが失敗しました。
または、
ノード<broker-id> (<broker-hostname>/<broker-hostname>:9094) への接続が失敗しました。原因: SSL ハンドシェイクが失敗しました (org.apache.kafka.clients.NetworkClient)
プロデューサまたはコンシューマのキーストアを誤って設定し、認証に失敗した場合に、上記のいずれかのエラーが発生する場合があります。キーストアが正しく設定されていることを確認してください。
プロデューサーのキーストアでブローカー文字列が誤っている場合の例
./kafka-console-producer --broker-list b-2.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094,b-1.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094,b-4.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094 --topic example --producer.config/home/ec2-user/ssl.config
出力例
[2020-04-11 11:13:19,286] ERROR [Producer clientId=console-producer] Connection to node -3 (b-4.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com/172.31.6.195:9094) failed authentication due to: SSL handshake failed (org.apache.kafka.clients.NetworkClient)
コンシューマーのキーストアでブローカー文字列が誤っている場合の例
./kafka-console-consumer --bootstrap-server b-2.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094,b-1.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094,b-4.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com:9094 --topic example --consumer.config/home/ec2-user/ssl.config
出力例
[2020-04-11 11:14:46,958] ERROR [Consumer clientId=consumer-1, groupId=console-consumer-46876] Connection to node -1 (b-2.tlscluster.5818ll.c7.kafka.us-east-1.amazonaws.com/172.31.15.140:9094) failed authentication due to: SSL handshake failed (org.apache.kafka.clients.NetworkClient) [2020-04-11 11:14:46,961] ERROR Error processing message, terminating consumer process: (kafka.tools.ConsoleConsumer$) org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed
キーストアのパスワードが誤っている
java.io.IOException: キーストアのパスワードが誤っています
キーストアまたはトラストストアのパスワードが正しくない場合、上記のエラーが発生する場合があります。
この問題をトラブルシューティングするには、次のコマンドを実行し、キーストアまたはトラストストアのパスワードが正しいかどうかを確認します。
keytool -list -keystore kafka.client.keystore.jksEnter keystore password: Keystore type: PKCS12 Keystore provider: SUN Your keystore contains 1 entry schema-reg, Jan 15, 2020, PrivateKeyEntry, Certificate fingerprint (SHA1): 4A:F3:2C:6A:5D:50:87:3A:37:6C:94:5E:05:22:5A:1A:D5:8B:95:ED
キーストアまたはトラストストアのパスワードが正しくない場合、次のエラーが発生します。
keytool error: java.io.IOException: キーストアのパスワードが誤っています。
上記のコマンドの詳細出力を表示するには、-v フラグを追加します。
keytool -list -v -keystore kafka.client.keystore.jks
上記のコマンドを実行することで、キーストアが破損していないかどうかを確認することもできます。
プロデューサーおよびコンシューマーの SSL/TLS 構成で、エイリアスに関連付けられている秘密鍵の設定が誤っている場合にも、このエラーが発生する場合があります。これが問題の原因かどうかを判断するには、次のコマンドを実行します。
keytool -keypasswd -alias schema-reg -keystore kafka.client.keystore.jks
エイリアスのシークレット用のパスワードが正しい場合は、秘密鍵用の新しいパスワードを入力するよう求められます。
Enter keystore password: Enter key password for <schema-reg> New key password for <schema-reg>: Re-enter new key password for <schema-reg>:
それ以外の場合は、コマンドを実行することはできず、次のメッセージが表示されます。
キーツールエラー: java.security.UnrecoverableKeyException: キーの取得に失敗しました: 所定の最後のブロックは正しくパディングされていません。復号化で不正なキーを使用したことが問題の原因である可能性があります。
エイリアスがキーストアに属しているかどうかを確認するには、次のコマンドを実行します。
keytool -list -keystore kafka.client.keystore.jks -alias schema-reg
出力例
Enter keystore password: schema-reg, Jan 15, 2020, PrivateKeyEntry, Certificate fingerprint (SHA1): 4A:F3:2C:6A:5D:50:87:3A:37:6C:94:5E:05:22:5A:1A:D5:8B:95:ED
IAM クライアント認証に固有のエラー
認証失敗、アクセス拒否
ノード -1 (b-1.testcluster.abc123.c2.kafka.us-east-1.amazonaws.com/10.11.111.123:9098) への接続が失敗しました。原因: アクセスが拒否されました
または、
org.apache.kafka.common.errors.SaslAuthenticationException: アクセスが拒否されました
アクセスポリシー、アクセス許可境界、SCP により、必要な認証を渡していないユーザーがブロックされた場合に、上記のエラーのいずれかが発生します。
この問題を解決するには、IAM アクセスコントロールを使用して IAM ロールがクラスター操作を実行できるようにします。
SaslAuthenticationException
org.apache.kafka.common.errors.SaslAuthenticationException: 接続数が多すぎます
または、
org.apache.kafka.common.errors.SaslAuthenticationException: 内部エラー
IAM アクセスコントロールを使用して kafka.t3.small ブローカータイプでクラスターを実行し、接続クォータを超えた場合に、上記のエラーが発生します。kafka.t3.small インスタンスタイプは、1 秒につき、ブローカーごとに 1 つの TCP 接続のみを受け入れます。接続クォータを超えると、作成テストは失敗します。詳細については、「Amazon MSK と IAM の連携のしくみ」を参照してください。
これらの問題を解決するには、次の操作を行います。
- Amazon MSK Connect ワーカー設定で reconnect.backoff.ms および reconnect.backoff.max.ms の値を 1000 以上に更新します。
- kafka.m5.large などの、より大容量のブローカーインスタンスタイプにアップグレードします。詳細については、「クラスターサイズの最適化: 標準ブローカーあたりのパーティション数」を参照してください。
SASL/SCRAM クライアント認証に固有のエラー
クライアントの SASL メカニズムが無効になっている
ノード -1 (b-1-testcluster.abc123.c7.kafka.us-east-1.amazonaws.com/3.11.111.123:9098) への接続が失敗しました。原因: クライアントの SASL メカニズム 'SCRAM-SHA-512' はサーバーで有効化されていません。有効なメカニズムは [AWS_MSK_IAM] です
または、
ノード -1 (b-1-testcluster.abc123.c7. kafka.us-east-1.amazonaws.com /3.11.111.123:9096) への接続が失敗しました。原因: クライアントの SASL メカニズム 'AWS_MSK_IAM' がサーバーで有効になっていません。有効なメカニズムは [SCRAM-SHA-512] です
ポート番号がクライアントプロパティファイルの Simple Authentication and Security Layer (SASL) メカニズムと一致しない場合、上記のエラーが発生します。これは、クラスター操作を実行するためのコマンドで使用するプロパティファイルです。
Simple Authentication and Security Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) を使用するクラスター内のブローカーと通信するには、次のポートを使用します。
- AWS 内からのアクセス用ポート 9096
- パブリックアクセス用ポート 9196
IAM アクセスコントロールを使用するクラスター内のブローカーと通信するには、AWS 内からのアクセスにはポート 9098 を使用し、パブリックアクセスにはポート 9198 を使用します。
SASL 認証情報の認証エラー
ノード -1 (b-3.testcluster.abc123.c2. kafka.us-east-1.amazonaws.com /10.11.111.123:9096) への接続が失敗しました。原因: SASL メカニズム SCRAM-SHA-512 の認証情報が無効なため、認証中に認証が失敗しました
ユーザー認証情報を AWS Secrets Manager に格納しており、その認証情報を Amazon MSK クラスターに関連付けていることを確認してください。
ポート 9096 経由でクラスターにアクセスするには、AWS Secrets Manager のユーザーとパスワードはクライアントのプロパティと同じものである必要があります。
get-secret-value コマンドを実行してシークレットを取得する際は、AWS Secrets Manager のパスワードには特殊文字が含まれていないことを確認してください。
ClusterAuthorizationException
org.apache.kafka.common.errors.ClusterAuthorizationException: リクエスト Request(processor=11, connectionId=INTERNAL_IP-INTERNAL_IP-0, session=Session(User:ANONYMOUS,/INTERNAL_IP), listenerName=ListenerName(REPLICATION_SECURE), securityProtocol=SSL, buffer=null) は許可されていません
次の両方の条件に当てはまる場合、上記のエラーが発生します。
- Amazon MSK クラスターで SASL/SCRAM 認証が有効になっている。
- クラスターの ACL で resourceType が CLUSTER に、operation が CLUSTER_ACTION に設定されている。
上記の設定では内部の Apache Kafka レプリケーションが妨げられるため、Amazon MSK クラスターはかかる設定をサポートしていません。ブローカー間の通信では、ブローカーの ID は ANONYMOUS と表示されます。クラスターで ACL をサポートし、SASL/SCRAM 認証を使用する必要がある場合は、ANONYMOUS ユーザーが ALL 操作を使用できるようにします。
次のコマンドを実行し、ANONYMOUS ユーザーに ALL 操作を許可します。
./kafka-acls.sh --authorizer-propertieszookeeper.connect=example-ZookeeperConnectString --add --allow-principal User:ANONYMOUS --operation ALL --cluster
関連情報
Amazon MSK でプロビジョニングされたクラスターに接続する
Amazon MSK クラスターを SASL/SCRAM 認証で使用する際の一般的な問題をトラブルシューティングする方法を教えてください
