Kubernetes SecurityContext(s)

HackTricksをサポートする

PodSecurityContext

ドキュメントから:

Podのセキュリティコンテキストを指定する際に、いくつかの属性を使用できます。防御的なセキュリティの観点から考慮すべきこと:

  • runASNonRootTrueに設定する

  • runAsUserを設定する

  • 可能であれば、seLinuxOptionsおよびseccompProfileを指定して権限制限することを検討する

  • runAsGroupおよびsupplementaryGroupsを介して特権グループアクセスを与えない

fsGroup 整数

すべてのコンテナに適用される特別な補助グループ。一部のボリュームタイプでは、Kubeletがそのボリュームの所有権を変更できるようになります: 1. 所有するGIDはFSGroupになります 2. setgidビットが設定されます(ボリューム内で作成された新しいファイルはFSGroupが所有します) 3. パーミッションビットはrw-rw----とORされます。未設定の場合、Kubeletはボリュームの所有権とパーミッションを変更しません。

これは、Pod内で公開される前にボリュームの所有権とパーミッションを変更する動作を定義します。

runAsGroup 整数

コンテナプロセスのエントリポイントを実行するためのGID。未設定の場合はランタイムのデフォルトが使用されます。

runAsNonRoot ブール値

コンテナは非rootユーザーとして実行される必要があることを示します。trueの場合、Kubeletはランタイムでイメージを検証し、UID 0(root)として実行されないことを確認し、そうでない場合はコンテナの起動に失敗します。

runAsUser 整数

コンテナプロセスのエントリポイントを実行するためのUID。未指定の場合は、イメージメタデータで指定されたユーザーがデフォルトになります。

seLinuxOptions SELinuxOptions についての詳細 seLinux

すべてのコンテナに適用されるSELinuxコンテキスト。未指定の場合、コンテナランタイムは各コンテナに対してランダムなSELinuxコンテキストを割り当てます。

seccompProfile SeccompProfile についての詳細 Seccomp

このPod内のコンテナが使用するseccompオプション

supplementalGroups 整数配列

各コンテナで実行される最初のプロセスに適用されるグループのリスト。コンテナの主要GIDに加えて。

sysctls Sysctl 配列 についての詳細 sysctls

Sysctlsは、Podに使用される名前空間付きsysctlsのリストを保持します。サポートされていないsysctlsを持つPod(コンテナランタイムによって)は起動に失敗する可能性があります。

すべてのコンテナに適用されるWindows特有の設定。未指定の場合、コンテナのSecurityContext内のオプションが使用されます。

SecurityContext

ドキュメントから:

このコンテキストはコンテナ定義内に設定されます。防御的なセキュリティの観点から考慮すべきこと:

  • allowPrivilegeEscalationFalseに設定する

  • 機密のcapabilitiesを追加せず(不要なものは削除する)

  • privilegedFalseに設定する

  • 可能であれば、readOnlyFilesystemTrueに設定する

  • runAsNonRootTrueに設定し、runAsUserを設定する

  • 可能であれば、seLinuxOptionsおよびseccompProfileを指定して権限制限することを検討する

  • runAsGroupを介して特権グループアクセスを与えない。

SecurityContextPodSecurityContextの両方に設定された属性に注意してください。SecurityContextで指定された値が優先されます。

AllowPrivilegeEscalationは、プロセスが親プロセスよりもより多くの特権を得ることができるかどうかを制御します。このブール値は、コンテナプロセスにno_new_privsフラグが設定されるかどうかを直接制御します。AllowPrivilegeEscalationは、コンテナがPrivilegedとして実行されるか、CAP_SYS_ADMINを持つ場合は常にtrueです。

capabilities Capabilities についての詳細 Capabilities

コンテナを実行する際に追加/削除するcapabilities。デフォルトはデフォルトのcapabilitiesのセットです。

privileged ブール値

特権モードでコンテナを実行します。特権コンテナ内のプロセスは、基本的にホスト上のrootと同等です。デフォルトはfalseです。

procMount 文字列

procMountは、コンテナに使用するprocマウントのタイプを示します。デフォルトはDefaultProcMountで、読み取り専用パスとマスクされたパスのためにコンテナランタイムのデフォルトを使用します。

このコンテナが読み取り専用のルートファイルシステムを持つかどうか。デフォルトはfalseです。

runAsGroup 整数

コンテナプロセスのエントリポイントを実行するためのGID。未設定の場合はランタイムのデフォルトが使用されます。

runAsNonRoot ブール値

コンテナは非rootユーザーとして実行される必要があることを示します。trueの場合、Kubeletはランタイムでイメージを検証し、UID 0(root)として実行されないことを確認し、そうでない場合はコンテナの起動に失敗します。

runAsUser 整数

コンテナプロセスのエントリポイントを実行するためのUID。未指定の場合は、イメージメタデータで指定されたユーザーがデフォルトになります。

seLinuxOptions SELinuxOptions についての詳細 seLinux

コンテナに適用されるSELinuxコンテキスト。未指定の場合、コンテナランタイムは各コンテナに対してランダムなSELinuxコンテキストを割り当てます。

このコンテナが使用するseccompオプション

すべてのコンテナに適用されるWindows特有の設定

References

HackTricksをサポートする

Last updated