From dccbe9fe2595967be43eff5441a471fe7dc77707 Mon Sep 17 00:00:00 2001 From: hunshcn Date: Thu, 28 Dec 2023 10:57:19 +0800 Subject: [PATCH] [zh-cn] sync pod-security-standards.md user-namespaces.md sysctl-cluster.md --- .../security/pod-security-standards.md | 19 ++++++++ .../workloads/pods/user-namespaces.md | 44 +++++++++++++++++++ .../administer-cluster/sysctl-cluster.md | 32 +++++++++----- 3 files changed, 83 insertions(+), 12 deletions(-) diff --git a/content/zh-cn/docs/concepts/security/pod-security-standards.md b/content/zh-cn/docs/concepts/security/pod-security-standards.md index b1286c87e5ab5..2b46cd07c79d1 100644 --- a/content/zh-cn/docs/concepts/security/pod-security-standards.md +++ b/content/zh-cn/docs/concepts/security/pod-security-standards.md @@ -316,6 +316,10 @@ fail validation.
  • net.ipv4.tcp_syncookies
  • net.ipv4.ping_group_range
  • net.ipv4.ip_local_reserved_ports(从 Kubernetes 1.27 开始)
  • +
  • net.ipv4.tcp_keepalive_time(从 Kubernetes 1.29 开始)
  • +
  • net.ipv4.tcp_fin_timeout(从 Kubernetes 1.29 开始)
  • +
  • net.ipv4.tcp_keepalive_intvl(从 Kubernetes 1.29 开始)
  • +
  • net.ipv4.tcp_keepalive_probes(从 Kubernetes 1.29 开始)
  • @@ -594,6 +598,21 @@ Restrictions on the following controls are only required if `.spec.os.name` is n - Seccomp - Linux 权能 + +## 用户命名空间 {#user-namespaces} + +用户命名空间是 Linux 特有的功能,可在运行工作负载时提高隔离度。 +关于用户命名空间如何与 PodSecurityStandard 协同工作, +请参阅 +[文档](/zh-cn/docs/concepts/workloads/pods/user-namespaces#integration-with-pod-security-admission-checks) +了解 Pod 如何使用用户命名空间。 + +## 与 Pod 安全准入检查的集成 {#integration-with-pod-security-admission-checks} + +{{< feature-state state="alpha" for_k8s_version="v1.29" >}} + + +对于启用了用户命名空间的 Linux Pod,Kubernetes 会以受控方式放宽 +[Pod 安全性标准](/zh-cn/docs/concepts/security/pod-security-standards)的应用。 +这种行为可以通过[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/) +`UserNamespacesPodSecurityStandards` 进行控制,可以让最终用户提前尝试此特性。 +如果管理员启用此特性门控,必须确保群集中的所有节点都启用了用户命名空间。 + + +如果你启用相关特性门控并创建了使用用户命名空间的 Pod,以下的字段不会被限制, +即使在执行了 _Baseline_ 或 _Restricted_ Pod 安全性标准的上下文中。这种行为不会带来安全问题, +因为带有用户命名空间的 Pod 内的 `root` 实际上指的是容器内的用户,绝不会映射到主机上的特权用户。 +以下是在这种情况下**不进行**检查的 Pod 字段列表: + +- `spec.securityContext.runAsNonRoot` +- `spec.containers[*].securityContext.runAsNonRoot` +- `spec.initContainers[*].securityContext.runAsNonRoot` +- `spec.ephemeralContainers[*].securityContext.runAsNonRoot` +- `spec.securityContext.runAsUser` +- `spec.containers[*].securityContext.runAsUser` +- `spec.initContainers[*].securityContext.runAsUser` + diff --git a/content/zh-cn/docs/tasks/administer-cluster/sysctl-cluster.md b/content/zh-cn/docs/tasks/administer-cluster/sysctl-cluster.md index 93249d9c853a2..0c9506bf0b252 100644 --- a/content/zh-cn/docs/tasks/administer-cluster/sysctl-cluster.md +++ b/content/zh-cn/docs/tasks/administer-cluster/sysctl-cluster.md @@ -129,19 +129,27 @@ The following sysctls are supported in the _safe_ set: 以下几种 sysctl 参数是 **安全的**: -- `kernel.shm_rmid_forced`, -- `net.ipv4.ip_local_port_range`, -- `net.ipv4.tcp_syncookies`, -- `net.ipv4.ping_group_range`(从 Kubernetes 1.18 开始), -- `net.ipv4.ip_unprivileged_port_start`(从 Kubernetes 1.22 开始), -- `net.ipv4.ip_local_reserved_ports`(从 Kubernetes 1.27 开始)。 +- `kernel.shm_rmid_forced`; +- `net.ipv4.ip_local_port_range`; +- `net.ipv4.tcp_syncookies`; +- `net.ipv4.ping_group_range`(从 Kubernetes 1.18 开始); +- `net.ipv4.ip_unprivileged_port_start`(从 Kubernetes 1.22 开始); +- `net.ipv4.ip_local_reserved_ports`(从 Kubernetes 1.27 开始,需要 kernel 3.16+); +- `net.ipv4.tcp_keepalive_time`(从 Kubernetes 1.29 开始,需要 kernel 4.5+); +- `net.ipv4.tcp_fin_timeout`(从 Kubernetes 1.29 开始,需要 kernel 4.6+); +- `net.ipv4.tcp_keepalive_intvl`(从 Kubernetes 1.29 开始,需要 kernel 4.5+); +- `net.ipv4.tcp_keepalive_probes`(从 Kubernetes 1.29 开始,需要 kernel 4.5+)。 {{< note >}}