설명
AWS::MSK::Cluster는 프로비저닝된 Kafka 클러스터를 선언합니다. 클러스터 사용 자체는 취약점이 아니며, 데이터 흐름과 운영 책임을 파악하기 위한 자산 정보입니다.
잠재적 영향
누락된 클러스터는 브로커 접근 권한, 암호화와 장애 대응 검토에서 빠질 수 있습니다.
해결 방법
클러스터의 소유자와 생산자·소비자를 기록하고 브로커 접근 범위, 인증, 암호화 및 모니터링을 확인하세요.
예시
공개 접근 요건을 충족하는 기존 클러스터에서 공개 접근을 끄는 구성 발췌입니다. KafkaVersion에는 지원 중인 호환 버전, ClientSubnets에는 서로 다른 AZ의 실제 서브넷 세 개를 제공하세요. 클라이언트의 사설 연결과 IAM 권한이 필요하며, 클러스터 생성 시에는 공개 접근을 활성화할 수 없습니다.
변경 전
yaml
Resources:
TestCluster:
Type: AWS::MSK::Cluster
Properties:
ClusterName: ClusterWithAllProperties
KafkaVersion: !Ref KafkaVersion
NumberOfBrokerNodes: 3
ClientAuthentication:
Sasl:
Iam:
Enabled: true
Unauthenticated:
Enabled: false
EncryptionInfo:
EncryptionInTransit:
ClientBroker: TLS
InCluster: true
BrokerNodeGroupInfo:
InstanceType: kafka.m5.large
ClientSubnets: !Ref ClientSubnets
ConnectivityInfo:
PublicAccess:
Type: SERVICE_PROVIDED_EIPS
변경 후
yaml
Resources:
TestCluster:
Type: AWS::MSK::Cluster
Properties:
ClusterName: ClusterWithAllProperties
KafkaVersion: !Ref KafkaVersion
NumberOfBrokerNodes: 3
ClientAuthentication:
Sasl:
Iam:
Enabled: true
Unauthenticated:
Enabled: false
EncryptionInfo:
EncryptionInTransit:
ClientBroker: TLS
InCluster: true
BrokerNodeGroupInfo:
InstanceType: kafka.m5.large
ClientSubnets: !Ref ClientSubnets
ConnectivityInfo:
PublicAccess:
Type: DISABLED