Kubernetes SecurityContext(s)
Pod安全上下文
在指定Pod的安全上下文时,您可以使用多个属性。从防御安全性的角度考虑:
将runASNonRoot设置为True
配置runAsUser
如果可能,考虑通过指定seLinuxOptions和seccompProfile来限制权限
不要通过runAsGroup和supplementaryGroups授予特权组访问权限
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包含用于该Pod的命名空间sysctls列表。具有不受容器运行时支持的sysctls的Pod可能无法启动。 | |
应用于所有容器的Windows特定设置。如果未指定,将使用容器的SecurityContext中的选项。 | |
## SecurityContext |
此上下文设置在容器定义内。从防御安全的角度考虑:
将allowPrivilegeEscalation设置为False
不要添加敏感的capabilities(并移除不需要的)
将privileged设置为False
如果可能,将readOnlyFilesystem设置为True
将runAsNonRoot设置为True,并设置一个runAsUser
如果可能,考虑通过指定seLinuxOptions和seccompProfile来限制权限
不要通过runAsGroup给予特权组访问权限。
请注意,在SecurityContext和PodSecurityContext中设置的属性,SecurityContext中指定的值优先。
allowPrivilegeEscalation boolean | 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,它使用容器运行时默认值来设置只读路径和掩码路径。 |
readOnlyRootFilesystem boolean | 此容器是否具有只读根文件系统。默认值为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特定设置。 |
参考资料
Last updated