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

Container Service for Kubernetes:ゲートキーパー コンポーネントの概要とリリース履歴

最終更新日:Mar 27, 2026

ゲートキーパー コンポーネントは、Open Policy Agent (OPA) を Container Service for Kubernetes (ACK) クラスターに統合し、Kubernetes ネイティブのカスタムリソース定義 (CRD) を使用してアドミッションポリシーを定義および適用できるようにします。ゲートキーパーを使用すると、ラベル、リソースタイプ、名前空間、その他の属性に基づいて、クラスター内で作成可能なリソースを制御できます。また、名前空間のラベル管理にも利用可能です。

ゲートキーパーの使用を開始するには、以下の手順を実行してください:

  1. ACK コンソールの[アドオン] ページからゲートキーパーをインストールします。 詳細については、「コンポーネントの管理」をご参照ください。

  2. Rego でポリシー論理を定義する制約テンプレートを作成します。

  3. 特定の名前空間またはリソースタイプにテンプレートを適用する制約を作成します。

  4. 制約が、期待通りにリクエストを許可または拒否することを確認します。

OPA の詳細については、「Open Policy Agent」をご参照ください。

Gatekeeper architecture

仕組み

ゲートキーパーは、Kubernetes のアドミッション Webhook として動作します。リソースの作成または更新リクエストが API サーバーに到達すると、validation.gatekeeper.sh Webhook がそのリクエストをインターセプトし、すべてのアクティブな制約に対して評価を行います。

ポリシーモデルは 2 つのレイヤーで構成されます:

  • ConstraintTemplate:Rego でポリシー論理を定義し、クラスター内に新しいカスタムリソース定義 (CRD) の種類を登録します。

  • Constraint:ConstraintTemplate のインスタンスであり、ポリシーを適用する対象のリソースと、適用するパラメーターを指定します。

ポリシー作成の詳細については、「Gatekeeper の使い方」をご参照ください。

Pod のラベルポリシーの適用

以下の例では、特定の名前空間で作成されるすべての Pod に指定されたラベルを必須とする方法を示します。制約テンプレートの初期化には約 10 秒かかります。制約自体も、アクティブになるまでに約 10 秒かかります。

前提条件

開始する前に、以下の条件を満たしていることを確認してください:

  • ゲートキーパーがインストール済みの ACK クラスター

  • クラスターに接続するよう設定済みの kubectl

名前空間の作成とラベルの付与

テスト用の名前空間を作成し、制約でマッチングするラベルを付与します:

kubectl create ns test-gatekeeper
kubectl label ns test-gatekeeper name=test-gatekeeper

制約テンプレートの作成

以下の制約テンプレートは、K8sRequiredLabels という新しい CRD 種別を登録し、Rego でポリシー論理を定義します:

kubectl apply -f - <<EOF
apiVersion: templates.gatekeeper.sh/v1beta1
kind: ConstraintTemplate
metadata:
  name: k8srequiredlabels
spec:
  crd:
    spec:
      names:
        kind: K8sRequiredLabels
      validation:
        openAPIV3Schema:
          properties:
            labels:
              type: array
              items:
                type: string
  targets:
    - target: admission.k8s.gatekeeper.sh
      rego: |
        package k8srequiredlabels

        # 必須ラベルがリソースに存在しない場合、違反がトリガーされます。
        violation[{"msg": msg, "details": {"missing_labels": missing}}] {
          # 入力リソースのすべてのラベルを収集します。
          provided := {label | input.review.object.metadata.labels[label]}
          # 制約パラメーターで指定されたすべての必須ラベルを収集します。
          required := {label | label := input.parameters.labels[_]}
          # 必須だが提供されていないラベルの集合を計算します。
          missing := required - provided
          count(missing) > 0
          msg := sprintf("以下のラベルを指定する必要があります:%v", [missing])
        }
EOF

制約テンプレートの初期化が完了するまで、約 10 秒待機してください。

制約の作成

以下の制約は、K8sRequiredLabels テンプレートを、name=test-gatekeeper というラベルが付与されたすべての名前空間内のすべての Pod に適用し、各 Pod に gatekeeper-test-label ラベルを必須とします:

kubectl apply -f - <<EOF
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
  name: pod-must-have-gatekeeper-test-label
spec:
  match:
    kinds:
      - apiGroups: [""]
        kinds: ["Pod"]
    namespaceSelector:
      matchExpressions:
      - key: name
        operator: In
        values: ["test-gatekeeper"]
  parameters:
    labels: ["gatekeeper-test-label"]
EOF

制約がアクティブになるまで、約 10 秒待機してください。

制約の検証

以下のテストを実行して、制約が正しく動作することを確認します。

テスト 1:必須ラベルのない Pod は拒否されます。

kubectl -n test-gatekeeper run test-deny --image=nginx --restart=Never

予期される出力:

Error from server ([denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}): admission webhook "validation.gatekeeper.sh" denied the request: [denied by pod-must-have-gatekeeper-test-label] you must provide labels: {"gatekeeper-test-label"}

この Pod は拒否されます。理由は、test-gatekeeper 名前空間が制約のセレクターと一致し、かつ Pod に gatekeeper-test-label ラベルが付与されていないためです。

