第 1 章 安全性


管理 Red Hat Advanced Cluster Management for Kubernetes 的安全性和基于角色的访问控制 (RBAC)。使用定义的策略和流程监管集群,以识别并最大程度降低风险。使用策略来定义规则和设置控制。

先决条件 :您必须配置 Red Hat Advanced Cluster Management for Kubernetes 的身份验证服务要求,以便将工作负载加载到 Identity and Access Management(IAM)。如需更多信息,请参阅 OpenShift Container Platform 文档 中的了解身份验证

查看以下主题以了解有关保护集群的更多信息:

1.1. 基于角色的访问控制

Red Hat Advanced Cluster Management for Kubernetes 支持的基于角色的控制访问(RBAC)。您的角色决定了您可以执行的操作。RBAC 基于 Kubernetes 中的授权机制,类似于 Red Hat OpenShift Container Platform。有关 RBAC 的更多信息,请参阅 OpenShift Container Platform 文档中的 RBAC 概述。

:如果用户角色无法访问,则控制台中禁用操作按钮。

如需组件支持的 RBAC 的详细信息,参阅以下小节。

1.1.1. 角色概述

有些产品资源是基于集群范围的,有些则是命名空间范围。您必须将集群 rolebindings 和命名空间 rolebindings 应用到用户,以使访问控制具有一致性。查看 Red Hat Advanced Cluster Management for Kubernetes 支持的以下角色定义表列表:

Expand
表 1.1. 角色定义表
角色定义

cluster-admin

具有集群范围内的绑定到 cluster-admin 角色的用户,是一个 OpenShift Container Platform 超级用户,其具有所有访问权限。

open-cluster-management:cluster-manager-admin

具有集群范围绑定到 cluster-manager-admin 角色的用户,是一个 Red Hat Advanced Cluster Management for Kubernetes 超级用户,其具有所有访问权限。

open-cluster-management:managed-cluster-x (admin)

具有集群范围绑定到 managed-cluster-x 角色的用户,具有对受管集群 "X" 资源的管理员访问权限。

open-cluster-management:managed-cluster-x (viewer)

具有集群范围绑定到 managed-cluster-x 角色的用户,具有对 managedcluster “X” 资源的查看(view)权限。

open-cluster-management:subscription-admin

具有 subscription-admin 角色的用户,可以创建 Git 订阅来将资源部署到多个命名空间中。资源在订阅的 Git 仓库中的 Kubernetes 资源 YAML 文件中指定。:当一个非 subscription-admin 用户创建订阅时,无论资源中的指定命名空间是什么,所有资源都会部署到订阅命名空间中。如需更多信息,请参阅应用程序生命周期 RBAC 部分。

admin, edit, view

admin、edit 和 view 是 OpenShift Container Platform 的默认角色。具有命名空间范围绑定的用户可以访问特定命名空间中的 open-cluster-management 资源,而集群范围的绑定到同一角色可以访问整个集群范围的 open-cluster-management 资源。

重要

  • 任何用户都可以从 OpenShift Container Platform 创建项目,这为命名空间授予管理员角色权限。
  • 如果用户无法访问集群的角色,则无法看到集群名称。集群名称显示有以下符号: -

1.1.2. RBAC 的实施

RBAC 在控制台和 API 一级进行验证。控制台中的操作可根据用户访问角色权限启用或禁用。查看以下章节以了解有关该产品中特定生命周期的 RBAC 的更多信息。

1.1.2.1. 集群生命周期 RBAC

查看以下集群生命周期 RBAC 操作。

创建和管理所有受管集群:

  • 输入以下命令,创建到集群角色 open-cluster-management:cluster-manager-admin 的集群角色绑定:

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:cluster-manager-admin
    Copy to Clipboard Toggle word wrap

    这个角色是一个超级用户,可访问所有资源和操作。此角色允许您创建集群范围的 managedcluster 资源、用于管理受管集群的资源的命名空间,以及命名空间中的资源。此角色还支持访问供应商连接以及用于创建受管集群的裸机资产。

管理名为 cluster-name 的受管集群:

  • 输入以下命令,创建到集群角色 open-cluster-management:admin:<cluster-name> 的集群角色绑定:

    oc create clusterrolebinding (role-binding-name) --clusterrole=open-cluster-management:admin:<cluster-name>
    Copy to Clipboard Toggle word wrap

    此角色允许对集群范围的 managedcluster 资源进行读写访问。这是必要的,因为 managedcluster 是一个集群范围的资源,而不是命名空间范围的资源。

  • 输入以下命令,创建到集群角色 admin 的命名空间角色绑定:

    oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=admin
    Copy to Clipboard Toggle word wrap

    此角色允许对受管集群命名空间中的资源进行读写访问。

