로그인 보안 인증 정보를 사용하여 클러스터에 연결 - Amazon Managed Streaming for Apache Kafka

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로그인 보안 인증 정보를 사용하여 클러스터에 연결

보안 암호를 생성하고 클러스터에 연결하면 클라이언트를 클러스터에 연결할 수 있습니다. 다음 절차에서는 SASL/SCRAM 인증을 사용하는 클러스터에 클라이언트를 연결하는 방법을 보여줍니다. 또한 예제 주제에서를 생성하고 소비하는 방법을 보여줍니다.

SASL/SCRAM 인증을 사용하여 클러스터에 클라이언트 연결

  1. 가 AWS CLI 설치된 시스템에서 다음 명령을 실행합니다. clusterARN을 클러스터의 ARN으로 바꿉니다.

    aws kafka get-bootstrap-brokers --cluster-arn clusterARN

    이 명령의 JSON 결과에서 라는 문자열과 연결된 값을 저장합니다BootstrapBrokerStringSaslScram. 이후 단계에서이 값을 사용합니다.

  2. 클라이언트 머신에서 암호에 저장된 사용자 보안 인증 정보가 포함된 JAAS 구성 파일을 생성합니다. 예를 들어 사용자 alice에 대해 다음과 같은 내용으로 users_jaas.conf라는 파일을 생성합니다.

    KafkaClient { org.apache.kafka.common.security.scram.ScramLoginModule required username="alice" password="alice-secret"; };
  3. 다음 명령을 사용하여 JAAS 구성 파일을 KAFKA_OPTS 환경 파라미터로 내보냅니다.

    export KAFKA_OPTS=-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf
  4. /tmp 디렉터리에 kafka.client.truststore.jks라는 파일을 생성합니다.

  5. (선택 사항) 다음 명령을 사용하여 JVM cacerts 폴더의 JDK 키 스토어 파일을 이전 단계에서 생성한 kafka.client.truststore.jks 파일로 복사합니다. JDKFolder를 인스턴스의 JDK 폴더 이름으로 변경합니다. 예를 들어 JDK 폴더의 이름은 java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64일 수 있습니다.

    cp /usr/lib/jvm/JDKFolder/lib/security/cacerts /tmp/kafka.client.truststore.jks
  6. Apache Kafka 설치의 bin 디렉터리에 다음 내용으로 client_sasl.properties라는 클라이언트 속성 파일을 생성합니다. 이 파일은 SASL 메커니즘과 프로토콜을 정의합니다.

    security.protocol=SASL_SSL sasl.mechanism=SCRAM-SHA-512
  7. 예제 주제를 생성하려면 다음 명령을 실행합니다. BootstrapBrokerStringSaslScram을이 주제의 1단계에서 얻은 부트스트랩 브로커 문자열로 바꿉니다.

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --bootstrap-server BootstrapBrokerStringSaslScram --command-config <path-to-client-properties>/client_sasl.properties --replication-factor 3 --partitions 1 --topic ExampleTopicName
  8. 생성한 예제 주제로 생성하려면 클라이언트 머신에서 다음 명령을 실행합니다. BootstrapBrokerStringSaslScram을이 주제의 1단계에서 검색한 부트스트랩 브로커 문자열로 바꿉니다.

    <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringSaslScram --topic ExampleTopicName --producer.config client_sasl.properties
  9. 생성한 주제에서 사용하려면 클라이언트 머신에서 다음 명령을 실행합니다. BootstrapBrokerStringSaslScram을이 주제의 1단계에서 얻은 부트스트랩 브로커 문자열로 바꿉니다.

    <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --from-beginning --consumer.config client_sasl.properties

연결 문제 해결

Kafka 클라이언트 명령을 실행할 때 특히 대규모 주제 또는 데이터 세트로 작업할 때 Java 힙 메모리 오류가 발생할 수 있습니다. 이러한 오류는 Kafka 도구가 워크로드에 충분하지 않을 수 있는 기본 메모리 설정으로 Java 애플리케이션으로 실행되기 때문에 발생합니다.

Out of Memory Java Heap 오류를 해결하려면 메모리 설정을 포함하도록 KAFKA_OPTS 환경 변수를 수정하여 Java 힙 크기를 늘릴 수 있습니다.

다음 예제에서는 최대 힙 크기를 1GB(-Xmx1G)로 설정합니다. 사용 가능한 시스템 메모리 및 요구 사항에 따라이 값을 조정할 수 있습니다.

export KAFKA_OPTS="-Djava.security.auth.login.config=<path-to-jaas-file>/users_jaas.conf -Xmx1G"

대규모 주제를 사용하는 경우 메모리 사용량을 제한하는 대신 시간 기반 또는 오프셋 기반 파라미터를 사용하는 --from-beginning 것이 좋습니다.

<path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringSaslScram --topic ExampleTopicName --max-messages 1000 --consumer.config client_sasl.properties