Amazon MSK の Security Hub コントロール - AWS Security Hub

Amazon MSK の Security Hub コントロール

これらの AWS Security Hub CSPM コントロールは、Amazon Managed Streaming for Apache Kafka (Amazon MSK) サービスとリソースを評価します。コントロールは、すべての AWS リージョン で使用できるとは限りません。詳細については、「リージョン別のコントロールの可用性」を参照してください。

[MSK.1] MSK クラスターはブローカーノード間の転送時に暗号化される必要があります

関連する要件: NIST.800-53.r5 AC-4、NIST.800-53.r5 SC-13、NIST.800-53.r5 SC-23、NIST.800-53.r5 SC-23(3)、NIST.800-53.r5 SC-7(4)、NIST.800-53.r5 SC-8、NIST.800-53.r5 SC-8(1)、NIST.800-53.r5 SC-8(2)、PCI DSS v4.0.1/4.2.1

カテゴリ: 保護 > データ保護 > 転送中のデータの暗号化

重要度:

リソースタイプ :AWS::MSK::Cluster

AWS Config ルール :msk-in-cluster-node-require-tls

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは Amazon MSK クラスターが、クラスターのブローカーノードで HTTPS (TLS) で転送中のデータを暗号化しているかどうかを確認します。クラスターブローカーノード接続でプレーンテキスト通信が有効になっていると、コントロールは失敗します。

HTTPS ではデータの移動に TLS を使用する追加のセキュリティレイヤーが提供されており、これをすると、潜在的な攻撃者が中間者攻撃または同様の攻撃を使用してネットワークトラフィックを盗聴または操作することを防止できます。デフォルトでは、Amazon MSK は転送中のデータを TLS で暗号化します。ただし、このデフォルトはクラスターの作成時に上書きできます。ブローカーノード接続には、HTTPS (TLS) 経由の暗号化接続を使用することをお勧めします。

修正

Amazon MSK クラスターの暗号化設定を更新する方法については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Updating security settings of a cluster」を参照してください。

[MSK.2] MSK クラスターでは、拡張モニタリングを設定する必要があります

関連する要件: NIST.800-53.r5 CA-7、NIST.800-53.r5 SI-2

カテゴリ: 検出 > 検出サービス

重要度:

リソースタイプ :AWS::MSK::Cluster

AWS Config ルール :msk-enhanced-monitoring-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Amazon MSK クラスターに、少なくとも PER_TOPIC_PER_BROKER のモニタリングレベルで指定された拡張モニタリングが設定されているかどうかをチェックします。クラスターのモニタリングレベルが DEFAULT または PER_BROKER に設定されている場合、コントロールは失敗します。

PER_TOPIC_PER_BROKER モニタリングレベルでは、MSK クラスターのパフォーマンスをより詳細に把握できる他、CPU やメモリ使用量などのリソース使用率に関連するメトリクスも表示されます。これにより、個々のトピックおよびブローカーのパフォーマンスボトルネックやリソース使用パターンを特定できるようになります。この可視性により、Kafka ブローカーのパフォーマンスを最適化できます。

修正

MSK クラスターの拡張モニタリングを設定するには、以下の手順を実行します。

  1. https://console.aws.amazon.com/msk/home?region=us-east-1#/home/ で Amazon MSK コンソールを開きます。

  2. ナビゲーションペインで [Clusters] (クラスター) を選択してください。次に、クラスターを選択します。

  3. [アクション][モニタリングを編集] を選択します。

  4. [拡張トピックレベルモニタリング] のオプションを選択します。

  5. [Save changes] (変更の保存) をクリックします。

モニタリングレベルの詳細については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Amazon MSK metrics for monitoring Standard brokers with CloudWatch」を参照してください。

[MSK.3] MSK Connect コネクタは転送中に暗号化する必要があります

関連する要件: PCI DSS v4.0.1/4.2.1

カテゴリ: 保護 > データ保護 > 転送中のデータの暗号化

重要度:

リソースタイプ :AWS::KafkaConnect::Connector

AWS Config ルール: msk-connect-connector-encrypted (カスタム Security Hub ルール)

スケジュールタイプ : 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Amazon MSK Connect コネクタが転送中の暗号化されているかどうかを確認します。コネクタが転送中に暗号化されていない場合、このコントロールは失敗します。

転送中のデータとは、クラスター内のノード間やクラスターとアプリケーション間など、ある場所から別の場所に移動するデータを指します。データはインターネット内またはプライベートネットワーク内を移動する場合があります。転送中のデータを暗号化することで、権限のないユーザーがネットワークトラフィックを盗聴するリスクが軽減されます。

修正

