ビルトインのアドミッションコントローラーを設定してPodセキュリティスタンダードを強制する

ビルトインのアドミッションコントローラーを設定してPodセキュリティスタンダードを強制する

KubernetesはPodセキュリティスタンダードを強制できる、ビルトインのアドミッションコントローラーを提供しています。

アドミッションコントローラーを設定して、クラスター全体のデフォルトと例外を設定できます。

始める前に

Podセキュリティアドミッションは、Kubernetes v1.22のアルファリリースに続き、 Kubernetes v1.23でベータとしてデフォルトで利用可能になりました。 バージョン1.25以降、Podセキュリティアドミッションは正式リリース(GA)されています。

バージョンを確認するには次のコマンドを実行してください: kubectl version.

Kubernetes 1.36を実行していない場合は、 実行しているKubernetesバージョンのドキュメントに切り替えて、このページを参照できます。

アドミッションコントローラーを設定する

備考:

pod-security.admission.config.k8s.io/v1設定はv1.25+が必要です。 v1.23とv1.24は、v1beta1をご利用ください。 v1.22は、v1alpha1をご利用ください。
apiVersion: apiserver.config.k8s.io/v1
kind: AdmissionConfiguration
plugins:
- name: PodSecurity
  configuration:
    apiVersion: pod-security.admission.config.k8s.io/v1 # see compatibility note
    kind: PodSecurityConfiguration
    # Defaults applied when a mode label is not set.
    #
    # Level label values must be one of:
    # - "privileged" (default)
    # - "baseline"
    # - "restricted"
    #
    # Version label values must be one of:
    # - "latest" (default) 
    # - specific version like "v1.36"
    defaults:
      enforce: "privileged"
      enforce-version: "latest"
      audit: "privileged"
      audit-version: "latest"
      warn: "privileged"
      warn-version: "latest"
    exemptions:
      # Array of authenticated usernames to exempt.
      usernames: []
      # Array of runtime class names to exempt.
      runtimeClasses: []
      # Array of namespaces to exempt.
      namespaces: []

備考:

上記のマニフェストは、--admission-control-config-fileを使用してkube-apiserverに指定する必要があります。