マネージド クラスター API を使用して AKS のゲートデプロイを有効にする

この記事では、マネージド クラスター API を使用して、Azure Kubernetes Service (AKS)のゲートデプロイを構成する方法について説明します。 Helm を使用して、Defender for Containers センサーをインストールすることもできます。

ゲートデプロイでは、Kubernetes クラスターに許可される前に、アドミッション コントローラーを使用してコンテナー イメージを評価します。 AKS の場合、ゲートされたデプロイ エージェントは、クラスターで使用される Azure Container Registries (APR) への読み取りアクセスを必要とするため、コンテナーのDefenderによって生成された脆弱性の結果成果物にアクセスできます。

マネージド クラスター API を使用してゲート デプロイを構成する前に、AKS クラスターと APR のコンテナー コンポーネントに必要なDefenderを有効にします。

必要な ACR アクセスを提供するには、ユーザー割り当てマネージド ID を作成し、関連する ACR に対する読み取りアクセス許可を割り当て、フェデレーション ID 資格情報を構成し、マネージド クラスター API でマネージド ID を参照します。

前提条件

開始する前に次の点を確認します。

  • Microsoft Azure のサブスクリプションを所有しています。 Azure サブスクリプションをお持ちでない場合は、無料サブスクリプションにサインアップすることができます。

  • Azure サブスクリプションでDefender for Cloudが有効になっています

  • Defender for Containers は、AKS クラスターと Azure Container Registries (APR) を含むAzure サブスクリプションに対して有効になり、次のコンポーネントが有効になります。

    • セキュリティ ゲーティングを使用したDefender センサー
    • セキュリティの結果を使用したレジストリ アクセス

    セキュリティ ゲーティングは 1 回だけインストールする必要があります。 セキュリティ ゲーティング トグルを初めて有効にすると、セキュリティ ゲーティングがインストールされます。 その後、セキュリティ ゲーティングは既にインストールされています。 インストールが再度実行されると、システムはこれを検出し、何もしません。 API を使用してもう一度インストールしようとすると、セキュリティゲートが既に存在するため失敗します。

    セキュリティゲーティングがオンになっていることを示すスクリーンショット。

  • AKS クラスターには次の内容があります。

  • ユーザー割り当てマネージド ID を作成して割り当てるためのアクセス許可があります。

  • クラスターで使用されるすべての ACR に対して、AcrPull ロールまたは同等の読み取りロールを割り当てる権限があります。

マネージド ID を構成する

ゲート展開のために管理IDを設定するには以下の手順を実行します:

  1. ゲート付き展開エージェントが使用するマネージド サービス ID (MSI) を作成します。

  2. クラスターで使用されるすべての ACR で、AcrPull ロール (または同等の読み取りロール) を MSI に割り当てます

  3. フェデレーション ID 資格情報 (FIC) を MSI に追加 します。これにより、ゲートデプロイ エージェントは、次の FIC パラメーターを使用して AKS ワークロード ID を使用して認証できます。

    • 発行者: AKS OIDC 発行者 URL
    • サブジェクト: ゲートされたデプロイ エージェントによって使用されるサービス アカウント system:serviceaccount:kube-system:defender-admission-controller-serviceaccount
    • 対象ユーザー: api://AzureADTokenExchange
  4. マネージド クラスター API 構成の securityGating セクションで、マネージド クラスター API 構成のセキュリティ制限セクションの下にある ID パラメーターに MSI の objectId を設定します。

    セキュリティゲーティング セクションの ID パラメーターを示すマネージド クラスター API 構成のスクリーンショット。

    MSIのobjectIdをidentitiesパラメータに設定することで、ゲーテッドデプロイメントエージェントが実行時にMSIを使用できるようにします。

次のステップ