공개 접근이 가능한 AWS MSK Broker

공개 Kafka 연결의 필요성을 확인하고 클라이언트 접근을 제한하세요.

설명

MSK의 공개 접근은 인터넷을 통한 Kafka 브로커 연결 경로를 제공합니다. 공개 엔드포인트가 메시지 스트림의 무제한 접근을 뜻하지는 않지만, 불필요한 외부 연결 경로가 늘어납니다. 실제 접근에는 네트워크 허용과 지원되는 인증·권한 구성이 필요합니다.

잠재적 영향

  • 불필요한 외부 클라이언트가 연결을 시도할 수 있습니다.
  • 인증 정보나 권한이 잘못 관리되면 스트림 데이터의 노출·변조 또는 처리 중단으로 이어질 수 있습니다.

해결 방법

  • 공개 연결이 필요 없으면 public_access.type을 DISABLED로 설정하세요. 먼저 클라이언트의 사설 경로와 올바른 부트스트랩 브로커 주소를 준비하세요.
  • 공개 연결이 필요하면 승인된 소스만 보안 그룹에서 허용하고 인증, TLS와 필요한 Kafka 권한을 구성하세요.
  • 변경 후 실제 클라이언트 연결과 불필요한 접근 차단을 시험하세요. 공개 접근 비활성화가 서브넷을 바꾸거나 사설 경로를 자동 생성하지는 않습니다.

예시

기존 클러스터의 연결 설정을 비교하는 발췌입니다. MSK 공개 접근은 클러스터 생성 후 활성화하며 공개 서브넷·인터넷 게이트웨이, TLS와 인증 등 서비스 전제조건이 필요합니다. kafka_version에는 지원되는 버전을 공급하고 생략된 브로커·서브넷·보안 설정을 별도로 구성하세요.

변경 전

hcl
resource "aws_msk_cluster" "msk_cluster" {
  cluster_name           = "example"
  kafka_version          = var.kafka_version
  number_of_broker_nodes = 3

  broker_node_group_info {
    connectivity_info {
      public_access {
        type = "SERVICE_PROVIDED_EIPS"
      }
    }
  }
}

SERVICE_PROVIDED_EIPS로 공개 연결을 요청합니다. 실제 사용 전에 인증과 제한된 소스의 접근을 확인해야 합니다.

변경 후

hcl
resource "aws_msk_cluster" "msk_cluster" {
  cluster_name           = "example"
  kafka_version          = var.kafka_version
  number_of_broker_nodes = 3

  broker_node_group_info {
    connectivity_info {
      public_access {
        type = "DISABLED"
      }
    }
  }
}

공개 연결을 비활성화합니다. 클라이언트는 준비된 사설 경로와 해당 부트스트랩 주소를 사용해야 합니다.

참조