Kubernetes SecurityContext(s)

支持 HackTricks

PodSecurityContext

来自文档:

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

  • runASNonRoot 设置为 True

  • 配置 runAsUser

  • 如果可能,考虑 限制 权限,指明 seLinuxOptionsseccompProfile

  • 不要 通过 runAsGroupsupplementaryGroups 提供 特权 访问

fsGroup 整数

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

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

runAsGroup 整数

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

runAsNonRoot 布尔值

表示容器必须以非根用户身份运行。如果为 true,Kubelet 将在运行时验证映像,以确保它不以 UID 0(根)身份运行,如果是,则无法启动容器。

runAsUser 整数

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

seLinuxOptions SELinuxOptions 有关 seLinux 的更多信息

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

seccompProfile SeccompProfile 有关 Seccomp 的更多信息

此 Pod 中容器使用的 seccomp 选项

supplementalGroups 整数数组

除了容器的主要 GID 之外,应用于每个容器中运行的第一个进程的组 列表。

sysctls Sysctl 数组 有关 sysctls 的更多信息

Sysctls 持有 用于 Pod 的命名空间 sysctls 列表。具有不受支持的 sysctls(由容器运行时)可能会导致启动失败。

应用于所有容器的 Windows 特定设置。如果未指定,将使用容器的 SecurityContext 中的选项。

SecurityContext

来自文档:

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

  • allowPrivilegeEscalation 设置为 False

  • 不要添加敏感的 能力(并删除不需要的能力)

  • privileged 设置为 False

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

  • runAsNonRoot 设置为 True 并设置 runAsUser

  • 如果可能,考虑 限制 权限,指明 seLinuxOptionsseccompProfile

  • 不要 通过 runAsGroup 提供 特权 访问。

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

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

capabilities Capabilities 有关 Capabilities 的更多信息

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

privileged 布尔值

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

procMount 字符串

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

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

runAsGroup 整数

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

runAsNonRoot 布尔值

表示容器必须 以非根用户身份运行。如果为 true,Kubelet 将在运行时验证映像,以确保它不以 UID 0(根)身份运行,如果是,则无法启动容器。

runAsUser 整数

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

seLinuxOptions SELinuxOptions 有关 seLinux 的更多信息

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

此容器使用的 seccomp 选项

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

References

支持 HackTricks

Last updated