Pod 安全准入 (PSA) 配置模板
Pod Security admission (PSA) 配置模板是 Rancher 自定义资源 (CRD),在 Rancher v2.7.2 及更高版本中可用。这些模板提供了可应用于集群的预定义安全配置:
rancher-privileged
:最宽松的配置。它不限制任何 Pod 行为,允许已知的权限升级。该策略没有豁免。rancher-restricted
:严格限制的配置,遵循当前加固 pod 的最佳实践。你必须对 Rancher 组件进行命名空间级别豁免。
分配 Pod 安全准入 (PSA) 配置模板
你可以在创建下游集群的同时分配 PSA 模板。你还可以通过配置现有集群来添加模板。
在集群创建期间分配模板
- RKE2 和 K3s
- RKE1
- 在左上角,单击 ☰ > 集群管理。
- 在集群页面上,单击创建按钮。
- 选择提供商。
- 在集群: 创建页面上,转到基本信息 > 安全。
- 在 PSA 配置模板下拉菜单中,选择要分配的模板。
- 单击创建。
将模板分配给现有集群
- 在左上角,单击 ☰ > 集群管理。
- 在集群表中找到要更新的集群,点击 ⋮。
- 选择编辑配置。
- 在 PSA 配置模板下拉菜单中,选择要分配的模板。
- 单击保存。
加固集群
如果选择 rancher-restricted 模板但不选择 CIS 配置文件,你将无法满足 CIS Benchmark。有关详细信息,请参阅 RKE2 加固指南。
- 在左上角,单击 ☰ > 集群管理。
- 在集群页面上,单击创建按钮。
- 选择提供商。
- 在添加集群页面上的集群选项下,单击 高级选项。
- 在 PSA 配置模板下拉菜单中,选择要分配的模板。
- 单击创建。
将模板分配给现有集群
- 在左上角,单击 ☰ > 集群管理。
- 在集群表中找到要更新的集群,点击 ⋮。
- 选择编辑配置。
- 在编辑集群页面上,转到集群选项 > 高级选项。
- 在 PSA 配置模板中,选择要分配的模板。
- 单击保存。
添加或编辑 Pod 安全准入 (PSA) 配置模板
如果你拥有管理员权限,则可以通过创建其他 PSA 模板或编辑现有模板来自定义安全限制和权限。
如果编辑使用中的现有 PSA 模板,更改将应用于已分配给该模板的所有集群。
- 在左上角,单击 ☰ > 集群管理。
- 点击高级选项打开下拉菜单。
- 选择 Pod 安全准入。
- 找到要修改的模板,点击 ⋮。
- 选择编辑配置来编辑模板。
- 完成配置编辑后,单击保存。
允许非管理员用户管理 PSA 模板
如果你想允许其他用户管理模板,你可以将该用户绑定到一个角色,并为该角色授予 management.cattle.io/podsecurityadmissionconfigurationtemplates
上的所有操作 ("*"
)。
绑定到上述权限的用户都能够更改使用该 PSA 模板的所有托管集群的限制级别,包括用户没有权限的集群。
豁免必须的 Rancher 命名空间
在默认执行限制性安全策略的 Kubernetes 集群上运行 Rancher 时,你需要豁免以下命名空间,否则该策略可能会阻止 Rancher system pod 正常运行。
calico-apiserver
calico-system
cattle-alerting
cattle-csp-adapter-system
cattle-epinio-system
cattle-externalip-system
cattle-fleet-local-system
cattle-fleet-system
cattle-gatekeeper-system
cattle-global-data
cattle-global-nt
cattle-impersonation-system
cattle-istio
cattle-istio-system
cattle-logging
cattle-logging-system
cattle-monitoring-system
cattle-neuvector-system
cattle-prometheus
cattle-sriov-system
cattle-system
cattle-ui-plugin-system
cattle-windows-gmsa-system
cert-manager
cis-operator-system
fleet-default
ingress-nginx
istio-system
kube-node-lease
kube-public
kube-system
longhorn-system
rancher-alerting-drivers
security-scan
tigera-operator
Rancher、Rancher 拥有的一些 Chart 以及 RKE2 和 K3s 发行版都使用这些命名空间。列出的命名空间的一个子集已经在内置的 Rancher rancher-restricted
策略中被豁免,用于下游集群。有关运行 Rancher 所需的所有豁免的完整模板,请参阅此准入配置示例。
豁免命名空间
如果你将 rancher-restricted
模板分配给集群,默认情况下,限制会在命名空间级别应用于整个集群。要在此高度受限的策略下豁免特定的命名空间,执行以下操作:
- 在左上角,单击 ☰ > 集群管理。
- 点击高级选项打开下拉菜单。
- 选择 Pod 安全准入。
- 找到要修改的模板,点击 ⋮。
- 选择编辑配置。
- 选中豁免下的命名空间复选框以编辑命名空间字段。
- 豁免命名空间后,单击保存。
你需要更新目标集群才能让新模板在集群中生效。要触发更新,在不更改值的情况下编辑和保存集群。