テスト 2:必須ラベル付きの Pod は許可されます。

kubectl -n test-gatekeeper run test-pass -l gatekeeper-test-label=pass --image=nginx --restart=Never

予期される出力:

pod/test-pass created

この Pod は許可されます。理由は、gatekeeper-test-label ラベルが付与されているためです。

テスト 3:制約が適用されない名前空間内の Pod は許可されます。

kubectl -n default run test-deny --image=nginx --restart=Never

予期される出力:

pod/test-deny created

default 名前空間には name=test-gatekeeper ラベルが付与されていないため、この制約は適用されません。

リリースノート

2025 年 3 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.18.2.192-ge2860248-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.18.2.192-ge2860248-aliyun

2025-03-04

  • OPA Gatekeeper をバージョン 3.18.2 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.18.2」をご参照ください。

  • コンポーネントの Go バージョンを 1.23.6 にアップグレードし、安定性を向上させました。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2024 年 12 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.17.1.174-g6383c639-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.17.1.174-g6383c639-aliyun

2024-12-09

OPA Gatekeeper をバージョン 3.17.1 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.17.1」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2024 年 9 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.16.3.158-g5e73c0ad-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.16.3.158-g5e73c0ad-aliyun

2024-09-25

OPA Gatekeeper をバージョン 3.16.3 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.16.3」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2024 年 3 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.15.1.150-g29b8b2a8-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.15.1.150-g29b8b2a8-aliyun

2024-03-27

OPA Gatekeeper をバージョン 3.15.1 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.15.1」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2023 年 10 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.12.0.138-g1ee37e37-aliyun

registry-cn-hangzhou.ack.aliyuncs.com/acs/gatekeeper:v3.12.0.138-g1ee37e37-aliyun

2023-10-09

  • OPA Gatekeeper をバージョン 3.12.0 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.12.0」をご参照ください。

  • Service の削除イベントを処理するようポリシーを設定可能になりました。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2023 年 4 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.10.0.130-g0e79597d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.10.0.130-g0e79597d-aliyun

2023-04-18

  • OPA Gatekeeper をバージョン 3.10.0 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.10.0」をご参照ください。

  • データレプリケーション機能はデフォルトで無効化されています。ACK コンソールの **[アドオン]** ページから有効化できます。詳細については、「データのレプリケーション」をご参照ください。

  • 名前空間の削除イベントを処理するようポリシーを設定可能になりました。

  • Kubernetes 1.26 をサポートしました。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2022 年 6 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.8.1.113-geb7947ef-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.8.1.113-geb7947ef-aliyun

2022-06-08

  • OPA Gatekeeper をバージョン 3.8.1 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.8.1」をご参照ください。

  • 監査用の Pod はデフォルトで無効化されています。ACK コンソールの **[アドオン]** ページから有効化できます。

  • CPU リソース、メモリ、レプリカ数は、ACK コンソールの **[アドオン]** ページから設定可能です。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2022 年 4 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.7.1.93-gaf375989-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.1.93-gaf375989-aliyun

2022-04-02

Mutation 機能は、ACK コンソールの **[アドオン]** ページから有効化できます。デフォルトでは無効化されています。詳細については、「Mutation」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2022 年 2 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.7.0.84-gf5fd3ffd-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.84-gf5fd3ffd-aliyun

2022-02-15

コンポーネントのパフォーマンスを最適化しました。極端なケースにおける異常な CPU 使用率の問題を修正しました。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2022 年 1 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.7.0.82-gafe4391b-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.7.0.82-gafe4391b-aliyun

2022-01-14

  • OPA Gatekeeper をバージョン 3.7.0 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.7.0」をご参照ください。

  • ARM64 アーキテクチャをサポートしました。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2021 年 9 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.6.0.62-g156146d-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.6.0.62-g156146d-aliyun

2021-09-20

  • ゲートキーパー 3.6.0.62 以降のバージョンでは、Kubernetes 1.16.9 以降を実行する ACK クラスターのみをサポートします。

  • OPA Gatekeeper をバージョン 3.6.0 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。詳細については、「v3.6.0」をご参照ください。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2021 年 3 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.3.0.24-8e68abc-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.3.0.24-8e68abc-aliyun

2021-03-16

  • ゲートキーパーを登録済みクラスターにインストール可能になりました。

  • OPA Gatekeeper をバージョン 3.3.0 に更新しました。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。

2020 年 8 月

バージョン

イメージアドレス

リリース日

説明

影響

v3.1.0.11-24bab09-aliyun

registry.cn-hangzhou.aliyuncs.com/acs/gatekeeper:v3.1.0.11-24bab09-aliyun

2020-08-20

OPA Gatekeeper をバージョン 3.1.0-beta.12 に更新しました。OPA Gatekeeper は、ゲートキーパーの基盤となるオープンソースプロジェクトです。ゲートキーパーコンポーネントは OPA Gatekeeper に依存しています。

コンポーネントの更新中に例外が発生した場合、クラスター内のリソース変更が失敗する可能性があります。更新は、トラフィックが少ない時間帯に実施してください。