このトピックでは、Kubernetes セキュリティ強化ポリシーの組み込みルールについてアルファベット順に一覧表示します。

組み込みルール

ルール名 説明 カテゴリ
ホスト名前空間へのアクセス ホストのネットワーク、PID、および IPC 名前空間へのアクセス。 ワークロード セキュリティ
ホストパスへのアクセス コンテナでのホスト ディレクトリの使用を制限します。 ボリューム
永続データへのアクセス 非コア ボリューム タイプの使用を PersistentVolumes で定義されたボリューム タイプに制限します。 ボリューム
追加機能 この機能により、バイナリの「root/non-root」二分法がきめ細かいアクセス制御システムに変わります。このルールは、コンテナの実行時に追加される機能を適用するのに役立ちます。 ワークロード セキュリティ
権限の昇格を許可 AllowPrivilegeEscalation は、プロセスが親プロセスよりも多くの権限を取得できるかどうかを管理します。 ワークロード セキュリティ
特権コンテナを許可 コンテナを特権モードで実行します。特権コンテナ内のプロセスは、基本的にホストの root と同じです。 ワークロード セキュリティ
AppArmor AppArmor (Application Armor) は、オペレーティング システムとそのアプリケーションをセキュリティ上の脅威から保護する Linux セキュリティ モジュールです。これを使用するには、システム管理者が AppArmor セキュリティ プロファイルを各プログラムに関連付けます。 ワークロード セキュリティ
クラスタ ロールのバインド ユーザーまたはサービス アカウントをクラスタ内のロールとそのすべての名前空間にバインドします。 RBAC
会社の禁止リスト 会社の禁止ファイルを含むイメージの展開を防止します。 コンテナ イメージ
CPU 制限 ワークロード間で CPU を分散し、単一のコンテナがリソースを使い果たしてシステムを停止できないようにします。 割り当て
クリティカルな脆弱性 OS パッケージまたはライブラリに重大な脆弱性があるイメージの展開を防止します。 コンテナ イメージ
一時コンテナを拒否 一時コンテナは、ポッド コンテキスト内でアドホック コンテナを実行することで、ツール セットまたはアクセスが制限されたワークロードをデバッグするのに役立ちます。管理者にとっては強力ですが、一時コンテナは攻撃者が悪意を持ってワークロードへの特権アクセスを取得するために使用する可能性があります。 コマンド
最新のタグを拒否 「最新」タグを持つコンテナ イメージを識別します。最新のタグを使用すると、イメージ バージョンの追跡や適切なロールバックが困難になります。 コンテナ イメージ
新しいリソースを拒否 関連付けられた範囲内の新しいリソースの展開を特定します。 ワークロード セキュリティ
新しい CRD の展開 特定の Kubernetes インストールをカスタマイズして、Kubernetes リソースを拡張します。カスタム リソースがインストールされると、ユーザーは kubectl を使用してオブジェクトを作成してアクセスできます。 CRD
ルートなしの適用 コンテナは、root プライマリまたは補助 GID で実行しないようにする必要があります。コンテナのユーザー/グループ ID を指定するか、runAsNonRoot を true に設定すると、コンテナは root 以外のユーザーまたはグループとして実行する必要があることを示します。 ワークロード セキュリティ
Exec からコンテナ Kubectl exec を使用すると、ユーザーはコンテナでコマンドを実行できます。権限を持つ攻撃者が「kubectl exec」を実行して、悪意のあるコードを実行し、クラスタ内のリソースを侵害する可能性があります。 コマンド
ホスト ポート ホスト ポートによってワークロードを公開できるようにします。 ネットワーク
イメージがスキャンされない 展開から 20 分以内にスキャンされていないイメージを含むワークロードを特定します。 コンテナ イメージ
入力方向コントローラ 入力方向コントローラによってワークロードを公開できるようにします。 ネットワーク
既知のマルウェア 既知のマルウェアを含むイメージの展開を防止します。 コンテナ イメージ
ロード バランサ ロード バランサによってワークロードを公開できるようにします。 ネットワーク
メモリ制限 ワークロード間でメモリを分散し、単一のコンテナがリソースを使い果たしてシステムを停止できないようにします。 割り当て
ノード ポート ノード ポートによってワークロードを公開できるようにします。 ネットワーク
ポート転送 Kubectl ポート転送を使用すると、クラスタの境界セキュリティをバイパスし、localhost の内部 Kubernetes クラスタ プロセスと直接やり取りできます。 コマンド
ハッシュ タグを要求 名前付きタグを持つコンテナ イメージを特定します。名前付きタグの上書きによる問題を防ぐには、ハッシュ タグが必要です コンテナ イメージ
ロールのバインド ユーザーまたはサービス アカウントを名前空間内のロールにバインドします。 RBAC
SecComp プロファイル このコンテナで使用される seccomp オプション。seccomp オプションがポッド レベルとコンテナ レベルの両方で指定されている場合、コンテナ オプションはポッド オプションより優先されます。 ワークロード セキュリティ
シークレットの検出 シークレットを持つイメージの展開を防止します。 コンテナ イメージ
SeLinux コンテナに適用される SELinux コンテキスト。指定しない場合、コンテナ ランタイムは各コンテナにランダムな SELinux コンテキストを割り当てます。 ワークロード セキュリティ
Sysctl Sysctls は、ポッドに使用される namespaced sysctls のリストを保持します。サポートされていない sysctls を持つポッド(コンテナ ランタイムによって)の起動に失敗することがあります。 ワークロード セキュリティ
Unmasked proc mount ProcMount は、コンテナに使用する proc mount のタイプを示します。デフォルトでは、読み取り専用パスとマスクされたパスにコンテナ ランタイムのデフォルトが使用されます。 ワークロード セキュリティ
修正による脆弱性 修正が利用可能な場合は、中、高、または重大な脆弱性を含むイメージの展開を防止します。 コンテナ イメージ
書き込み可能ファイル システム ファイルへの書き込みを許可することで、脅威を取り込みやすくなり、環境内で持続しやすくなります。 ワークロード セキュリティ