MSK Connect コネクタを作成するときに、転送中の暗号化を有効にすることができます。コネクタを作成した後で暗号化設定を変更することはできません。詳細については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「コネクタの作成」を参照してください。

[MSK.4] MSK クラスターではパブリックアクセスを無効にする必要があります

カテゴリ: 保護 > セキュアなアクセス管理 > パブリックアクセスが不可能なリソース

重要度: 非常事態

リソースタイプ :AWS::MSK::Cluster

AWS Config ルール :msk-cluster-public-access-disabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Amazon MSK クラスターでパブリックアクセスが無効になっているかどうかをチェックします。MSK クラスターでパブリックアクセスが有効になっている場合、コントロールは失敗します。

デフォルトでは、クライアントは、クラスターと同じ VPC 内にある場合にのみ Amazon MSK クラスターにアクセスできます。Kafka クライアントと MSK クラスター間のすべての通信はデフォルトでプライベートであり、ストリーミングデータがインターネットを経由することはありません。ただし、MSK クラスターがパブリックアクセスを許可するように設定されている場合、インターネット上の誰でも、クラスター内で実行されている Apache Kafka ブローカーへの接続を確立できます。そのため、不正アクセス、データ侵害、または脆弱性の悪用などの問題につながる可能性があります。認証と認可の手段を要求してクラスターへのアクセスを制限すると、機密情報を保護し、リソースの整合性を維持できます。

修正

Amazon MSK クラスターへのパブリックアクセスの管理については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Turn on public access to an MSK Provisioned cluster」を参照してください。

[MSK.5] MSK コネクタではログ記録が有効になっている必要があります

カテゴリ: 識別 > ログ記録

重要度:

リソースタイプ :AWS::KafkaConnect::Connector

AWS Config ルール :msk-connect-connector-logging-enabled

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Amazon MSK コネクタでログ記録が有効になっているかどうかをチェックします。MSK コネクタでログ記録が無効になっていると、コントロールは失敗します。

Amazon MSK コネクタは、ストリーミングデータをデータソースから Apache Kafka クラスターに継続的にコピーするか、クラスターからデータシンクにデータを継続的にコピーすることにより、外部システムと Amazon サービスを Apache Kafka と統合します。MSK Connect は、コネクタのデバッグに役立つログイベントを書き込むことができます。コネクタを作成するときに、ログの送信先を、Amazon CloudWatch Logs、Amazon S3、Amazon Data Firehose の中から 0 個以上指定できます。

注記

プラグインで機密設定値をシークレットとして定義していない場合、機密設定値がコネクタログに表示される可能性があります。Kafka Connect は、未定義の設定値を他のプレーンテキスト値と同じように扱います。

修正

既存の Amazon MSK コネクタのログ記録を有効にするには、適切なログ記録設定を指定してコネクタを再作成する必要があります。詳細については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Logging for MSK Connect」を参照してください。

[MSK.6] MSK クラスターは認証されていないアクセスを無効にする必要があります

カテゴリ: 保護 > セキュアなアクセス管理 > パスワードレス認証

重要度:

リソースタイプ :AWS::MSK::Cluster

AWS Config ルール :msk-unrestricted-access-check

スケジュールタイプ: 変更がトリガーされた場合

パラメータ : なし

このコントロールは、Amazon MSK クラスターで非認証アクセスが有効になっているかどうかをチェックします。MSK クラスターで非認証アクセスが有効になっている場合、コントロールは失敗します。

Amazon MSK は、クラスターへのアクセスを制御するクライアント認証および認可メカニズムをサポートしています。これらのメカニズムは、クラスターに接続するクライアントの ID を検証し、クライアントが実行できるアクションを特定します。MSK クラスターは、非認証アクセスを許可するように設定できます。これにより、ネットワーク接続を持つすべてのクライアントは、認証情報を指定せずに Kafka トピックを発行およびサブスクライブできます。認証を必要とせずに MSK クラスターを実行すると、最小特権の原則に違反し、クラスターが不正アクセスにさらされる可能性があります。それによって、すべてのクライアントが Kafka トピックのデータにアクセスして、変更、削除できるため、データ侵害、不正なデータ変更、またはサービスの中断につながる可能性があります。適切なアクセスコントロールを確保し、セキュリティコンプライアンスを維持するために、IAM 認証、SASL/SCRAM、相互 TLS などの認証メカニズムを有効にすることをお勧めします。

修正

Amazon MSK クラスターの認証設定を変更する方法については、「Amazon Managed Streaming for Apache Kafka デベロッパーガイド」の「Update security settings of an Amazon MSK cluster」と「Authentication and authorization for Apache Kafka APIs」のセクションを参照してください。