この記事では、Helm を使用して、AKS、EKS、GKE クラスターに Microsoft Defender for Containers センサーをインストールして構成する方法について説明します。
Defender for Containers では、自動プロビジョニングや Helm ベースのインストールなど、センサーをデプロイするための複数のデプロイ モデルがサポートされています。 Helm ベースのデプロイでは、センサーのバージョン管理とアップグレードのタイミングをより詳細に制御できますが、運用上の責任が変わります。 Helm ベースのデプロイを使用する場合は、次の点を考慮してください。
センサーのアップグレード: Helm ベースのデプロイを使用して、センサーのアップグレードとアップグレードのタイミングを管理します。 自動プロビジョニングは、Microsoft が管理するロールアウト スケジュールに従います。
自動インストール フロー: Helm を使用してセンサーをデプロイする場合は、既存のデプロイとの競合を回避するために、Azure portal で自動インストール プロンプトと推奨事項をスキップします。
[前提条件]
Helm を使用してセンサーをインストールする前に、次の点を確認してください。
Defender センサーネットワーク要件で説明されているように、Defender for Containers センサーのすべての前提条件を実装します。
コンテナーのDefenderは、ターゲット サブスクリプションまたはセキュリティ コネクタで有効になっています。
- Azure サブスクリプション: ポータルを使用して AKS で Defender for Containers を有効にする
- アマゾン ウェブ サービス (AWS): ポータルを使用して AWS (EKS) で Defender for Containers を有効にする
- Google Cloud Project (GCP): ポータルを使用して GCP (GKE) で Defender for Containers を有効にする
- Arc 対応 Kubernetes: ポータル経由で Arc 対応 Kubernetes 上の Defender for Containers を有効にする
Defender for Containers プランの次のコンポーネントが有効になっています。
- Defender センサー
- Kubernetes API アクセス
AWS および GCP 環境の場合:Azure Arc に対する Defender のセンサーの自動プロビジョニング トグルが無効になっていることを確認します。
AWS アカウントまたは GCP プロジェクトの他の Arc 対応クラスターに対して自動プロビジョニングを有効のままにする場合は、Helm を使用してセンサーをデプロイするクラスターに
ms_defender_e2e_discovery_exclude=trueタグを適用します。一般公開バージョンのセンサーをデプロイできるポリシー割り当ての競合が環境にありません。
次のポリシー定義 ID を使用するポリシー割り当てを確認し、競合する割り当てを削除します。
64def556-fbad-4622-930e-72d1d5589bf5ポリシー定義を確認するには、Azure ポータルで Policy 定義に移動し、ポリシー定義 ID を検索します。
Helm チャートをインストールする
Defender for Containers Helm グラフは、mcr.microsoft.com/azuredefender/microsoft-defender-for-containers に発行されます。
グラフには、 global.cloudIdentifiersのクラスター識別子の値が必要です。 これらの値は、次の例に示すように、 --setを使用するか、値ファイルを使用してインラインで指定できます。
最新のグラフ バージョンをインストールするには、基本の Helm インストール コマンドを使用します。 環境固有の例に示すように、値ファイルを使用するか、global.cloudIdentifiersでインラインで必要な--set値を指定します。
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers
次のコマンドを実行して、発行済みのバージョンを一覧表示できます。
curl https://mcr.microsoft.com/v2/azuredefender/microsoft-defender-for-containers/tags/list
特定のバージョンをインストールするには、バージョン タグを含めます。
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers:<tag>
機能フラグやポッド リソースの制限など、構成可能なグラフ値を調べるには、グラフをプルし、 values.yaml ファイルを確認します。
helm pull oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers
環境に合わせてセンサーをインストールするには:
標準の AKS クラスターの場合は、 mdc 名前空間を使用します。
AKS 自動クラスターの場合は、 kube-system 名前空間を使用します。
AKS クラスターにコンテナーデプロイ用の既存のDefenderが既にある場合は、「Configure for Containers for Defender Azure」の説明に従って既存のデプロイを無効にし、次のコマンドを実行して残っているリソースを削除します。
kubectl delete crd/policies.defender.microsoft.com || true
kubectl delete crd/runtimepolicies.defender.microsoft.com || true
kubectl delete crd/securityartifactpolicies.defender.microsoft.com || true
kubectl delete ClusterRole defender-admission-controller-cluster-role || true
kubectl delete ClusterRole defender-admission-controller-resource-cluster-role || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-role-binding || true
kubectl delete ClusterRoleBinding defender-admission-controller-cluster-resource-role-binding || true
センサーをインストールします。
helm install defender-k8s oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
--create-namespace --namespace <namespace> \
--set global.cloudIdentifiers.Azure.subscriptionId="<cluster-subscription-id>" \
--set global.cloudIdentifiers.Azure.resourceGroupName="<cluster-resource-group>" \
--set global.cloudIdentifiers.Azure.clusterName="<cluster-name>" \
--set global.cloudIdentifiers.Azure.region="<cluster-region>"
<namespace>を次のように置き換えます。
-
mdc標準 AKS クラスターの場合。 -
kube-systemAKS 自動クラスターの場合。
インストールの確認
インストール時に使用した名前空間を使用して、インストールが成功したことを確認します。
helm list --namespace mdc
STATUS フィールドにdeployedが表示された場合、インストールは成功します。
ゲートデプロイのセキュリティ規則を構成する
注
Kubernetes のゲートデプロイは、 kube-system 名前空間で Helm を使用してセンサーがインストールされている場合にのみ、AKS 自動クラスターでサポートされます。 このシナリオでは、アドオンの展開はサポートされていません。
Von Bedeutung
ルールを作成すると、選択したサブスクリプションが not supported for Gated deploymentとして表示されることがあります。 この状態は、ダッシュボードの自動インストールではなく、Helm を使用して Defender for Containers コンポーネントをインストールしたために発生します。
Kubernetes クラスターにデプロイできる内容を制御するセキュリティ規則を定義します。 これらの規則は、セキュリティ基準に基づいてコンテナー イメージをブロックまたは監査するのに役立ちます。たとえば、脆弱性が多すぎるイメージなどです。
Azure portal にサインインします。
[Defender for Cloud]>[環境設定] に移動します。
[セキュリティ規則] を選択します。
[Gated deployment]>[Vulnerability assessment] を選択します。
編集するルールを選択するか、[ + ルールの追加] を選択して新しいルールを作成します。
既存の推奨事項を処理する
Von Bedeutung
Helm を使用してセンサーをインストールする場合は、既存のDefender for Cloudの推奨事項を使用して、同じクラスターの Defender プロファイルまたは Arc 拡張機能をインストールしないでください。 これらの推奨事項を修復すると、競合するデプロイが作成される可能性があります。
デプロイの種類によっては、次の推奨事項が引き続きDefender for Cloudに表示される場合があります。
Azure: Azure Kubernetes Service クラスターで Defender プロファイルが有効になっている必要がある - Microsoft Azure
Azure ポータルのスクリーンショットには、AKS の Defender プロファイル推奨事項が表示されています。 Arc 対応 Kubernetes クラスター: Azure Arc 対応 Kubernetes クラスターには、Defender拡張機能がインストールされている必要があります - Microsoft Azure
既存の Helm ベースのデプロイをアップグレードする
Helm ベースのデプロイでは、センサーのアップグレードを管理します。 Defender for Cloud では、自動的には適用されません。
次のコマンドを実行して、既存の Helm ベースのデプロイを更新します。 インストール時に使用した名前空間を使用します。
helm upgrade defender-k8s \
oci://mcr.microsoft.com/azuredefender/microsoft-defender-for-containers \
--namespace <namespace> \
--reuse-values
<namespace>の場合は、次を使用します。
-
mdc標準の AKS、EKS、および GKE クラスターの場合。 -
kube-systemAKS 自動クラスターの場合。
リソースの競合が原因でアップグレードが失敗した場合は、upgrade コマンドに次のオプションを追加します。
--server-side=true --resolve-conflicts