組み込みルールの仕様

[組み込みルール名] [ルールが適用される要素] [予期される値 (値が異なる場合はルール違反がトリガされます)]
ホスト名前空間へのアクセス

spec.hostNetwork

spec.hostPID

spec.hostIPC

FALSE
ホストパスへのアクセス spec.volumes[*].hostPath
永続データへのアクセス spec.volumes[*]

spec.volumes[*].EmptyDir

spec.volumes[*].ConfigMap

spec.volumes[*].Secrets

spec.volumes[*].Ephemeral

追加機能

spec.containers[*].securityContext.capabilities.add

spec.initContainers[*].securityContext.capabilities.add

空白または以下のいずれか:

CAP_CHOWN, CAP_DAC_OVERRIDE, CAP_FOWNER, CAP_FSETID, CAP_KILL, CAP_SETGID, CAP_SETUID, CAP_SETPCAP, CAP_NET_BIND_SERVICE, CAP_NET_RAW, CAP_SYS_CHROOT, CAP_MKNOD, CAP_AUDIT_WRITE, CAP_SETFCAP

権限の昇格を許可

spec.containers[*].securityContext.allowPrivilegeEscalation

spec.initContainers[*].securityContext.allowPrivilegeEscalation

false、未定義/nil
特権コンテナを許可

spec.containers[*].securityContext.privileged

spec.initContainers[*].securityContext.privileged

false、未定義/nil
AppArmor metadata.annotations['container.apparmor.security.beta.kubernetes.io/*'] ランタイム/デフォルト、未定義
クラスタ ロールのバインド kind: clusterRoleBindings
CPU 制限

spec.containers[*].resources.limits.cpu

spec.containers[*].resources.requests.cpu

クリティカルな脆弱性
一時コンテナを拒否
最新のタグを拒否
新しいリソースを拒否
新しい CRD の展開 kind: CustomResourceDefinition
ルートなしの適用

spec.securityContext.runAsNonRoot

spec.containers[*].securityContext.runAsNonRoot

spec.initContainers[*].securityContext.runAsNonRoot

TRUE
Exec からコンテナ
ホスト ポート

spec.containers[*].ports[*].hostPort

spec.initContainers[*].ports[*].hostPort

0、未定義
イメージがスキャンされない
入力方向コントローラ
既知のマルウェア
ロード バランサ spec.type.LoadBalancer

metadata.annotations['cloud.google.com/load-balancer-type:internal']

metadata.annotations['service.beta.kubernetes.io/aws-load-balancer-internal:true']

metadata.annotations['service.beta.kubernetes.io/azure-load-balancer-internal:true']

metadata.annotations['service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type:private']

metadata.annotations['service.beta.kubernetes.io/openstack-internal-load-balancer:true']

metadata.annotations['service.beta.kubernetes.io/cce-load-balancer-internal-vpc:true']

metadata.annotations['service.kubernetes.io/qcloud-loadbalancer-internal-subnetid:subnet-xxx']

メモリ制限

spec.containers[*].resources.limits.memory

spec.containers[*].resources.requests.memory

ノード ポート
ポート転送
ハッシュ タグを要求
ロールのバインド kind: roleBinding
SecComp プロファイル

metadata.annotations['seccomp.security.alpha.kubernetes.io/pod*']

spec.securityContext.seccompProfile.type

spec.containers[*].securityContext.seccompProfile

spec.initContainers[*].securityContext.seccompProfile

false、未定義/nil
シークレットの検出
SeLinux

spec.securityContext.seLinuxOptions

spec.containers[*].securityContext.seLinuxOptions

spec.initContainers[*].securityContext.seLinuxOptions

未定義/nil
Sysctl spec.securityContext.sysctls

kernel.shm_rmid_forced

net.ipv4.ip_local_port_range

net.ipv4.tcp_syncookies

net.ipv4.ping_group_range

未定義/空

Unmasked proc mount

spec.containers[*].securityContext.procMount

spec.initContainers[*].securityContext.procMount

未定義/nil、「デフォルト」
修正による脆弱性
書き込み可能ファイル システム

spec.containers[*].securityContext.readOnlyRootFilesystem

spec.initContainers[*].securityContext.readOnlyRootFilesystem