Pod 安全准入 (PSA) 配置模板
Pod Security admission (PSA) 配置模板是 Rancher 自定义资源 (CRD),在 Rancher v2.7.2 及更高版本中可用。这些模板提供了可应用于集群的预定义安全配置:
The policies shipped by default in Rancher aim to provide a trade-off between security and convenience. If a more strict policy configuration is needed, users are able to craft such policies themselves based on their specific requirements. In the case Rancher policies are preferred, you will need to deploy admission controllers that block the creation of any exempted namespaces that won't be used within your environments.
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 安全准入。
- 找到要修改的模板,点击 ⋮。
- 选择编辑配置。
- 选中豁免下的命名空间复选框以编辑命名空间字段。
- 豁免命名空间后,单击保存。
你需要更新目标集群才能让新模板在集群中生效。要触发更新,在不更改值的情况下编辑和保存集群。