설명
공개 MQ 브로커 엔드포인트는 인터넷에서 연결을 시도할 수 있는 경로를 제공합니다. 메시지 브로커는 내부 이벤트와 애플리케이션 통신을 처리하므로 공개 접근의 필요성을 확인해야 합니다. 공개 엔드포인트가 있다는 이유만으로 익명 메시지 접근이 허용되는 것은 아니며, 인증과 권한은 별도로 적용됩니다.
잠재적 영향
- 불필요한 외부 연결과 비밀번호 추측 시도가 늘어날 수 있습니다.
- 취약한 계정이나 브로커가 침해되면 메시지 노출·변조 또는 서비스 중단으로 이어질 수 있습니다.
해결 방법
- 공개 연결이 불필요하면 publicly_accessible을 false로 설정하고 클라이언트의 사설 연결 경로를 준비하세요.
- ActiveMQ 브로커의 보안 그룹과 사용자 권한을 실제 클라이언트와 필요한 작업으로 제한하고 TLS를 사용하세요.
- 이 속성 변경은 Terraform에서 브로커 교체를 요구합니다. 메시지 보존과 새 브로커 준비, 클라이언트 전환을 계획하고 필요한 연결과 차단 결과를 확인하세요.
예시
ActiveMQ 생성 설정의 발췌입니다. activemq_engine_version에 지원되는 버전을 공급하고 인스턴스 유형과의 호환성을 확인하세요. 사용자·네트워크 설정은 별도로 필요하며 비밀번호와 Terraform 상태를 보호해야 합니다.
변경 전
hcl
resource "aws_mq_broker" "mq_broker" {
broker_name = "example"
engine_type = "ActiveMQ"
engine_version = var.activemq_engine_version
host_instance_type = "mq.t2.micro"
publicly_accessible = true
}
공개 브로커 엔드포인트를 요청합니다. 인증과 권한 설정도 별도로 필요합니다.
변경 후
hcl
resource "aws_mq_broker" "mq_broker" {
broker_name = "example"
engine_type = "ActiveMQ"
engine_version = var.activemq_engine_version
host_instance_type = "mq.t2.micro"
}
공개 접근 속성을 생략하면 공급자의 기본값 false가 적용됩니다. 기존 브로커 변경은 교체 계획과 사설 클라이언트 경로를 확인한 뒤 진행하세요.