You need to enable JavaScript to run this app.
导航

如何为 IAM 用户授权 Cluster 级别资源的权限?

最近更新时间2023.02.13 10:22:56

首次发布时间2023.02.13 10:22:56

本文描述如何为 IAM 用户授权集群(Cluster)级别别资源的访问权限。

说明

更多授权相关操作,请参见 配置 RBAC 权限

操作说明

容器服务支持通过自定义 Kubernetes 授权策略中的 Role 和 ClusterRole 对象,控制集群资源的访问权限。Role 和 ClusterRole 相关的更多信息,请参见 Role和ClusterRole

操作步骤

  1. 创建 ClusterRole,定义 Cluster 级别角色。
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: demo-role  # ClusterRole 对象名称。
    rules:
      - apiGroups:
          - ""
        resources:
          - nodes     # 节点资源的 get/list 权限。
          - persistentvolumes   # 存储卷资源的 get/list 权限。
          - limitranges      # 限制范围资源的 get/list 权限。
          - resourcequotas   # 资源配额的 get/list 权限。
        verbs:
          - get
          - list
      - apiGroups:
          - storage.k8s.io
        resources:
          - storageclasses   # 存储类资源的 get/list 权限。
        verbs:
          - get
          - list
    
  2. 创建 ClusterRoleBinding,将 ClusterRole 中定义的权限赋予一个或者一组 IAM 用户。
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      labels:
        rbac.vke.volcengine.com/user: "100****"    # 被授权 IAM 用户的账号 ID。
      name: demo-rolebending       # ClusterRoleBinding 对象名称。
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: demo-role  # ClusterRole 对象名称。
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: "xxxx"    # 被授权 IAM 用户的账号 ID。
    
  3. 使用授权的 IAM 用户连接集群,如果能正常查询 Cluster 级别资源(如 PV),则说明权限配置正常。连接集群操作,请参见 连接集群
    alt