为不同的用户组创建自定义的 Role 和 ClusterRole

简介: 为不同的用户组创建自定义的 Role 和 ClusterRole

为不同的用户组创建自定义的 RoleClusterRole 涉及定义这些角色的权限规则,并将其绑定到特定的用户组。以下是详细步骤:

1. 创建自定义 Role

定义 Role 权限

  • 创建一个 YAML 文件来定义 Role,指定 apiGroupsresourcesverbs

示例 Role YAML 文件 (my-role.yaml):

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: my-namespace  # 指定 Namespace
  name: my-custom-role
rules:
- apiGroups: [""]
  resources: ["pods", "configmaps"]
  verbs: ["get", "list", "watch", "create", "update", "delete"]

应用 Role 配置

kubectl apply -f my-role.yaml

2. 创建自定义 ClusterRole

定义 ClusterRole 权限

  • 创建一个 YAML 文件来定义 ClusterRole,指定 apiGroupsresourcesverbs

示例 ClusterRole YAML 文件 (my-clusterrole.yaml):

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: my-custom-clusterrole
rules:
- apiGroups: [""]
  resources: ["nodes", "pods"]
  verbs: ["get", "list", "watch"]

应用 ClusterRole 配置

kubectl apply -f my-clusterrole.yaml

3. 创建 RoleBinding

将 Role 绑定到用户组

  • 创建一个 RoleBinding YAML 文件,将 Role 绑定到特定的用户组。

示例 RoleBinding YAML 文件 (my-rolebinding.yaml):

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: my-rolebinding
  namespace: my-namespace
subjects:
- kind: Group
  name: my-group  # 用户组名称
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: my-custom-role
  apiGroup: rbac.authorization.k8s.io

应用 RoleBinding 配置

kubectl apply -f my-rolebinding.yaml

4. 创建 ClusterRoleBinding

将 ClusterRole 绑定到用户组

  • 创建一个 ClusterRoleBinding YAML 文件,将 ClusterRole 绑定到特定的用户组。

示例 ClusterRoleBinding YAML 文件 (my-clusterrolebinding.yaml):

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: my-clusterrolebinding
subjects:
- kind: Group
  name: my-group  # 用户组名称
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: my-custom-clusterrole
  apiGroup: rbac.authorization.k8s.io

应用 ClusterRoleBinding 配置

kubectl apply -f my-clusterrolebinding.yaml

5. 验证配置

  • 使用 kubectl 命令检查 Role、ClusterRole、RoleBinding 和 ClusterRoleBinding 是否已正确创建:

    kubectl get roles
    kubectl get clusterroles
    kubectl get rolebindings
    kubectl get clusterrolebindings
    
  • 确保用户组中的用户只能访问他们被授权的资源。

通过这些步骤,你可以为不同的用户组创建自定义的 RoleClusterRole,并确保他们具有适当的权限。记得在实际部署中根据实际需求调整权限规则。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7月前
|
Linux
用户组管理命令
用户组管理命令。
27 1
|
7月前
|
安全 开发者
自定义全局角色,实现按岗赋权
Dataphin作为企业级数据建设和治理平台,提供了丰富的产品功能,在日常使用的过程中,如何分配权限是管理员一直关心的问题。Dataphin V4.0版本支持自定义全局角色功能,帮助管理员实现按岗赋权,使管理员能够自由配置每个角色在Dataphin中的菜单和功能权限,确保平台的权限安全。
110 0
阿里云RAM角色和自定义角色
阿里云RAM角色和自定义角色
144 1
|
7月前
|
Shell Linux 数据安全/隐私保护
用户,用户组相关操作
用户,用户组相关操作
61 0
|
分布式计算 MaxCompute
对象操作赋权、Role 和 label 关系介绍
对象操作赋权、Role 和 label 关系介绍
147 0
|
数据安全/隐私保护
【TP5.1】用户组权限管理(列表,添加,修改)
【TP5.1】用户组权限管理(列表,添加,修改)
262 0
【TP5.1】用户组权限管理(列表,添加,修改)
|
安全 Java
Power Apps配置安全角色和对象权限
Power Apps配置安全角色和对象权限
440 0
Power Apps配置安全角色和对象权限
|
测试技术 数据安全/隐私保护