×

关于范围令牌

您可以创建范围令牌,将部分权限委托给其他用户或服务帐户。例如,项目管理员可能希望委托创建Pod的权限。

范围令牌是一个标识为给定用户但其作用域限制了某些操作的令牌。只有具有`dedicated-admin`角色的用户才能创建范围令牌。

通过将令牌的作用域集转换为一组`PolicyRules`来评估作用域。然后,将请求与这些规则匹配。请求属性必须与至少一个作用域规则匹配,才能传递给“普通”授权程序以进行进一步的授权检查。

用户范围

用户范围侧重于获取有关给定用户的的信息。它们是基于意图的,因此规则会自动为您创建。

  • user:full - 允许对API进行完全读写访问,包括用户的全部权限。

  • user:info - 允许只读访问有关用户的信息,例如姓名和组。

  • user:check-access - 允许访问self-localsubjectaccessreviewsself-subjectaccessreviews。这些是在请求对象中传递空用户和组的变量。

  • user:list-projects - 允许只读访问列出用户有权访问的项目。

角色范围

角色范围允许您拥有与给定角色相同的访问级别,但按命名空间进行过滤。

  • role:<集群角色名称>:<命名空间或*表示所有> - 将作用域限制为集群角色指定的规则,但仅限于指定的命名空间。

    警告:这可以防止访问权限升级。即使角色允许访问诸如密钥、角色绑定和角色之类的资源,此范围也会拒绝访问这些资源。这有助于防止意外升级。许多人不会认为像edit这样的角色是升级角色,但如果可以访问密钥,它就是。

  • role:<集群角色名称>:<命名空间或 * 代表所有>:! - 这与上面的示例类似,不同之处在于包含感叹号会导致此范围允许升级访问。

将未经身份验证的组添加到集群角色

作为集群管理员,您可以通过创建集群角色绑定来将未经身份验证的用户添加到 OpenShift Dedicated 中的以下集群角色。未经身份验证的用户无权访问非公共集群角色。这应仅在必要时在特定用例中进行。

您可以将未经身份验证的用户添加到以下集群角色:

  • system:scope-impersonation

  • system:webhook

  • system:oauth-token-deleter

  • self-access-reviewer

修改未经身份验证的访问权限时,请务必验证是否符合您组织的安全标准。

先决条件
  • 您具有cluster-admin角色用户的集群访问权限。

  • 您已安装 OpenShift CLI (oc)。

步骤
  1. 创建一个名为add-<集群角色>-unauth.yaml 的 YAML 文件,并添加以下内容:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
     annotations:
       rbac.authorization.kubernetes.io/autoupdate: "true"
     name: <cluster_role>access-unauthenticated
    roleRef:
     apiGroup: rbac.authorization.k8s.io
     kind: ClusterRole
     name: <cluster_role>
    subjects:
     - apiGroup: rbac.authorization.k8s.io
       kind: Group
       name: system:unauthenticated
  2. 运行以下命令应用配置:

    $ oc apply -f add-<cluster_role>.yaml