Pod 安全策略

概述

Pod 安全策略 (PSP) 是控制 Pod 安全的规范(如是否可以使用 root 权限等)的对象。如果 Pod 不符合 PSP 中指定的条件,Kubernetes 将不允许其启动,并且 Rancher 中将显示错误消息Pod <NAME> is forbidden: unable to validate...

Pod 安全策略工作原理

  • 您可以在集群或项目级别分配 PSP。

  • PSP 通过继承的方式工作。

    • 默认情况下,分配给集群的 PSP 由其项目以及添加到这些项目的任何命名空间继承。
    • 例外: 无论 PSP 是分配给集群还是项目,未分配给项目的命名空间不会继承 PSP。由于这些命名空间没有 PSP,因此将工作负载部署到这些命名空间将失败,这是 Kubernetes 的默认行为。
    • 您可以通过直接向项目分配其他 PSP 来覆盖默认 PSP。
  • 在分配 PSP 之前,集群或项目中已经在运行的任何工作负荷是否符合 PSP 的规定,将不会进行检查。需要克隆或升级工作负载以查看它们是否通过了 PSP。

Kubernetes 文档中了解有关 Pod 安全策略的更多信息。

默认 Pod 安全策略

自 v2.0.7 起可用

Rancher 内置了两个默认的 Pod 安全策略(PSP):受限不受限策略。

受限策略

该策略基于 Kubernetes 示例受限策略。它极大地限制了可以将哪些类型的 Pod 部署到集群或项目中。这项策略:

  • 阻止 Pod 以特权用户身份运行,并防止特权升级。
  • 验证服务器所需的安全性机制是否到位(例如,限制哪些卷可以被挂载,以及防止添加 root 补充组)。

不受限策略

该策略等效于在禁用 PSP 控制器的情况下运行 Kubernetes。对于可以将哪些 Pod 部署到集群或项目中,它没有任何限制

创建 Pod 安全策略

前提条件

  • Rancher 只能为使用 RKE 启动的集群分配 Pod 安全策略
  • 在将 PSP 分配给项目之前,你必须先在集群层面启用 PSP。这可以通过编辑集群来配置。
  • 最好的做法是在集群层面设置 PSP。
  • 我们建议在集群和项目创建期间添加 PSP,而不是将其添加到现有的项目中。

操作步骤

  1. 全局视图中,从主菜单中选择安全性 > Pod 安全策略。然后单击添加策略

    步骤结果: 将打开添加策略表单。

  2. 命名策略。

  3. 填写表格的每个部分。请参阅 Kubernetes 文档,以获取有关每个策略的作用的更多信息。

后续操作

您可以在以下场景中中添加 Pod 安全策略(PSP):

注意: 我们建议在集群和项目创建期间添加 PSP,而不是将 PSP 添加到现有的集群和项目中。