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

Azure Kubernetes Service (AKS)、Amazon Elastic Kubernetes Service(EKS)、Google Kubernetes Engine(GKE)クラスター全体の展開およびアップグレードタイミングを制御するには、Helmを使ってDefender for Containersセンサーをインストールし設定してください。 始める前に、前提 条件を満たしていることを確認してください。

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

  • センサーアップグレード:ヘルムベースの展開を用いることで、センサーのアップグレードとタイミングを管理できます。 自動プロビジョニングは、Microsoft が管理するロールアウト スケジュールに従います。

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

前提条件

Helm を使用してセンサーをインストールする前に、次の前提条件を満たす必要があります。

  • コマンドライン環境にインストールし、その helm と curlで利用可能にしてください。

    Defender for Containersを展開する前に、Helmとcurlがインストールされ利用可能であることを確認するには、以下のコマンドを実行してください。

    helm version
    curl --version
    
  • Defender センサー のネットワーク要件の説明に従って、Defender for Containers センサーのすべての前提条件を実装します。

  • ターゲット サブスクリプションまたはセキュリティ コネクタで Defender for Containers を有効にします。

  • Defender for Containers プランの次のコンポーネントを有効にします。

    • Defender センサー
    • Kubernetes API アクセス
  • アマゾン ウェブ サービス (AWS) と Google Cloud Platform (GCP) 環境では、Azure Arc 用の Auto Provision 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/policytemplates.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 自動クラスターでサポートされます。 このシナリオではアドオン展開はサポートされていません。

Important

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

Kubernetes クラスターにデプロイできる内容を制御するセキュリティ規則を定義します。 これらの規則では、セキュリティ条件を満たしていないコンテナー イメージをブロックまたは監査できます。

  1. Azure portal にサインインする

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

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

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

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

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

Important

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>をインストール時に使用した名前空間に置き換えます。

--reuse-values パラメーターは、アップグレード中に既存のカスタム値を保持します。

<namespace>の場合は、次を使用します。

  • mdc 標準の AKS、EKS、および GKE クラスターの場合。
  • kube-system AKS 自動クラスターの場合。

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

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

次のステップ