Kubernetes SecurityContext(s)
Last updated
Last updated
AWSハッキングを学び、実践する: GCPハッキングを学び、実践する:
Podのセキュリティコンテキストを指定する際に、いくつかの属性を使用できます。防御的なセキュリティの観点から考慮すべきことは:
runASNonRootをTrueに設定する
runAsUserを設定する
可能であれば、seLinuxOptionsおよびseccompProfileを指定して権限を制限することを検討する
runAsGroupおよびsupplementaryGroupsを介して特権****グループアクセスを与えない
このコンテキストは、コンテナ定義内に設定されます。防御的なセキュリティの観点から考慮すべきことは:
allowPrivilegeEscalationをFalseに設定する
機密のcapabilitiesを追加せず(必要のないものは削除する)
privilegedをFalseに設定する
可能であれば、readOnlyFilesystemをTrueに設定する
runAsNonRootをTrueに設定し、runAsUserを設定する
可能であれば、seLinuxOptionsおよびseccompProfileを指定して権限を制限することを検討する
runAsGroupを介して特権****グループアクセスを与えない。
SecurityContextとPodSecurityContextの両方に設定された属性に注意してください。SecurityContextで指定された値が優先されます。
AWSハッキングを学び、実践する: GCPハッキングを学び、実践する:
を確認してください!
**💬 またはに参加するか、Twitter 🐦 をフォローしてください。
およびのGitHubリポジトリにPRを送信してハッキングトリックを共有してください。
AllowPrivilegeEscalationは、プロセスが親プロセスよりもより多くの特権を得ることができるかどうかを制御します。このブール値は、コンテナプロセスにno_new_privsフラグが設定されるかどうかを直接制御します。AllowPrivilegeEscalationは、コンテナがPrivilegedとして実行されるか、CAP_SYS_ADMINを持つ場合は常にtrueです。 |
コンテナを実行する際に追加/削除するcapabilities。デフォルトはデフォルトのcapabilitiesのセットです。 |
特権モードでコンテナを実行します。特権コンテナ内のプロセスは、基本的にホスト上のrootと同等です。デフォルトはfalseです。 |
procMountは、コンテナに使用するprocマウントのタイプを示します。デフォルトはDefaultProcMountで、読み取り専用パスとマスクされたパスのためにコンテナランタイムのデフォルトを使用します。 |
このコンテナが読み取り専用のルートファイルシステムを持つかどうか。デフォルトはfalseです。 |
コンテナプロセスのエントリポイントを実行するためのGID。未設定の場合はランタイムのデフォルトを使用します。 |
コンテナが非rootユーザーとして実行される必要があることを示します。trueの場合、Kubeletはランタイムでイメージを検証し、UID 0(root)として実行されないことを確認し、そうであればコンテナの起動に失敗します。 |
コンテナプロセスのエントリポイントを実行するためのUID。未指定の場合は、イメージメタデータで指定されたユーザーがデフォルトになります。 |
コンテナに適用されるSELinuxコンテキスト。未指定の場合、コンテナランタイムは各コンテナに対してランダムなSELinuxコンテキストを割り当てます。 |
このコンテナが使用するseccompオプション。 |
すべてのコンテナに適用されるWindows特有の設定。 |
すべてのコンテナに適用される特別な補助グループ。一部のボリュームタイプでは、Kubeletがそのボリュームの所有権を変更することを許可します: 1. 所有するGIDはFSGroupになります 2. setgidビットが設定されます(ボリューム内で作成された新しいファイルはFSGroupが所有します) 3. 権限ビットはrw-rw----とORされます。未設定の場合、Kubeletはボリュームの所有権と権限を変更しません。 |
これは、Pod内で公開される前にボリュームの所有権と権限を変更する動作を定義します。 |
コンテナプロセスのエントリポイントを実行するためのGID。未設定の場合はランタイムのデフォルトを使用します。 |
コンテナが非rootユーザーとして実行される必要があることを示します。trueの場合、Kubeletはランタイムでイメージを検証し、UID 0(root)として実行されないことを確認し、そうであればコンテナの起動に失敗します。 |
コンテナプロセスのエントリポイントを実行するためのUID。未指定の場合は、イメージメタデータで指定されたユーザーがデフォルトになります。 |
すべてのコンテナに適用されるSELinuxコンテキスト。未指定の場合、コンテナランタイムは各コンテナに対してランダムなSELinuxコンテキストを割り当てます。 |
このPod内のコンテナが使用するseccompオプション。 |
各コンテナで実行される最初のプロセスに適用されるグループのリスト。コンテナの主要GIDに加えて。 |
Sysctlsは、Podに使用される名前空間付きsysctlsのリストを保持します。サポートされていないsysctlsを持つPod(コンテナランタイムによって)は起動に失敗する可能性があります。 |
すべてのコンテナに適用されるWindows特有の設定。未指定の場合、コンテナのSecurityContext内のオプションが使用されます。 |
ブール値
についての詳細 Capabilities
ブール値
文字列
ブール値
整数
ブール値
整数
についての詳細 seLinux
整数
文字列
整数
ブール値
整数
についての詳細 seLinux
についての詳細 Seccomp
整数配列
配列 についての詳細