Comment résoudre les problèmes de connexion à mon cluster Amazon MSK ?

Lecture de 15 minute(s)
0

Des problèmes surviennent lorsque j’essaie de me connecter à mon cluster Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Résolution

Lorsque vous essayez de vous connecter à un cluster Amazon MSK, vous pouvez rencontrer les types d’erreurs suivants :

  • Erreurs non spécifiques au type d’authentification du cluster
  • Erreurs spécifiques à l’authentification du client TLS
  • Erreurs spécifiques à l’authentification du client de gestion des identités et des accès AWS (IAM)
  • Erreurs spécifiques à l’authentification du client Simple Authentication and Security Layer/Salted Challenge Response Mechanism (SASL/SCARM)

Erreurs non liées à un type d’authentification spécifique

Lorsque vous essayez de vous connecter à votre cluster Amazon MSK, vous pouvez rencontrer l’une des erreurs suivantes, quel que soit le type d’authentification activé pour votre cluster.

java.lang.OutOfMemoryError: Espace de stockage Java

Cette erreur s’affiche si vous ne mentionnez pas le fichier de propriétés du client lorsque vous exécutez une commande pour des opérations de cluster à l’aide d’un type d’authentification quelconque :

Par exemple, l’erreur OutOfMemoryError s’affiche lorsque vous exécutez la commande suivante avec le port d’authentification IAM :

./kafka-topics.sh --create --bootstrap-server $BOOTSTRAP:9098 --replication-factor 3 --partitions 1 --topic TestTopic

Toutefois, la commande suivante s’exécute correctement lorsque vous l’exécutez avec le port d’authentification IAM :

./kafka-topics.sh --create --bootstrap-server $BOOTSTRAP:9098  --command-config client.properties --replication-factor 3 --partitions 1 --topic TestTopic

Pour résoudre cette erreur, veillez à inclure les propriétés appropriées en fonction du type d’authentification dans le fichier client.properties.

org.apache.kafka.common.errors.TimeoutException: Le délai d’ attente pour l’attribution d’un nœud a expiré. Appel : createTopics

Cette erreur s’affiche généralement en cas de mauvaise configuration du réseau entre l’application cliente et le cluster Amazon MSK.

Pour résoudre ce problème, vérifiez la connexion réseau en effectuant le test de connectivité suivant.

Exécutez la commande depuis l’ordinateur client.

telnet bootstrap-broker port-number

Veillez à effectuer les opérations suivantes :

  • Remplacez bootstrap-broker par l’une des adresses d’agent de votre cluster Amazon MSK.
  • Remplacez port-number par la valeur de port appropriée en fonction de l’authentification activée pour votre cluster.

Si l’ordinateur client peut accéder aux agents, il n’y a aucun problème de connexion. Dans le cas contraire, examinez la connexion réseau, en particulier les règles d’entrée et de sortie du groupe de sécurité.

org.apache.kafka.common.errors.TopicAuthorizationException: Accès non autorisé aux rubriques : [test_topic]

Cette erreur s’affiche lorsque vous utilisez l’authentification IAM et que votre stratégie d’accès bloque les opérations relatives aux rubriques, telles que WriteData et ReadData.

Notez que les limites d’autorisation et les stratégies de contrôle des services bloquent également les tentatives des utilisateurs de se connecter au cluster sans l’autorisation requise.

Si vous utilisez une authentification autre que IAM, vérifiez que vous avez ajouté des listes de contrôle d’accès (ACL) au niveau des rubriques qui bloquent les opérations.

Exécutez la commande suivante pour répertorier les ACL appliquées à une rubrique :

bin/kafka-acls.sh --bootstrap-server $BOOTSTRAP:PORT --command-config adminclient-configs.conf –-list –-topic testtopic

Connexion au nœud -1 (b-1-testcluster.abc123.c7.kafka.us-east-1.amazonaws.com/3.11.111.123:9098) - échec de l’authentification en raison de : Mécanisme de client SASL 'SCRAM-SHA-512' désactivé dans le serveur, les mécanismes activés sont [AWS_MSK_IAM]

-ou-

Connexion au nœud -1 (b-1-testcluster.abc123.c7.kafka.us-east-1.amazonaws.com/3.11.111.123:9096) - échec de l’authentification en raison de : Mécanisme de client SASL 'AWS_MSK_IAM' désactivé dans le serveur, les mécanismes activés sont [SCRAM-SHA-512]

