为不同的用户组创建自定义的 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搭建和管理企业级网站应用
相关文章
|
8月前
|
运维 安全 Serverless
函数计算产品使用问题之要配置 role(服务角色),该如何进行操作
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
10月前
|
安全 开发者
自定义全局角色,实现按岗赋权
Dataphin作为企业级数据建设和治理平台,提供了丰富的产品功能,在日常使用的过程中,如何分配权限是管理员一直关心的问题。Dataphin V4.0版本支持自定义全局角色功能,帮助管理员实现按岗赋权,使管理员能够自由配置每个角色在Dataphin中的菜单和功能权限,确保平台的权限安全。
151 0
阿里云RAM角色和自定义角色
阿里云RAM角色和自定义角色
169 1
|
SQL 存储 数据库
使用Forms设置不同角色具有不同的权限
使用Forms设置不同角色具有不同的权限
123 0
|
分布式计算 MaxCompute
对象操作赋权、Role 和 label 关系介绍
对象操作赋权、Role 和 label 关系介绍
160 0
|
安全 Java 数据库
SpringSecurity权限命名ROLE_问题
SpringSecurity权限命名ROLE_问题
231 0
SpringSecurity权限命名ROLE_问题
|
数据安全/隐私保护
【TP5.1】用户组权限管理(列表,添加,修改)
【TP5.1】用户组权限管理(列表,添加,修改)
270 0
【TP5.1】用户组权限管理(列表,添加,修改)
|
安全 Java
Power Apps配置安全角色和对象权限
Power Apps配置安全角色和对象权限
475 0
Power Apps配置安全角色和对象权限
|
对象存储 数据安全/隐私保护
赋予RAM子用户访问OSS的某个文件夹的权限策略
给子用户赋予bucket下某个目录的访问权限
2176 0
赋予RAM子用户访问OSS的某个文件夹的权限策略
|
Shell
ansible--user和group模块用户创建及删除
执行脚本增加用户[root@10-15-195-231 roles]#ansible test -a "/root/addappuser.sh ansible"addappuser.sh 为远端服务器上的脚本[root@10-15-195-231 ~]# cat addappuser.
5628 0