この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

これは未公開の文書です Admission Controller 1.34-dev.

Admission Controller ネームスペースでの評価を許可する

デフォルトでは、Admission Controller は自身のネームスペースでリソースを評価するポリシーを許可しません。これにより、Admission Controller のインストールを破損させる可能性のある誤設定を防ぎます。

この安全対策は2層で実装されています。最初の階層は --always-accept-admission-reviews-on-deployments-namespace CLI フラグによって制御されます。 このフラグは、Helm チャートでデフォルトで有効になっており、コントローラーが PolicyServer デプロイメントで KUBEWARDEN_ALWAYS_ACCEPT_ADMISSION_REVIEWS_ON_NAMESPACE 環境変数を構成するようにします。この変数は、ポリシーサーバーに対して、変数で定義されたネームスペースからのアドミッションレビューを常に受け入れるように指示します。二番目の階層は Admission Controller 自体で、デフォルトではクラスター全体のポリシーにネームスペースセレクターを追加し、コントローラーが実行されるネームスペースをスキップします。

ただし、いくつかのシナリオでは、クラスター管理者がポリシーにこのネームスペースでリソースを評価させたい場合があります。このページでは、両方の保護階層を無効にすることでそれを行う方法を説明します。

PolicyServer 保護環境変数を削除する

最初のステップは、コントローラーが PolicyServer デプロイメントで KUBEWARDEN_ALWAYS_ACCEPT_ADMISSION_REVIEWS_ON_NAMESPACE 環境変数を設定しないように構成することです。

これを行うには、Admission Controller のインストールをアップグレードし、alwaysAcceptAdmissionReviewsOnDeploymentsNamespace Helm チャートの kubewarden-controller 値を false に設定します。

helm upgrade -n kubewarden
  --set "alwaysAcceptAdmissionReviewsOnDeploymentsNamespace=false"
  kubewarden-controller kubewarden/kubewarden-controller

この変更により、ポリシーサーバーは任意のネームスペースからリソースを評価できるようになります。 これが完了すると、ポリシーは Admission Controller ネームスペースからのアドミッションレビューを評価するように構成できます。

Admission Controller ネームスペース内のリソースを評価するためのポリシーを設定します。

Admission Controller ネームスペースで作成されたリソースを評価するポリシーを許可するために、allowInsideAdmissionControllerNamespace フィールドが true に設定されたクラスター全体のポリシーをデプロイします。

ネームスペースポリシーはどうなりますか?

この spec フィールドは、クラスター全体のポリシーでのみ利用可能です。 ネームスペースポリシーは、デプロイされた同じネームスペース内のリソースを評価するため、このフィールドを CRD に追加することは意味がありません。 さらに、Admission Controller ネームスペースはクラスターオペレーターによって管理されるべきであり、彼らはそこにポリシーをデプロイするかどうかを決定できます。

apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
  annotations:
    io.kubewarden.policy.category: PSP
    io.kubewarden.policy.severity: medium
  name: pod-privileged-policy
spec:
  module: registry://ghcr.io/kubewarden/policies/pod-privileged:v1.0.10
  settings: {}
  rules:
    - apiGroups:
        - ""
      apiVersions:
        - v1
      resources:
        - pods
      operations:
        - CREATE
  mutating: false
  allowInsideAdmissionControllerNamespace: true

この設定オプションは、デフォルトで false であり、コントローラーが Admission Controller ネームスペースを除外するネームスペースセレクターを追加するのをスキップし、ポリシーがそのネームスペースを含むすべてのネームスペースからリソースを評価できるようにします。

私のカスタムネームスペースセレクターはどうなりますか?

ポリシー CRD は、ユーザーが独自のネームスペースセレクターを定義することも許可します。これらのセレクターは変更されません。これは、ユーザーが Admission Controller ネームスペースをスキップするセレクターを定義した場合でも、ポリシーは期待通りにそのネームスペースを無視し続けることを意味します。