Ces erreurs s’affichent lorsque vous utilisez un numéro de port qui ne correspond pas au mécanisme ou au protocole SASL dans le fichier de propriétés du client. Il s’agit du fichier de propriétés que vous avez utilisé dans la commande pour exécuter les opérations de cluster.

  • Pour communiquer avec les agents d’un cluster configuré pour utiliser SASL/SCRAM, utilisez les ports suivants : 9096 pour un accès depuis AWS et 9196 pour un accès public
  • Pour communiquer avec les agents d’un cluster configuré pour utiliser le contrôle d’accès IAM, utilisez les ports suivants : 9098 pour un accès depuis AWS et 9198 pour un accès public

L’attente de la connexion a été interrompue pendant l’état : CONNEXION EN COURS

Cette erreur peut s’afficher lorsque le client essaie de se connecter au cluster via la chaîne Apache ZooKeeper et que la connexion ne peut pas être établie. Cette erreur peut également se produire lorsque la chaîne Apache ZooKeeper est incorrecte.

L’erreur suivante s’affiche lorsque vous utilisez la chaîne Apache ZooKeeper incorrecte pour vous connecter au cluster :

./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)

Pour résoudre cette erreur, procédez comme suit :

  • Vérifiez que la chaîne Apache ZooKeeper utilisée est correcte.
  • Assurez-vous que le groupe de sécurité de votre cluster Amazon MSK autorise le trafic entrant issu du groupe de sécurité du client sur les ports Apache ZooKeeper.

Rubrique « topicName » absente dans les métadonnées après 60 000 ms. ou connexion au nœud -<node-id> (<broker-host>/<broker-ip>:<port>) impossible à établir. L’agent pourrait ne pas être disponible. (org.apache.kafka.clients.NetworkClient)

Cette erreur peut s’afficher dans l’un des cas suivants :

  • Le producteur ou le consommateur ne parvient pas à se connecter à l’hôte et au port de l’agent.
  • La chaîne de l’agent n’est pas valide.

Si cette erreur survient alors que la connexion du client ou de l’agent fonctionnait initialement, alors l’agent est peut-être hors service.

L’erreur suivante s’affiche lorsque vous tentez d’accéder au cluster depuis l’extérieur du cloud privé virtuel (VPC) à l’aide de la chaîne d’agent pour produire des données :

./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.

L’erreur suivante s’affiche lorsque vous tentez d’accéder au cluster depuis l’extérieur du VPC pour consommer des données à l’aide d’une chaîne d’agent :

./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)

Pour résoudre ces erreurs, procédez comme suit :

  • Assurez-vous que le port et la chaîne d’agent utilisés sont corrects.
  • Si l’erreur est due à une panne de l’agent, consultez la métrique Amazon CloudWatch ActiveControllerCount pour vérifier que le contrôleur a été actif tout au long de la période concernée. La valeur de cette métrique doit être 1. Toute autre valeur peut indiquer que l’un des agents du cluster n’est pas disponible. Vérifiez également la métrique ZooKeeperSessionState pour vous assurer que les agents ont communiqué de manière constante avec les nœuds Apache ZooKeeper. Pour comprendre pourquoi l’agent a échoué, consultez la métrique KafkaDataLogsDiskUsed et vérifiez si l’agent a manqué d’espace de stockage. Pour en savoir plus sur les métriques Amazon MSK et les valeurs attendues, consultez la page Métriques Amazon MSK pour la surveillance avec CloudWatch.
  • Assurez-vous que l’erreur n’est pas due à la configuration réseau. Les ressources Amazon MSK sont fournies au sein du VPC. Par défaut, les clients sont donc censés se connecter au cluster Amazon MSK ou produire et consommer à partir du cluster via un réseau privé au sein du même VPC. Si vous accédez au cluster depuis l’extérieur du VPC, ces erreurs risquent de se produire. Pour en savoir plus sur la résolution des erreurs lorsque le client se trouve dans le même VPC que le cluster, consultez Impossible d’accéder au cluster depuis AWS : problèmes de mise en réseau. Pour en savoir plus sur l’accès au cluster depuis l’extérieur du VPC, consultez Comment puis-je me connecter à mon cluster Amazon MSK en dehors du VPC ?

Erreurs spécifiques à l’authentification du client TLS

Les erreurs suivantes peuvent s’afficher lorsque vous tentez de vous connecter à un cluster pour lequel l’authentification client TLS est activée. Ces erreurs peuvent découler de problèmes liés à la configuration SSL.

