아파치에 대한 액세스 제어 ZooKeeper - Amazon Managed Streaming for Apache Kafka

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

아파치에 대한 액세스 제어 ZooKeeper

보안상의 이유로 Amazon MSK 클러스터의 일부인 Apache ZooKeeper 노드에 대한 액세스를 제한할 수 있습니다. 노드에 대한 액세스를 제한하기 위해 별도의 보안 그룹을 할당할 수 있습니다. 그런 다음 해당 보안 그룹에 대한 액세스 권한을 결정할 수 있습니다.

Apache ZooKeeper 노드를 별도의 보안 그룹에 배치하려면

  1. 클러스터의 Apache ZooKeeper 연결 문자열을 가져옵니다. 자세한 방법은 Amazon MSK 클러스터의 아파치 ZooKeeper 연결 문자열 가져오기(을)를 참조하세요. 연결 문자열에는 Apache ZooKeeper 노드의 DNS 이름이 포함됩니다.

  2. host 또는 ping 같은 도구를 사용하여 이전 단계에서 얻은 DNS 이름을 IP 주소로 변환합니다. 이 절차의 뒷부분에 필요하므로 이 IP 주소를 저장하십시오.

  3. AWS Management Console 로그인하고 https://console.aws.amazon.com/ec2/ 에서 Amazon EC2 콘솔을 엽니다.

  4. 탐색 창의 NETWORK & SECURITY(네트워크 및 보안) 아래에서 Network Interfaces(네트워크 인터페이스)를 선택합니다.

  5. 네트워크 인터페이스 테이블 위의 검색 필드에 클러스터 이름을 입력한 다음 return을 입력합니다. 이렇게 하면 테이블에 표시되는 네트워크 인터페이스 수가 클러스터와 연결된 인터페이스로 제한됩니다.

  6. 목록의 첫 번째 네트워크 인터페이스에 해당하는 행의 시작 부분에 있는 확인란을 선택합니다.

  7. 페이지 하단의 세부 정보 창에서 주 프라이빗 IPv4 IP를 찾습니다. 이 IP 주소가 이 절차의 첫 단계에서 얻은 IP 주소 중 하나와 일치하면 이 네트워크 인터페이스가 클러스터의 일부인 Apache ZooKeeper 노드에 할당되었음을 의미합니다. 그렇지 않으면 이 네트워크 인터페이스 옆의 확인란 선택을 취소하고, 목록에서 다음 네트워크 인터페이스를 선택합니다. 네트워크 인터페이스를 선택하는 순서는 중요하지 않습니다. 다음 단계에서는 Apache ZooKeeper 노드에 할당된 모든 네트워크 인터페이스에서 동일한 작업을 하나씩 수행합니다.

  8. Apache ZooKeeper 노드에 해당하는 네트워크 인터페이스를 선택할 때는 페이지 상단의 작업 메뉴를 선택한 다음 보안 그룹 변경을 선택합니다. 이 네트워크 인터페이스에 새 보안 그룹을 할당합니다. 보안 그룹 생성에 대한 자세한 내용은 Amazon VPC 설명서에서 보안 그룹 생성을 참조하세요.

  9. 이전 단계를 반복하여 클러스터의 Apache ZooKeeper 노드와 연결된 모든 네트워크 인터페이스에 동일한 새 보안 그룹을 할당합니다.

  10. 이제 이 새 보안 그룹에 액세스할 수 있는 사용자를 선택할 수 있습니다. 보안 그룹 규칙 설정에 대한 자세한 내용은 Amazon VPC 설명서에서 규칙 추가, 제거, 업데이트를 참조하세요.

Apache에서 TLS 보안 사용 ZooKeeper

클라이언트와 Apache 노드 간 전송 시 암호화에 TLS 보안을 사용할 수 있습니다. ZooKeeper Apache ZooKeeper 노드에 TLS 보안을 구현하려면 다음과 같이 하십시오.

  • Apache에서 TLS 보안을 사용하려면 클러스터가 Apache Kafka 버전 2.5.1 이상을 사용해야 합니다. ZooKeeper

  • 클러스터를 생성하거나 구성할 때 TLS 보안을 활성화합니다. TLS가 활성화된 Apache Kafka 버전 2.5.1 이상으로 만든 클러스터는 Apache 엔드포인트의 TLS 보안을 자동으로 사용합니다. ZooKeeper TLS 보안 설정에 대한 자세한 내용은 암호화는 어떻게 시작하나요? 섹션을 참조하세요.

  • 작업을 사용하여 TLS Apache 엔드포인트를 검색합니다. ZooKeeper DescribeCluster

  • kafka-configs.shkafka-acls.sh도구 또는 셸과 함께 사용할 Apache ZooKeeper 구성 파일을 생성합니다. ZooKeeper 각 도구에서 --zk-tls-config-file 매개변수를 사용하여 Apache ZooKeeper 구성을 지정합니다.

    다음 예제는 일반적인 Apache 구성 파일을 ZooKeeper 보여줍니다.

    zookeeper.ssl.client.enable=true zookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty zookeeper.ssl.keystore.location=kafka.jks zookeeper.ssl.keystore.password=test1234 zookeeper.ssl.truststore.location=truststore.jks zookeeper.ssl.truststore.password=test1234
  • 기타 명령 (예:kafka-topics) 의 경우 KAFKA_OPTS 환경 변수를 사용하여 Apache ZooKeeper 매개 변수를 구성해야 합니다. 다음 예제는 Apache ZooKeeper 매개 변수를 다른 명령에 전달하도록 KAFKA_OPTS 환경 변수를 구성하는 방법을 보여줍니다.

    export KAFKA_OPTS=" -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true -Dzookeeper.ssl.trustStore.location=/home/ec2-user/kafka.client.truststore.jks -Dzookeeper.ssl.trustStore.password=changeit"

    KAFKA_OPTS 환경 변수를 구성한 후에는 CLI 명령을 정상적으로 사용할 수 있습니다. 다음 예제에서는 환경 변수의 Apache ZooKeeper 구성을 사용하여 Apache Kafka 주제를 만듭니다. KAFKA_OPTS

    <path-to-your-kafka-installation>/bin/kafka-topics.sh --create --zookeeper ZooKeeperTLSConnectString --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
참고

Apache ZooKeeper 구성 파일에 사용하는 매개 변수 이름과 KAFKA_OPTS 환경 변수에 사용하는 매개 변수의 이름이 일치하지 않습니다. 구성 파일 및 KAFKA_OPTS 환경 변수에서 어떤 이름을 어떤 파라미터와 함께 사용하는지에 대해 주의하세요.

TLS를 사용하여 Apache ZooKeeper 노드에 액세스하는 방법에 대한 자세한 내용은 KIP-515: ZK 클라이언트가 새로운 TLS 지원 인증을 사용하도록 설정을 참조하십시오.