Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Amazon MSK 클러스터에 연결하려고 할 때 발생하는 오류를 해결하려면 어떻게 해야 합니까?
Amazon Managed Streaming for Apache Kafka(Amazon MSK) 클러스터에 연결하려고 할 때 오류가 발생합니다.
해결 방법
특정 인증 유형과 관련이 없는 오류
Amazon MSK 클러스터에 연결하려고 하면 사용하는 인증 유형에 관계없이 다음 오류 중 하나가 발생할 수 있습니다.
java.lang.OutOfMemoryError: Java heap space
클라이언트 속성 파일 없이 클러스터 작업에 대한 명령을 실행하면 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: Not authorized to access topics: [test_topic]
IAM 인증을 사용하고 액세스 정책에서 WriteData 및 ReadData와 같은 항목 작업을 차단할 때 TopicAuthorizationException 오류가 발생합니다.
참고: 권한 범위 및 서비스 제어 정책(SPC)은 또한 사용자가 필요한 권한 없이 클러스터에 연결하려는 시도를 차단합니다.
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)
이 문제를 해결하려면 다음 작업을 수행하십시오.
- 올바른 아파치 ZooKeeper 문자열을 사용하고 있는지 확인합니다.
- Amazon MSK 클러스터의 보안 그룹이 Apache ZooKeeper 포트의 클라이언트 보안 그룹에서 들어오는 인바운드 트래픽을 허용하는지 확인합니다.
Broker might be unavailable
"Topic 'topicName' not present in metadata after 60000 ms. or Connection to node -<node-id> (<broker-host>/<broker-ip>:<port>) could not be established. Broker may not be available. (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)
이 오류를 해결하려면 다음 작업을 수행하십시오.
- 올바른 브로커 문자열과 포트를 사용하는지 확인합니다.
- 브로커를 사용할 수 없는 경우 ActiveControllerCount Amazon CloudWatch 지표를 확인하여 해당 기간 동안 컨트롤러가 활성 상태였는지 확인합니다. 지표 값이 1이 아닌 경우 클러스터의 브로커 중 하나를 사용할 수 없는 것일 수 있습니다.
- ZookeeperSessionState 지표를 확인하여 브로커가 Apache ZooKeeper 노드와 지속적으로 통신하고 있는지 확인합니다.
- 브로커가 실패한 이유를 알아보려면 KafkaDataLogsDiskUsed 지표를 확인하고 브로커의 스토리지 공간이 부족했는지 여부를 확인합니다. 자세한 내용은 CloudWatch를 사용한 표준 브로커 모니터링에 대한 Amazon MSK 지표를 참조하십시오.
- 네트워크 구성으로 인해 문제가 발생했는지 확인합니다. Amazon MSK 리소스는 VPC 내에서 프로비저닝됩니다. Amazon MSK 클러스터에 연결하거나 동일한 VPC의 사설 네트워크를 통해 클러스터에서 생산 및 사용해야 합니다. 자세한 내용은 AWS 내에서 클러스터에 액세스할 수 없음: 네트워킹 문제 및 AWS 네트워크 내부에 있지만 클러스터의 Amazon VPC 외부에 있는 Amazon MSK 클러스터에 연결하려면 어떻게 해야 합니까?를 참조하십시오.
Topic not present in metadata
"org.apache.kafka.common.errors.TimeoutException: Topic test not present in metadata after 60000 ms"
작성하려는 항목이 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와 같은 필수 네트워킹 구성을 설정해야 합니다.
Incorrect configuration of Kafka client Producer or consumer
Kafka 클라이언트 생산자 또는 소비자의 잘못된 구성을 해결하려면 클라이언트 구성에 올바른 부트스트랩 서버가 포함되어 있는지 확인하십시오. 또한 구성에 필요한 보안 설정과 Kafka 클라이언트 및 Spring Boot의 호환성 버전이 포함되어 있는지 확인하십시오.
TLS 클라이언트 인증과 관련된 오류
Bootstrap broker is disconnected
"Bootstrap broker <broker-host>:9094 (id: -<broker-id> rack: null) disconnected"
SSL/TLS 클라이언트 인증이 설정된 클러스터에 연결을 시도하면 위 오류가 발생할 수 있습니다.
생산자 또는 소비자가 SSL/TLS 구성을 통과하지 않고 TLS 포트 9094를 통해 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 Private Certificate Authority에 대한 추가 파라미터를 포함해야 합니다. 자세한 내용은 Amazon MSK에 대한 상호 TLS 클라이언트 인증을 참조하십시오.
Key store access error
"ERROR Modification time of key store could not be obtained: <configure-path-to-truststore>"
-또는-
"Failed to load keystore"
truststore를 잘못 구성하고 생산자와 소비자의 truststore를 로드할 때 위 오류가 발생할 수 있습니다. 이 문제를 해결하려면 SSL/TLS 구성에서 truststore 파일의 올바른 경로를 제공하십시오.
잘못된 소비자 브로커 문자열의 예시:
./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
이 오류는 truststore 또는 키 저장소 파일이 손상되었거나 truststore 파일 암호가 잘못된 경우에도 발생할 수 있습니다.
SSL/TLS handshake failure
"Error when sending message to topic test with key: null, value: 0 bytes with error (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.SslAuthenticationException: SSL handshake failed"
-또는-
"Connection to node -<broker-id> (<broker-hostname>/<broker-hostname>:9094) failed authentication due to: SSL handshake failed (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
keystore password is incorrect
"java.io.IOException: keystore password was incorrect"
키 저장소 또는 truststore의 암호가 잘못된 경우 위 오류가 발생할 수 있습니다.
이 문제를 해결하려면 다음 명령을 실행하여 키 저장소 또는 truststore 암호가 올바른지 확인하십시오.
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
키 저장소 또는 truststore의 암호가 잘못된 경우 다음 오류가 발생할 수 있습니다.
"keytool error: java.io.IOException: keystore password was incorrect"
이전 명령의 상세 출력을 보려면 -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>:
그렇지 않은 경우 명령이 실패하고 다음 메시지가 표시됩니다.
"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."
별칭이 키 저장소의 일부인지 확인하려면 다음 명령을 실행합니다.
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 클라이언트 인증과 관련된 오류
Failed authentication, access denied
"Connection to node -1 (b-1.testcluster.abc123.c2.kafka.us-east-1.amazonaws.com/10.11.111.123:9098) failed authentication due to: Access denied"
-또는-
"org.apache.kafka.common.errors.SaslAuthenticationException: Access denied"
액세스 정책, 권한 경계 및 SCP가 필요한 인증을 통과하지 못한 사용자를 차단하면 위 오류 중 하나가 나타납니다.
이 문제를 해결하려면 IAM 액세스 제어를 사용하여 IAM 역할이 클러스터 작업을 수행할 수 있는지 확인합니다.
SaslAuthenticationException
"org.apache.kafka.common.errors.SaslAuthenticationException: Too many connects"
-또는-
"org.apache.kafka.common.errors.SaslAuthenticationException: Internal error"
IAM 액세스 제어를 사용하여 kafka.t3.small 브로커 유형에서 클러스터를 실행하고 연결 할당량을 초과하면 위 오류가 발생합니다. kafka.t3.small 인스턴스 유형은 각 브로커에 대해 초당 하나의 TCP 연결만을 허용합니다. 연결 할당량을 초과하면 생성 테스트가 실패합니다. 자세한 내용은 Amazon MSK가 IAM과 함께 작동하는 방식을 참조하십시오.
이러한 문제를 해결하려면 다음 작업을 수행하십시오.
- Amazon MSK Connect 작업자 구성에서 reconnect.backoff.ms 및 reconnect.backoff.max.ms의 값을 1000 이상으로 업데이트합니다.
- 더 큰 브로커 인스턴스 유형(예: kafka.m5.large)으로 업그레이드합니다. 자세한 내용은 클러스터 크기 조정: 표준 브로커당 파티션 수를 참조하십시오.
SASL/SCRAM 클라이언트 인증과 관련된 오류
Client SASL mechanism is turned off
"Connection to node -1 (b-1-testcluster.abc123.c7.kafka.us-east-1.amazonaws.com/3.11.111.123:9098) failed authentication due to: Client SASL mechanism 'SCRAM-SHA-512' not enabled in the server, enabled mechanisms are [AWS_MSK_IAM]"
-또는-
"Connection to node -1 (b-1-testcluster.abc123.c7.kafka.us-east-1.amazonaws.com/3.11.111.123:9096) failed authentication due to: Client SASL mechanism 'AWS_MSK_IAM' not enabled in the server, enabled mechanisms are [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 credential authentication error
"Connection to node -1 (b-3.testcluster.abc123.c2.kafka.us-east-1.amazonaws.com/10.11.111.123:9096) failed authentication due to: Authentication failed during authentication due to invalid credentials with SASL mechanism 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 Request(processor=11, connectionId=INTERNAL_IP-INTERNAL_IP-0, session=Session(User:ANONYMOUS,/INTERNAL_IP), listenerName=ListenerName(REPLICATION_SECURE), securityProtocol=SSL, buffer=null) is not authorized"
다음 두 조건에 모두 해당하는 경우 위 오류가 발생합니다.
- 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 클러스터를 SASL/SCRAM 인증과 함께 사용할 때 발생하는 일반적인 문제를 해결하려면 어떻게 해야 합니까?

관련 콘텐츠
- 질문됨 2달 전lg...
- 질문됨 7달 전lg...
- 질문됨 2년 전lg...