Kubernetes SecurityContext(s)

支持HackTricks

Pod安全上下文

来自文档:

在指定Pod的安全上下文时,您可以使用多个属性。从防御安全性的角度考虑:

  • runASNonRoot设置为True

  • 配置runAsUser

  • 如果可能,考虑通过指定seLinuxOptionsseccompProfile限制权限

  • 不要通过runAsGroupsupplementaryGroups授予特权组访问权限

fsGroup 整数

适用于Pod中所有容器的特殊补充组。某些卷类型允许Kubelet将该卷的所有权更改为由Pod拥有: 1. 拥有的GID将是FSGroup 2. 设置了setgid位(在卷中创建的新文件将由FSGroup拥有) 3. 权限位与rw-rw----进行OR运算 如果未设置,Kubelet将不会修改任何卷的所有权和权限

这定义了在暴露到Pod内部之前更改卷的所有权和权限的行为。

runAsGroup 整数

用于运行容器进程入口点的GID。如果未设置,则使用运行时默认值。也可以在SecurityContext中设置。

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

来自文档:

此上下文设置在容器定义内。从防御安全的角度考虑:

  • allowPrivilegeEscalation设置为False

  • 不要添加敏感的capabilities(并移除不需要的)

  • privileged设置为False

  • 如果可能,将readOnlyFilesystem设置为True

  • runAsNonRoot设置为True,并设置一个runAsUser

  • 如果可能,考虑通过指定seLinuxOptionsseccompProfile限制权限

  • 不要通过runAsGroup给予特权组访问权限。

请注意,在SecurityContext和PodSecurityContext中设置的属性,SecurityContext中指定的值优先

AllowPrivilegeEscalation 控制进程是否可以比其父进程获得更多权限。此布尔值直接控制容器进程上是否设置no_new_privs标志。当容器以Privileged方式运行或具有CAP_SYS_ADMIN时,AllowPrivilegeEscalation始终为true

capabilities Capabilities More info about Capabilities

运行容器时要添加/删除的capabilities。默认为默认的capabilities集。

privileged boolean

以特权模式运行容器。特权容器中的进程基本上等同于主机上的root。默认为false。

procMount string

procMount表示用于容器的proc挂载类型。默认值为DefaultProcMount,它使用容器运行时默认值来设置只读路径和掩码路径。

容器是否具有只读根文件系统。默认值为false。

runAsGroup integer

运行容器进程入口点的GID。如果未设置,则使用运行时默认值。

runAsNonRoot boolean

表示容器必须以非root用户身份运行。如果为true,则Kubelet将在运行时验证镜像,以确保其不以UID 0(root)运行,并在其以此运行时失败启动容器。

runAsUser integer

运行容器进程入口点的UID。如果未指定,默认为镜像元数据中指定的用户。

seLinuxOptions SELinuxOptions More info about seLinux

要应用于容器的SELinux上下文。如果未指定,容器运行时将为每个容器分配一个随机的SELinux上下文。

此容器要使用的seccomp选项

应用于所有容器的Windows特定设置

参考资料

支持 HackTricks
  • 查看订阅计划

  • 加入 💬 Discord 群组电报群组](https://t.me/peass) 或在 Twitter 🐦 @hacktricks_live** 上关注我们**。

  • 通过向HackTricksHackTricks Cloud github 仓库提交 PR 来分享黑客技巧。

Last updated