查看名为 cluster-name 的受管集群:

  • 输入以下命令,创建到集群角色 open-cluster-management:view:<cluster-name> 的集群角色绑定:

    oc create clusterrolebinding <role-binding-name> --clusterrole=open-cluster-management:view:<cluster-name>
    Copy to Clipboard Toggle word wrap

    此角色允许对集群范围的 managedcluster 资源的读取访问权限。这是必要的,因为 managedcluster 是一个集群范围的资源,而不是命名空间范围的资源。

  • 输入以下命令,创建到集群角色 view 的命名空间角色绑定:

    oc create rolebinding <role-binding-name> -n <cluster-name> --clusterrole=view
    Copy to Clipboard Toggle word wrap

    此角色允许只读访问受管集群命名空间中的资源。

请参阅 ManagedClusterSets 以了解有关管理 ManagedClusterSet 资源的信息。

查看以下集群生命周期控制台和 API RBAC 表:

Expand
表 1.2. 集群生命周期的控制台 RBAC 表
操作AdminEditView

Clusters

read、update、delete

读取、更新

读取

AWS 供应商连接。

create、read、update 和 delete

create、read、update 和 delete

读取

裸机资产

创建、读取、更新、删除

读取、更新

读取

Expand
表 1.3. 集群生命周期的 API RBAC 表
APIAdminEditView

manageclusters.cluster.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

baremetalassets.inventory.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

klusterletaddonconfigs.agent.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

managedclusteractions.action.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

managedclusterviews.view.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

managedclusterinfos.internal.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

manifestworks.work.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

1.1.2.2. 应用程序生命周期 RBAC

在创建一个应用程序时,subscription 命名空间会被创建,配置映射会在 subscription 命名空间中创建。如果需要应用订阅,则必须是订阅管理员。有关管理应用程序的更多信息,请参阅创建和管理订阅

要执行应用程序生命周期任务,具有 admin 角色的用户必须有权访问创建的应用程序所在的命名空间,以及 managedcluster 命名空间。例如,在命名空间 "N" 中创建应用程序所需的访问权限是命名空间范围的绑定到命名空间 "N" 的 admin 角色。

查看以下应用程序生命周期控制台和 API RBAC 表:

Expand
表 1.4. 应用程序生命周期的控制台 RBAC 表
操作AdminEditView

Application

创建、读取、更新、删除

创建、读取、更新、删除

读取

Channel

创建、读取、更新、删除

创建、读取、更新、删除

读取

Subscription

创建、读取、更新、删除

创建、读取、更新、删除

读取

放置规则(Placement rule)

创建、读取、更新、删除

创建、读取、更新、删除

读取

Expand
表 1.5. 应用程序生命周期的 API RBAC 表
APIAdminEditView

applications.app.k8s.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

channels.apps.open-cluster-management.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

deployables.apps.open-cluster-management.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

helmreleases.apps.open-cluster-management.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

placementrules.apps.open-cluster-management.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

subscriptions.apps.open-cluster-management.io

创建、读取、更新、删除

创建、读取、更新、删除

读取

configmaps

创建、读取、更新、删除

创建、读取、更新、删除

读取

secrets

创建、读取、更新、删除

创建、读取、更新、删除

读取

命名空间

创建、读取、更新、删除

创建、读取、更新、删除

读取

1.1.2.3. 监管生命周期 RBAC

要执行监管生命周期操作,用户必须有权访问创建策略的命名空间,以及访问应用策略的 managedcluster 命名空间。

请参见以下示例:

  • 要查看命名空间 "N" 中的策略,需要以下角色:

    • 命名空间范围的绑定到命名空间 "N" 的 view 角色。
  • 要在命名空间 "N" 中创建策略,并将其应用到 managedcluster "X",需要以下角色:

    • 命名空间范围的绑定到命名空间 "N" 的 admin 角色。
    • 命名空间范围的绑定到命名空间 "X" 的 admin 角色。

查看以下监管生命周期控制台和 API RBAC 表:

Expand
表 1.6. 监管生命周期的控制台 RBAC 表
操作AdminEditView

策略(policy)

创建、读取、更新、删除

读取、更新

读取

PlacementBindings

创建、读取、更新、删除

读取、更新

读取

PlacementRules

创建、读取、更新、删除

读取、更新

读取

Expand
表 1.7. 用于监管生命周期的 API RBAC 表
APIAdminEditView

policies.policy.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

placementbindings.policy.open-cluster-management.io

创建、读取、更新、删除

读取、更新

读取

1.1.2.4. Observability RBAC

要使用可观察功能,您必须分配 cluster-adminopen-cluster-management:cluster-manager-admin 角色。查看以下可观察功能列表:

  • 访问受管集群指标。
  • 搜索资源。
  • 如果您有权限可以访问受管集群,请使用 Visual Web Terminal。

创建、更新和删除 MultiClusterObservability 自定义资源。查看以下 RBAC 表:

Expand
表 1.8. 用于 observability 的 API RBAC 表

API

Admin

Edit

View

multiclusterobservabilities.observability.open-cluster-management.io

create、read、update 和 delete

-

-

如需了解更多与集群安全相关的信息,请参阅安全部分。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat