KubernetesはPodセキュリティスタンダードを強制できる、ビルトインのアドミッションコントローラーを提供しています。 アドミッションコントローラーを設定して、クラスター全体のデフォルトと例外を設定できます。
Podセキュリティアドミッションは、Kubernetes v1.22のアルファリリースに続き、Kubernetes v1.23でベータとしてデフォルトで利用可能になりました。 バージョン1.25以降、Podセキュリティアドミッションは正式リリース(GA)されています。
バージョンを確認するには次のコマンドを実行してください: kubectl version.
Kubernetes 1.37を実行していない場合は、実行している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 # 互換性に関する備考を参照
kind: PodSecurityConfiguration
# モードラベルが設定されていない場合に適用されるデフォルト値。
#
# レベルラベルの値は次のいずれかでなければならない:
# - "privileged"(デフォルト)
# - "baseline"
# - "restricted"
#
# バージョンラベルの値は次のいずれかでなければならない:
# - "latest"(デフォルト)
# - "v1.37"のような特定のバージョン
defaults:
enforce: "privileged"
enforce-version: "latest"
audit: "privileged"
audit-version: "latest"
warn: "privileged"
warn-version: "latest"
exemptions:
# 適用除外とする認証済みユーザー名の配列。
usernames: []
# 適用除外とするランタイムクラス名の配列。
runtimeClasses: []
# 適用除外とする名前空間の配列。
namespaces: []
--admission-control-config-fileを使用してkube-apiserverに指定する必要があります。