Helm を使用して Defender for Containers センサーをインストールする

この記事では、Helm を使用して、AKS、EKS、GKE クラスターに Microsoft Defender for Containers センサーをインストールして構成する方法について説明します。

Defender for Containers では、自動プロビジョニングや Helm ベースのインストールなど、センサーをデプロイするための複数のデプロイ モデルがサポートされています。 Helm ベースのデプロイでは、センサーのバージョン管理とアップグレードのタイミングをより詳細に制御できますが、運用上の責任が変わります。 Helm ベースのデプロイを使用する場合は、次の点を考慮してください。

  • センサーのアップグレード: Helm ベースのデプロイを使用して、センサーのアップグレードとアップグレードのタイミングを管理します。 自動プロビジョニングは、Microsoft が管理するロールアウト スケジュールに従います。

  • 自動インストール フロー: Helm を使用してセンサーをデプロイする場合は、既存のデプロイとの競合を回避するために、Azure portal で自動インストール プロンプトと推奨事項をスキップします。

[前提条件]

Helm を使用してセンサーをインストールする前に、次の点を確認してください。

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-system AKS 自動クラスターの場合。

インストールの確認

インストール時に使用した名前空間を使用して、インストールが成功したことを確認します。

helm list --namespace mdc

STATUS フィールドにdeployedが表示された場合、インストールは成功します。

ゲートデプロイのセキュリティ規則を構成する

Kubernetes のゲートデプロイは、 kube-system 名前空間で Helm を使用してセンサーがインストールされている場合にのみ、AKS 自動クラスターでサポートされます。 このシナリオでは、アドオンの展開はサポートされていません。

Von Bedeutung

ルールを作成すると、選択したサブスクリプションが not supported for Gated deploymentとして表示されることがあります。 この状態は、ダッシュボードの自動インストールではなく、Helm を使用して Defender for Containers コンポーネントをインストールしたために発生します。

Kubernetes クラスターにデプロイできる内容を制御するセキュリティ規則を定義します。 これらの規則は、セキュリティ基準に基づいてコンテナー イメージをブロックまたは監査するのに役立ちます。たとえば、脆弱性が多すぎるイメージなどです。

  1. Azure portal にサインインします。

  2. [Defender for Cloud]>[環境設定] に移動します。

  3. [セキュリティ規則] を選択します

  4. [Gated deployment]>[Vulnerability assessment] を選択します。

  5. 編集するルールを選択するか、[ + ルールの追加] を選択して新しいルールを作成します。

既存の推奨事項を処理する

Von Bedeutung

Helm を使用してセンサーをインストールする場合は、既存のDefender for Cloudの推奨事項を使用して、同じクラスターの Defender プロファイルまたは Arc 拡張機能をインストールしないでください。 これらの推奨事項を修復すると、競合するデプロイが作成される可能性があります。

デプロイの種類によっては、次の推奨事項が引き続きDefender for Cloudに表示される場合があります。

既存の 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-system AKS 自動クラスターの場合。

リソースの競合が原因でアップグレードが失敗した場合は、upgrade コマンドに次のオプションを追加します。

--server-side=true --resolve-conflicts