Defender for Containers のアーキテクチャ

Microsoft Defender for Containers では、複数の接続パスを使用してセキュリティシグナルを収集し、コンテナー レジストリと Kubernetes 環境全体で保護を提供します。 必要な接続は、有効な機能と、コンテナーが実行される環境によって異なります。

実装の詳細は、Azure Kubernetes Service (AKS)、Amazon Elastic Kubernetes Service (EKS)、Google Kubernetes Engine (GKE)、Arc 対応 Kubernetes クラスターによって異なります。

Network access and permissions reference for Defender for Containers のネットワーク要件、アクセス許可、およびサポートされている構成について説明します。

機能モデルの概要

次の表に、コンテナーの主要なDefender機能を実装する方法と、それらがクラスター内コンポーネントを必要とするかどうかを示します。

Capability エージェントレス クラスター内コンポーネントが必要
画像の脆弱性評価 Yes No
Kubernetes の態勢評価 Yes No
実行時の脅威検出 No Yes
コントロール プレーンの脅威の検出 Yes No

コンテナー レジストリへの接続

イメージの脆弱性評価は、サポートされているレジストリにイメージがプッシュされ、レジストリの構成に基づいて定期的にトリガーされます。 Defender for Cloudは、脆弱性評価に必要な画像メタデータとレイヤーを分析します。 サポートされているシナリオでは、元のコンテナー イメージを変更することなく、脆弱性評価の結果をレジストリに発行し直すことができます。 これらの機能では、コンポーネントを Kubernetes クラスターにデプロイする必要はありません。

Kubernetes クラスターへの接続

Microsoft Defender for Cloud Kubernetes API エンドポイントに接続して、クラスターの検出、構成データの収集、ポスチャとリスク分析の実行を行います。 有効な機能と環境によっては、この接続でクラスター メタデータへの読み取りアクセスが必要になる場合があり、シナリオによっては、必要なアクセス バインディングまたは拡張機能を構成するための書き込み操作が制限される場合があります。

Kubernetes クラスターから送信されるランタイム データ

Kubernetes クラスターは、ワーカー ノードから Microsoft Defender for Cloud バックエンドにランタイム セキュリティ データを送信します。 このデータは、クラスターで実行されているコンテナー コンポーネントのDefenderによって収集され、分析のために送信されます。 この接続パスは、ランタイムの脅威検出とその他のセンサー ベースの機能をサポートします。

クラウド プロバイダー API への接続

Microsoft Defender for Cloudは、クラウド プロバイダー API に接続してリソースを検出し、クラウド環境接続プロセスの一部としてセキュリティ分析を実行します。 この接続パスは、クラウド環境をMicrosoft Defender for Cloudに接続するときに確立されます。

クラウド インフラストラクチャから送信された Kubernetes 監査ログ

クラウド インフラストラクチャは、コントロール プレーンの脅威検出とセキュリティ分析のために Kubernetes 監査ログをMicrosoft Defender for Cloudに送信します。 監査ログの収集と送信に使用される方法は、Kubernetes クラスターが実行されているクラウド プロバイダーと環境によって異なります。

また、このアーキテクチャでは、型の LoadBalancerが作成または更新され、ワークロードがパブリックに公開されたときに、Exposed Kubernetes サービスが検出されたなど、公開関連のイベントを検出することもできます。 通常、これらのシグナルは、インターネットの露出が意図しない場合や、認証コントロールが弱いか不足している場合に優先されます。

プロキシとプライベート接続のサポート

Defender for Containers コンポーネントは、構成済みのプロキシとプライベート接続構成を介した送信接続をサポートします。

各 Kubernetes 環境のアーキテクチャ

アーキテクチャ コンポーネント

Defender for Cloud Azure Kubernetes Serviceでホストされているクラスターを保護すると、追加のエージェントや構成を必要とせずに、Azureインフラストラクチャを通じて Kubernetes 監査ログ データをネイティブに収集します。 Microsoft Defender for Containers によって提供される完全な保護を取得するには、次のコンポーネントが必要です。

  • Defender sensor:eBPF テクノロジを使用してランタイム テレメトリ (Kubernetes イベント、プロセス、ネットワーク データ) を収集する AKS ノードにデプロイされた軽量の DaemonSet。 ランタイムの脅威保護のために、テレメトリを Defender for Cloud に安全に送信します。 センサーは Log Analytics ワークスペースに登録され、データ パイプラインとして機能します。 ただし、監査ログ データは Log Analytics ワークスペースに保存されません。 Defender センサーは、AKS リソース プロバイダー (RP) にネイティブに統合された AKS セキュリティ プロファイルとしてデプロイされます。