Agent dootstrap <broker-host>:9094 (id: -<broker-id> rack: null) déconnecté

Cette erreur peut s’afficher lorsque le producteur ou le consommateur essaie de se connecter à un cluster crypté TLS via le port TLS 9094 sans transmettre la configuration SSL.

L’erreur suivante peut s’afficher lorsque le producteur essaie de se connecter au cluster :

./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)

L’erreur suivante peut s’afficher lorsque le consommateur essaie de se connecter au cluster :

./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)

Pour résoudre cette erreur, paramétrez la configuration SSL. Pour en savoir plus, consultez Comment puis-je commencer à utiliser le chiffrement ?

Si l’authentification du client est activée pour votre cluster, vous devez ajouter des paramètres supplémentaires liés à votre certificat ACM Private CA. Pour en savoir plus, consultez Authentification TLS mutuelle.

ERREUR Impossible d’obtenir l’heure de modification du keystore : <configure-path-to-truststore>

-ou-

Échec lors du chargement du keystore

En cas de problème avec la configuration du truststore, cette erreur peut se produire lorsque les fichiers du truststore sont chargés pour le producteur et le consommateur. Vous pouvez voir des informations semblables à ce qui suit dans les journaux :

./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

Dans ce cas, les journaux indiquent un problème de chargement du fichier truststore. Le chemin d’accès au fichier truststore n’est pas paramétré correctement dans la configuration SSL. Vous pouvez résoudre cette erreur en fournissant le chemin correct pour le fichier truststore dans la configuration SSL.

Cette erreur peut également se produire dans les cas suivants :

  • Votre fichier truststore ou keystore est endommagé.
  • Le mot de passe du fichier truststore est incorrect.

Erreur lors de l’envoi du message au test de rubrique avec la clé : nulle, valeur : 0 byte avec erreur : (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)

org.apache.kafka.common.errors.SslAuthenticationException: échec de la liaison SSL

-ou-

Connexion au nœud -<broker-id> (<broker-hostname>/<broker-hostname>:9094) échec de l’authentification en raison de : échec de la liaison SSL (org.apache.kafka.clients.NetworkClient)

L’erreur suivante peut s’afficher en cas de problème lié à la configuration du fichier keystore du producteur, entraînant l’échec de l’authentification :

./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)

L’erreur suivante peut s’afficher en cas de problème lié à la configuration du fichier keystore du consommateur, entraînant l’échec de l’authentification :

./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

Pour résoudre cette erreur, assurez-vous d’avoir configuré correctement les paramètres associés au keystore.

java.io.IOException: mot de passe keystore incorrect

Cette erreur peut s’afficher lorsque le mot de passe du keystore ou du truststore est incorrect.

Pour résoudre cette erreur, procédez comme suit :

Vérifiez si le mot de passe du keystore ou du truststore est correct en exécutant la commande suivante :

keytool -list -keystore kafka.client.keystore.jks
Enter 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

Si le mot de passe du keystore ou du truststore est incorrect, l’erreur suivante peut s’afficher :

keytool -list -keystore kafka.client.keystore.jks
Enter keystore password:
keytool error: java.io.IOException: keystore password was incorrect

Vous pouvez afficher la sortie détaillée de la commande ci-dessus en ajoutant l’indicateur -v :

keytool -list -v -keystore kafka.client.keystore.jks

Vous pouvez également utiliser ces commandes pour déterminer si le keystore est corrompu.

Cette erreur peut également s’afficher lorsque la clé secrète associée à l’alias n’est pas paramétrée correctement dans la configuration SSL du producteur et du consommateur. Pour vérifier cette cause fondamentale, exécutez la commande suivante :

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

Si votre mot de passe lié à la clé secrète de l’alias (exemple : schema-reg) est correct, la commande vous demande de saisir un nouveau mot de passe différent pour la clé secrète. Dans le cas contraire, l’échec de la commande s’annonce par le message suivant :

keytool -keypasswd -alias schema-reg -keystore kafka.client.keystore.jks
Enter keystore password:
Enter key password for <schema-reg>
keytool error: java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption.

Vous pouvez également vérifier si un alias spécifique fait partie du keystore en exécutant la commande suivante :

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

Erreurs spécifiques à l’authentification du client IAM

