第 18 章 管理用户访问权限
18.1. 在 Red Hat Advanced Cluster Security for Kubernetes 中管理 RBAC
Red Hat Advanced Cluster Security for Kubernetes (RHACS)附带基于角色的访问控制(RBAC),可用于配置角色,并授予不同用户的 Red Hat Advanced Cluster Security for Kubernetes 的不同级别访问权限。
从 3.63 版本开始,RHACS 包含一个有范围的访问控制功能,可让您配置精细的和特定权限集,以定义给定 RHACS 用户或一组用户如何与 RHACS 交互,哪些资源可以访问哪些操作。
角色是 权限集和访问范围的集合。您可以通过指定规则将角色分配给用户和组。您可以在配置身份验证供应商时配置这些规则。Red Hat Advanced Cluster Security for Kubernetes 中有两种角色:
- 由红帽创建且无法更改的系统角色。
自定义角色,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建并更改。
注意- 如果为用户分配多个角色,则它们可以访问所分配角色的组合权限。
- 如果您的用户分配了自定义角色,并且删除该角色,则所有关联的用户都转移到您配置的最小访问角色。
权限集是一组权限,用于定义角色对给定资源可以执行的操作。资源是 Red Hat Advanced Cluster Security for Kubernetes 的功能,您可以设置 view (
读取
)和修改(写入
)权限。Red Hat Advanced Cluster Security for Kubernetes 中有两种权限集:- 系统权限集,由红帽创建且无法更改。
- 自定义权限集,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建并更改。
访问 范围是一组用户可以访问的 Kubernetes 和 OpenShift Container Platform 资源。例如,您可以定义一个访问权限范围,仅允许用户访问给定项目中 pod 的信息。Red Hat Advanced Cluster Security for Kubernetes 中有两种访问范围:
- 系统访问范围,由红帽创建且无法更改。
- 自定义访问范围,Red Hat Advanced Cluster Security for Kubernetes 管理员可以随时创建并更改。
18.1.1. 系统角色
Red Hat Advanced Cluster Security for Kubernetes (RHACS)包括一些默认系统角色,您可以在创建规则时应用到用户。您还可以根据需要创建自定义角色。
系统角色 | 描述 |
---|---|
Admin | 此角色面向管理员。使用它提供对所有资源的读写访问权限。 |
分析 | 此角色适用于无法进行任何更改但可以查看所有内容的用户。使用它为所有资源提供只读访问权限。 |
持续集成 | 此角色适用于 CI (持续集成)系统,包括强制执行部署策略所需的权限集。 |
无 | 此角色对任何资源没有读写访问权限。您可以将此角色设置为所有用户的最低访问角色。 |
Sensor Creator | RHACS 使用此角色自动执行新的集群设置。它包括在安全集群中创建 Sensors 的权限。 |
Scope Manager | 此角色包括创建和修改访问范围所需的最小权限。 |
漏洞管理批准器 | 此角色允许您提供对批准漏洞延迟或假正请求的访问。 |
漏洞管理请求器 | 此角色允许您提供对请求漏洞延迟或假正的访问。 |
漏洞报告 Creator | 此角色允许您创建和管理调度漏洞报告的漏洞报告配置。 |
18.1.1.1. 查看系统角色的权限集和访问范围
您可以查看默认系统角色的权限集和访问权限范围。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access control。 - 选择 Roles。
- 点其中一个角色查看其详情。详情页面显示 slected 角色的权限集和访问范围。
您无法修改默认系统角色的权限集和访问权限范围。
18.1.1.2. 创建自定义角色
您可以从 Access Control 视图创建新角色。
先决条件
-
您必须具有 Admin 角色,或具有为
AuthProvider
和Role
资源设置权限的权限的 Admin 角色,以创建、修改和删除自定义角色。 - 在创建角色前,您必须为自定义角色创建权限集和访问权限范围。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access Control。 - 选择 Roles。
- 单击 Create role。
- 为新角色输入 Name 和 Description。
- 为角色选择 Permission set。
- 为角色选择一个 Access 范围。
- 点击 Save。
18.1.1.3. 为用户或组分配角色
您可以使用 RHACS 门户将角色分配给用户或组。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access Control。 - 从身份验证提供程序列表中,选择身份验证提供程序。
- 单击 Edit minimum role 和 rules。
- 在 Rules 部分下,点 Add new rule。
-
对于 Key,请从
userid
,name
,email
或group
中选择一个值。 - 对于 Value,根据您选择的键输入用户 ID、名称、电子邮件地址或组的值。
- 点 Role 下拉菜单,再选择您要分配的角色。
- 点击 Save。
您可以为每个用户或组重复这些指令,并分配不同的角色。
18.1.2. 系统权限集
Red Hat Advanced Cluster Security for Kubernetes 包括了一些可应用到角色的默认系统权限集。您还可以根据需要创建自定义权限集。
权限集 | 描述 |
---|---|
Admin | 提供对所有资源的读写访问权限。 |
分析 | 为所有资源提供只读访问权限。 |
持续集成 | 此权限集针对 CI (持续集成)系统,并包含强制执行部署策略所需的权限。 |
网络 Graph Viewer | 提供查看网络图形的最小权限。 |
None | 任何资源都不允许读和写权限。 |
Sensor Creator | 为在安全集群中创建 Sensors 所需的资源提供权限。 |
18.1.2.1. 查看系统权限集的权限
您可以查看 RHACS 门户中设置的系统权限。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access control。 - 选择 Permission set。
- 点其中一个权限集来查看其详情。详情页面显示资源列表及其所选权限集的权限。
您无法修改系统权限集的权限。
18.1.2.2. 创建自定义权限集
您可以从 Access Control 视图创建新权限集。
先决条件
-
您必须具有 Admin 角色,或具有为
AuthProvider
和Role
资源设置权限的权限的 Admin 角色,以创建、修改和删除权限集。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access Control。 - 选择 Permission set。
- 点 Create permissions set。
- 为新权限集输入 Name 和 Description。
对于每个资源,在 Access level 列下,从
No access
,Read access
, 或Read and Write access
中选择其中一个权限。警告如果要为用户配置权限集,您必须为以下资源授予只读权限:
-
警报
-
集群
-
Deployment
-
镜像
-
NetworkPolicy
-
NetworkGraph
-
策略
-
Secret
-
- 在创建新权限集时,这些权限会预先选中。
- 如果您没有授予这些权限,用户将遇到 RHACS 门户中查看页面的问题。
- 点击 Save。
18.1.3. 系统访问范围
Red Hat Advanced Cluster Security for Kubernetes 包括了一些您可以应用到角色的默认系统访问范围。您还可以根据需要创建自定义访问范围。
Acces 范围 | 描述 |
---|---|
不受限制 | 提供对 Red Hat Advanced Cluster Security for Kubernetes 监视器的所有集群和命名空间的访问权限。 |
拒绝所有 | 不提供任何 Kubernetes 和 OpenShift Container Platform 资源的访问权限。 |
18.1.3.1. 查看系统访问范围的详情
您可以查看允许且不允许在 RHACS 门户中的 Kubernetes 和 OpenShift Container Platform 资源。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access control。 - 选择 Access scopes。
- 点一个访问范围来查看其详情。详情页面显示集群和命名空间列表,以及所选访问范围允许哪些列表。
您无法修改系统访问范围允许的资源。
18.1.3.2. 创建自定义访问范围
您可以从 Access Control 视图中创建新的访问范围。
先决条件
-
您必须具有 Admin 角色,或具有为
AuthProvider
和Role
资源设置权限的权限的 Admin 角色,以创建、修改和删除权限集。
流程
-
在 RHACS 门户中,进入到 Platform Configuration
Access control。 - 选择 Access scopes。
- 单击 Create access scope。
- 为新访问范围输入 Name 和 Description。
在 Allowed resources 部分下:
- 使用 Cluster filter 和 Namespace 过滤器字段过滤列表中可见的集群和命名空间列表。
- 展开 Cluster name 以查看该集群中的命名空间列表。
要允许访问集群中的所有命名空间,请切换 Manual 选择 列中的开关。
注意通过访问特定集群,用户可以访问集群范围内的以下资源:
- OpenShift Container Platform 或 Kubernetes 集群元数据和安全信息
- 授权集群的合规性信息
- 节点元数据和安全信息
- 访问该集群中的所有命名空间及其关联的安全信息
要允许访问命名空间,请切换命名空间的 Manual 选择 栏中的开关。
注意通过访问特定命名空间,可以访问命名空间范围内以下信息:
- 部署的警报和违反情况
- 镜像的漏洞数据
- 部署元数据和安全信息
- 角色和用户信息
- 部署的网络图、策略和基准信息
- 处理信息和流程基准配置
- 对每个部署有优先级的风险信息
- 如果要允许根据标签访问集群和命名空间,请点击 Label selection rules 部分下的 Add label selector。然后单击 Add rule,为标签选择器指定 Key 和 Value 对。您可以为集群和命名空间指定标签。
- 点击 Save。
18.1.4. 资源定义
Red Hat Advanced Cluster Security for Kubernetes 包含多个资源。下表列出了资源,并解释了带有 read
或 write
权限的用户可以执行的操作。
资源 | 读取权限 | 写入权限 |
---|---|---|
权限 | 查看与 Red Hat Advanced Cluster Security for Kubernetes 实例匹配的用户元数据的单点登录(SSO)和基于角色的访问控制(RBAC)规则的配置,以及访问 Red Hat Advanced Cluster Security for Kubernetes 实例的用户,包括身份验证供应商提供的元数据。 | 创建、修改或删除 SSO 配置及配置的 RBAC 规则。 |
管理 | 查看以下项目:
| 编辑以下项目:
|
警报 | 查看现有的策略违反情况。 | 解析或编辑策略违反情况。 |
CVE | 只限内部使用 | 只限内部使用 |
集群 | 查看现有的安全集群。 | 添加新的安全集群并修改或删除现有集群。 |
Compliance | 查看合规性标准和结果,以及最新的合规性运行以及相关的完成状态。 | 触发合规性运行。 |
Deployment | 查看安全集群中的部署(工作负载)。 | N/A |
DeploymentExtension | 查看以下项目:
| 修改以下项目:
|
检测 | 针对镜像或部署 YAML 检查构建时间策略。 | N/A |
Image | 查看镜像、它们的组件及其漏洞。 | N/A |
集成 | 查看以下项目:
| 修改以下项目:
|
K8sRole | 在安全集群中查看 Kubernetes RBAC 的角色。 | N/A |
K8sRoleBinding | 查看安全集群中 Kubernetes RBAC 的角色绑定。 | N/A |
K8sSubject | 在安全集群中查看 Kubernetes RBAC 的用户和组。 | N/A |
命名空间 | 查看安全集群中的现有 Kubernetes 命名空间。 | N/A |
NetworkGraph | 查看安全集群中的活跃和允许的网络连接。 | N/A |
NetworkPolicy | 查看安全集群中的现有网络策略并模拟更改。 | 在安全集群中应用网络策略更改。 |
节点 | 查看安全集群中的现有 Kubernetes 节点。 | N/A |
policy | 查看现有的系统策略。 | 创建、修改或删除系统策略。 |
角色 | 查看现有的 Red Hat Advanced Cluster Security for Kubernetes RBAC 角色及其权限。 | 添加、修改或删除角色及其权限。 |
Secret | 查看安全集群中有关 secret 的元数据。 | N/A |
ServiceAccount | 列出安全集群中的 Kubernetes 服务帐户。 | N/A |
18.1.5. 身份验证和授权资源的声明配置
您可以使用声明性配置进行身份验证和授权资源,如身份验证供应商、角色、权限集和访问范围。有关如何使用声明性配置的说明,请参阅"添加资源"部分中的"使用声明性配置"。
其他资源