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 環境のアーキテクチャ
- Azure Kubernetes Service (AKS)
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- Azure Arc 対応 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の拡張検出および対応プラットフォームと統合されます。
注
これらのコンポーネントは、クラスターへの受信接続を必要とせず、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 を環境内に作成します。
- Defender CSPM から拡張機能を有効にした場合、Defender for Cloud は
-
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 データ プレーンにクラスター内の読み取りアクセス許可が付与されます。
注
コピーされたスナップショットは、クラスターと同じリージョンに保持されます。