AKS クラスターで Defender センサーを構成すると、調整プロセスがトリガーされます。 このプロセスは Defender for Containers プランの一部として行われ、想定される動作です。

  • Kubernetes 用の Azure Policy: オープン ソース の Gatekeeper v3 を拡張し、Kubernetes アドミッション制御への Web フックとして登録するポッド。 このポッドを使用すると、クラスターに大規模な適用とセーフガードを一元的かつ一貫した方法で適用できます。 Azure Policy for Kubernetes ポッドは AKS アドオンとしてデプロイされ、クラスター内の 1 つのノードにのみインストールする必要があります。 構成規則を適用するオプションが用意されています。 Kubernetes の Kbernetes ワークロード保護Azure Policy について説明します。
  • ACR 統合: Azure Container Registryのプッシュ によってトリガーされ、定期的なイメージ スキャンが行われ、追加のコンポーネントを必要とせずに脆弱性評価が提供されます。
  • エージェントなしの検出: Azure ネイティブ機能を使用してクラスター構成を検出および評価することにより、エージェントを必要とせずに Kubernetes クラスターを可視化できます。
  • マシンのエージェントレス スキャン: 帯域外のオペレーティング システム構成とファイル システムの詳細な分析のための Kubernetes ノードの定期的なディスク スナップショット。 この機能は、インストールされているエージェントやネットワーク接続を必要とせず、マシンのパフォーマンスにも影響しません。
  • Microsoft XDR 統合: 統合されたセキュリティ運用とインシデント対応のために、Microsoftの拡張検出および対応プラットフォームと統合されます。

Microsoft Defender for Containers、Azure Kubernetes Service、Azure Policy 間の相互作用アーキテクチャの概略ダイアグラム。

これらのコンポーネントは、クラスターへの受信接続を必要とせず、Azureのネイティブ セキュリティ インフラストラクチャを使用します。 すべてのコンポーネントは、送信専用接続を使用します (受信アクセスは必要ありません)。

Defender センサー コンポーネントの詳細

ポッド名 名前空間 サブタイプ 短い説明 能力 リソースの制限 エグレスが必要です
microsoft-defender-collector-ds-* kube-system DaemonSet eBPF テクノロジを使用してノードからランタイム テレメトリ (Kubernetes イベント、プロセス、ネットワーク データ) を収集し、Defender for Cloud に安全に送信します。 SYS_ADMIN、
SYS_RESOURCE、
SYS_PTRACE
メモリ: 296Mi

CPU: 360m
No
microsoft-defender-collector-misc-* kube-system デプロイ 特定のノードにバインドされていないクラスター レベルのインベントリイベントとセキュリティ イベントを収集します。 N/A メモリ: 64Mi

CPU: 60m
No
microsoft-defender-publisher-ds-* kube-system DaemonSet 収集されたテレメトリを Microsoft Defender for Containers バックエンド サービスに発行して、処理と分析を行います。 N/A メモリ: 200 Mi

CPU: 60m
HTTPS 443

アウトバンド アクセスの前提条件 の詳細情報

* リソース制限を構成することはできません。 Kubernetes リソースの制限の詳細を確認します。

Azure での Kubernetes のエージェントレス検出のしくみ

検出プロセスでは、次の間隔で作成されたスナップショットが使用されます。

アクセス許可アーキテクチャのダイアグラム。

Kubernetes のエージェントレス検出拡張機能を有効にすると、次のプロセスが発生します。

  • 作成:
    • Defender CSPM から拡張機能を有効にした場合、Defender for Cloud は CloudPosture/securityOperator/DefenderCSPMSecurityOperator という名前の ID を環境内に作成します。
    • Defender for Containers から拡張機能を有効にした場合、Defender for Cloud は CloudPosture/securityOperator/DefenderForContainersSecurityOperator という名前の ID を環境内に作成します。
  • Assign: Defender for Cloud は、サブスクリプション スコープの ID に Kubernetes Agentless Operator という組み込みロールを割り当てます。 ロールには、次のアクセス許可が含まれています。
    • AKS 読み取り (Microsoft.ContainerService/managedClusters/read)
    • 次のアクセス許可を持つ AKS の信頼されたアクセス。
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
      • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete AKS Trusted Access の詳細を確認します。
  • Discover: システム割り当て ID を使用Defender for Cloud、AKS の API サーバーへの API 呼び出しを行って、環境内の AKS クラスターを検出します。
  • Bind: AKS クラスターを検出した後、 Defender for Cloudは、作成された ID と Kubernetes ClusterRoleBindingClusterRole の間にを作成することで、AKS バインド操作を実行します。 ClusterRoleは API を通じて表示され、Defender for Cloud データ プレーンにクラスター内の読み取りアクセス許可が付与されます。

コピーされたスナップショットは、クラスターと同じリージョンに保持されます。