すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:Validating Admission Policy を有効にする

最終更新日:Mar 25, 2026

Validating Admission Policy (VAP) は、Kubernetes のネイティブなアドミッション制御メカニズムです。外部 Webhook に依存する Gatekeeper と比較して、VAP は kube-apiserver 内で直接ルールを検証するため、優れた安定性とパフォーマンスを提供します。Alibaba Cloud Kubernetes (ACK) では、セキュリティポリシーをデプロイする際に Common Expression Language (CEL) を選択することで、VAP をセキュリティポリシーエンジンとして有効にできます。これにより、クラスター内のリソースセキュリティとコンプライアンスを確保するための、より効率的で安定した方法が提供されます。

VAP の仕組み

VAP は、Kubernetes に組み込まれたアドミッション機能であり、リソースオブジェクトの作成または更新リクエストが永続化される前に、宣言型 CEL 式を使用してルールを検証できます。条件を満たさないリクエストは、kube-apiserver によって直接拒否されます。

ACK の Security Policy Management 機能は、VAP (バージョン 1.30 以降でデフォルトで有効) を統合しており、Gatekeeper の マルチポリシーエンジンソリューションに基づいています。CEL で記述されたポリシーインスタンスがデプロイされると、Gatekeeper はそれをネイティブな ValidatingAdmissionPolicy リソースに自動的に変換します。元の Gatekeeper Webhook はフォールバックメカニズムとして機能します。VAP が失敗した場合、リクエストは Webhook にフォールバックされ、ポリシーが有効であることを保証するために二次検証が行われます。

image

次の表は、VAP と Gatekeeper の主な違いについて説明しています。

  • コアアーキテクチャ

    ディメンション

    VAP

    Gatekeeper

    デプロイメントの依存関係

    kube-apiserver に組み込み。追加の Webhook は不要。

    Gatekeeper コントローラーと Webhook コンポーネントのデプロイが必要。

    実行パス

    kube-apiserver 内で実行され、ネットワークオーバーヘッドを排除。

    検証 Webhook を介して外部サービスを呼び出し、ネットワーク遅延が発生する。

    安定性

    外部コンポーネントに依存しないため、高い安定性。

    Gatekeeper コンポーネントの安定性に依存。

    ルール言語

    Kubernetes オブジェクトの構造に一致する CEL 式。

    Rego と CEL。複数の言語がサポートされる。

  • 機能サポート

    ディメンション

    VAP

    Gatekeeper

    監査機能 (既存のリソースの場合)

    サポートされていません。

    サポートされています。

    外部データソース

    サポートされていません。ルールはリクエスト内のオブジェクトデータのみにアクセスできます。

    サポートされています。external_data を使用して、他のリソースまたは外部データを参照できます。

    リソースミューテーション

    サポートされています。この機能は、Kubernetes 1.30 で Alpha段階にある Mutating Admission Policy (MAP) を介して利用できます。

    サポートされています。この機能は、CustomResourceDefinitions (CRDs) を介して実装されます。

    非ブロッキング 'warn' アクション

    サポートされています。パラメーターを validationActions: [Warn] に設定します。

    サポートされています。

    ドライラン

    kube-apiserver のネイティブのドライランメカニズムを介してサポートされています。

    サポートされています。

    免除/除外メカニズム

    match/exclude ルールを介してサポートされています。

    match/excludelabel セレクターなどのメソッドを介してサポートされています。

    イベント/サブスクリプション

    ネイティブイベントメカニズムは提供されません。

    サポートされています。違反ログと監査イベントを提供します。

ポリシー管理での VAP の有効化

ポリシー管理では、セキュリティポリシーエンジンを指定するためにポリシー言語を選択できます。システムは、対応するエンジンを自動的に使用してポリシーを実行します。

  • Rego: Gatekeeper エンジンを使用します。

  • CEL: VAP エンジンを使用します。

  1. クラスターリスト ページで、クラスター名をクリックします。左側のナビゲーションウィンドウで、Security > Policy をクリックします。

  2. [マイポリシー] タブをクリックし、次に [ポリシーインスタンスの作成] をクリックします。プロンプトに従ってポリシーインスタンスを設定します。

    image最初に CEL 型ポリシーインスタンスを作成する際は、VAP ポリシー監査機能を有効化する必要があります。これにより、[ポリシー適用の概要] で VAP 実行結果を表示できます。

    デフォルトでは、このページには過去 7 日間の最新 100 件の違反または警告ログが表示されます。さらに多くのログを表示するには、操作 > ログセンター を選択し、コントロールパネルコンポーネントのログ タブをクリックします。次に、validating-admission-policy ログを選択して表示します。

    image

  3. デプロイメントが完了したら、[ポリシー適用の概要] ページに移動して、ポリシー実行結果を表示します。

その他の操作

既存のポリシーの実行エンジンの変更

既存のポリシーのポリシー言語を変更できます。ただし、同じポリシーテンプレートから作成されたすべてのポリシーインスタンスは、同じ言語を使用する必要があります。テンプレートの言語を変更すると、システムは関連付けられたすべてのインスタンスを自動的に更新します。

  • ACK コンソールで、マイポリシー タブでリストから対象のポリシーを探し、ポリシー言語 列で 変更 をクリックして新しい言語を選択します。

    image

  • API 経由: ポリシーライブラリ内のポリシーインスタンスのクエリ、デプロイ、変更、および削除については、「DeployPolicyInstance」をご参照ください。