説明
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