Amazon MSKクラスターのインベントリ

Kafkaクラスターとストリーミングデータの経路を管理してください。

説明

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

参考資料