Connexion au nœud -1 (b-1.testcluster.abc123.c2.kafka.us-east-1.amazonaws.com/10.11.111.123:9098) - échec de l’authentification en raison de : accès refusé

-ou-

org.apache.kafka.common.errors.SaslAuthenticationException: accès refusé

Assurez-vous que le rôle IAM qui accède au cluster Amazon MSK autorise les opérations de cluster, comme indiqué dans le contrôle d’accès IAM.

Outre les stratégies d’accès, les limites d’autorisation et les stratégies de contrôle des services bloquent l’utilisateur qui tente de se connecter au cluster, sans pouvoir transmettre l’autorisation requise.

org.apache.kafka.common.errors.SaslAuthenticationException: Trop grand nombre de connexions

-ou-

org.apache.kafka.common.errors.SaslAuthenticationException: Erreur interne

Ces erreurs s’affichent lorsque votre cluster s’exécute sur un agent de type kafka.t3.small avec contrôle d’accès IAM et que vous avez dépassé la limite de connexion. Le type d’instance kafka.t3.small n’accepte qu’une seule connexion TCP par agent et par seconde. Lorsque ce seuil de connexions est dépassé, votre test de création échoue et vous recevez une erreur indiquant que les informations d’identification ne sont pas valides. Pour en savoir plus, consultez la page Fonctionnement d’Amazon MSK avec IAM.

Pour résoudre cette erreur, vous pouvez procéder comme suit :

  • Dans votre configuration de serveur de travail Amazon MSK Connect, mettez à jour les valeurs des champs reconnect.backoff.ms et reconnect.backoff.max.ms à 1 000 ou plus.
  • Effectuez une mise à niveau vers un type d’instance d’agent plus important (tel que kafka.m5.large ou supérieur). Pour en savoir plus, consultez Types d’agents et Bien dimensionner votre cluster : Nombre de partitions par agent.

Erreurs spécifiques à l’authentification du client SASL/SCRAM

Connexion au nœud -1 (b-3.testcluster.abc123.c2.kafka.us-east-1.amazonaws.com/10.11.111.123:9096) - échec de l’authentification en raison de : Échec de l’authentification en raison d’informations d’identification non valides avec le mécanisme SASL SCRAM-SHA-512

  • Assurez-vous d’avoir enregistré les informations d’identification de l’utilisateur dans AWS Secrets Manager et de les avoir associées au cluster Amazon MSK.
  • Lorsque vous accédez au cluster via le port 9096, assurez-vous que l’utilisateur et le mot de passe utilisés dans AWS Secrets Manager correspondent à ceux définis dans les propriétés du client.
  • Lorsque vous essayez de récupérer les clés secrètes à l’aide de l’API get-secret-value, assurez-vous que le mot de passe utilisé dans AWS Secrets Manager ne contient aucun caractère spécial, tel que le symbole suivant (/]).

org.apache.kafka.common.errors.ClusterAuthorizationException: Requête Request(processor=11, connectionId=INTERNAL_IP-INTERNAL_IP-0, session=Session(User:ANONYMOUS,/INTERNAL_IP), listenerName=ListenerName(REPLICATION_SECURE), securityProtocol=SSL, buffer=null) non autorisée

Cette erreur s’affiche lorsque les deux conditions suivantes sont remplies :

  • Vous avez activé l’authentification SASL/SCRAM pour votre cluster Amazon MSK.
  • Vous avez défini les valeurs resourceType=CLUSTER et operation=CLUSTER_ACTION dans les ACL de votre cluster.

Le cluster Amazon MSK ne prend pas en charge ce paramètre, car il empêche la réplication interne d’Apache Kafka. Avec ce paramètre, l’identité des agents apparaît sous la forme ANONYME pour les communications entre agents. Si vous souhaitez que votre cluster prenne en charge ces ACL lors de l’utilisation de l’authentification SASL/SCRAM, vous devez accorder les autorisations pour TOUTES les opérations à l’utilisateur ANONYME. Cette action évite de restreindre la réplication entre les agents.

Exécutez la commande suivante pour accorder cette autorisation à l’utilisateur ANONYME :

./kafka-acls.sh --authorizer-properties
zookeeper.connect=example-ZookeeperConnectString --add --allow-principal
User:ANONYMOUS --operation ALL --cluster

Informations connexes

Connexion à un cluster Amazon MSK

Comment résoudre les problèmes courants liés à l’utilisation de mon cluster Amazon MSK avec l’authentification SASL/SCRAM ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an