Kubernetes# RBAC访问控制
目录
定义
配置对象
Role
ClusterRole
ServiceAccount
RoleBinding
ClusterRoleBinding
配置示例
定义
Kubernetes的运行是由多种类型的资源组合起来,每种资源各司其职完成整个集群的功能。那么自然也需要一套机制控制资源的访问权限,保证安全性,RBAC就是Kubernetes提供的资源访问控制机制。
RBAC:Role-Based Access Control(基于角色的访问控制)的缩写,基于角色(Role)的访问控制是一种基于组织中用户的角色来调节控制对计算机或网络资源的访问的方法。RBAC类似于我们平时做的系统功能权限设计,用户绑定角色,角色绑定策略,策略绑定资源,从而达到资源控制的目的。
配置对象
RBAC主要由5个对象组成,具体如下:
Role
访问角色,也是定义访问规则的位置,和我们平时系统里的功能权限设计不同,这里没有策略部分(定义规则的地方),直接就在Role里面定义访问规则,Role对象是基于命名空间进行配置,标明对某个命名空间下对象的访问,配置示例:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:namespace: default //定义适用的命名空间name: limited-configmap-access
rules:
- apiGroups: [""]resources: ["configmaps"] //访问的资源类型,也可以是services、configmapsresourceNames: ["configmap-allowed1", "configmap-allowed2"] // 定义可以访问哪些configmap,如果不指定那就是可以访问default命名空间下所有的verbs: ["get", "list", "watch", "update"] // 定义访问的权限
ClusterRole
ClusterRole也是一种访问角色配置,从命名能看出这是一种基于集群范围的配置,Role是对某个NameSpace生效,而ClusterRole配置是对整个集群生效,配置示例:
// 为整个集群内的pods创建访问权限apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: pod-manager
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "list", "create", "update", "delete"]
ServiceAccount
有了角色之后最终是要配置到账户上的,这样才好直接关联到具体的资源,ServiceAccount是Kubernetes内部提供的身份,用于Pod的自动关联,并通过RBAC控制访问。其实Role的绑定目标还有User和Group,这两个是集群的外部身份,不是Kubernetes的内部资源对象,所以这里列举上常用的资源对象,配置如下:
# serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:name: configmap-access-sanamespace: default
RoleBinding
角色绑定,有了角色和账户,现在就需要将两种资源绑定在一起,这样账户才有了Role对应的资源访问能力,配置如下:
# rolebinding-configmap-access.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: configmap-access-bindingnamespace: default
subjects:
- kind: ServiceAccountname: configmap-access-sanamespace: default
roleRef:kind: Rolename: limited-configmap-accessapiGroup: rbac.authorization.k8s.io
ClusterRoleBinding
同理ClusterRoleBinding用来绑定集群类型的Role,配置如下:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:name: bind-node-manager
subjects:
- kind: Groupname: admin-groupapiGroup: rbac.authorization.k8s.io
roleRef:kind: ClusterRolename: node-managerapiGroup: rbac.authorization.k8s.io
配置示例
上面已经介绍完了RBAC几个核心的配置资源对象,现在以一个具体的示例来做下配置,我们定义一个订单业务相关配置的configmap资源对象,只希望订单相关的业务pod进行查看和修改,而其他的业务pod只能查看。
定义configmap:
apiVersion: v1
kind: ConfigMap
metadata:name: order-configmap
data:app.properties: |price=100discount=0.5
定义查看查看和更新角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:namespace: defaultname: order-admin-access
rules:
- apiGroups: [""]resources: ["configmaps"]resourceNames: ["order-configmap"]verbs: ["get", "list", "watch", "update", "delete"]
定义仅查看角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:namespace: defaultname: order-read-access
rules:
- apiGroups: [""]resources: ["configmaps"]resourceNames: ["order-configmap"]verbs: ["get", "list"]
定义拥有全部权限的账户:
apiVersion: v1
kind: ServiceAccount
metadata:name: order-admin-sanamespace: default
定义只读权限的账户:
apiVersion: v1
kind: ServiceAccount
metadata:name: order-read-sanamespace: default
绑定角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: order-admin-binddingnamespace: default
subjects:
- kind: ServiceAccountname: order-admin-sanamespace: default
roleRef:kind: Rolename: order-admin-accessapiGroup: rbac.authorization.k8s.io
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: order-read-binddingnamespace: default
subjects:
- kind: ServiceAccountname: order-read-sanamespace: default
roleRef:kind: Rolename: order-read-accessapiGroup: rbac.authorization.k8s.io
订单业务pod:
apiVersion: v1
kind: Pod
metadata:name: order-podnamespace: default
spec:serviceAccountName: order-admin-sacontainers:- name: order-testimage: /test/order
其他业务pod:
apiVersion: v1
kind: Pod
metadata:name: other-podnamespace: default
spec:serviceAccountName: order-read-sacontainers:- name: other-testimage: /test/other
相关文章:
Kubernetes# RBAC访问控制
目录 定义 配置对象 Role ClusterRole ServiceAccount RoleBinding ClusterRoleBinding 配置示例 定义 Kubernetes的运行是由多种类型的资源组合起来,每种资源各司其职完成整个集群的功能。那么自然也需要一套机制控制资源的访问权限,保证安全性…...
如何实现后端返回excel文件,在前端下载功能
前言 简单记录一下,excel文件导出下载功能 一、后端接口返回excel文件 把自己生成的workbook 以文件流的方式,返回前台 Workbook workbook employeeConfirmationDefectService.exportPoorPolishExcel(budatBegin, budatEnd, queryWrapper);//传输到…...
编程:一场不设防的智慧江湖
在数字的汪洋中,有一片从未设置年龄禁区的领地——编程世界。许多人会问:35岁了,还能学编程吗?答案是:不仅能学,还能学得很精彩。 时光荏苒,科技浪潮汹涌澎湃。曾经,人们以为编程是…...
电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南
电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南 在探索电脑游戏的无限乐趣时,我们时常会遇到一些不期而遇的挑战。今天,我们将聚焦于一个常见的游戏运行错误——穿越火线(或其他使用Unity引擎的游戏…...
【C++】CUDA线程在全局索引中的计算方式
文章目录 1. 一维网格一维线程块2. 二维网格二维线程块3. 三维网格三维线程块4. 不同组合形式4.1 一维网格一维线程块4.2 一维网格二维线程块4.3 一维网格三维线程块4.4 二维网格一维线程块4.5 二维网格二维线程块4.6 二维网格三维线程块4.7 三维网格一维线程块4.8 三维网格二维…...
【笔记】C语言转C++
网课链接:【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长:01:55:27 以下笔记是我通过此网课整理 建议先…...
锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集
锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集 目录 锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集预测效果基本描述程序设计参考资料 预测效果 基本描述 锂电池SOH预测 | 基于Bi…...
半导体器件与物理篇5 1~4章课后习题
热平衡时的能带和载流子浓度 例 一硅晶掺入每立方厘米10^{16}个砷原子,求室温下(300K)的载流子浓度与费米能级。 需要用到的公式包括1.本征载流子浓度公式 2.从导带底算起的本征费米能级 2.从本征费米能级算起的费米能级 载流子输运现象 例1:计算在300K下&#x…...
Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告Gherkin格式命令行报告
Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告&Gherkin格式命令行报告 前言一、创建Feature文件二、创建步骤定义文件三、生成Cucumber格式的JSON报告四、使用Gherkin格式的命令行报告五、将BDD报告集成到Jenkins中总结 前言 在自动…...
机器学习之学习范式
机器学习的四种主要范式分别是:监督学习、非监督学习、强化学习和半监督学习。以下是每种范式的详细介绍: 1. 监督学习(Supervised Learning) 定义: 通过已标注的数据训练模型,以预测或分类未知数据。 目…...
PHPstudy中的数据库启动不了
法一 netstat -ano |findstr "3306" 查看占用该端口的进程号 taskkill /f /pid 6720 杀死进程 法二 sc delete mysql...
鸿蒙开发-ArkTS 创建自定义组件
在 ArkTS 中创建自定义组件是一个相对简单但功能强大的过程。以下是如何在 ArkTS 中创建和使用自定义组件的详细步骤: 一、定义自定义组件 使用Component注解:为了注册一个组件,使其能够在其他文件中被引用,你需要使用Component…...
记录学习《手动学习深度学习》这本书的笔记(五)
这一章是循环神经网络,太难了太难了,有很多卡壳的地方理解了好久,比如隐藏层和隐状态的区别、代码的含义(为此专门另写了一篇【笔记】记录对自主实现一个神经网络的步骤的理解)、梯度计算相关(【笔记】记录…...
【Qt】Qt+Visual Studio 2022环境开发
在使用Qt Creator的过程中,项目一大就会卡,所以我一般都是用VS开发Cmake开发, 在上一篇文章中,我已经安装了CMake,如果你没有安装就自己按一下。 记得配置Qt环境变量,不然CMake无法生成VS项目:…...
云计算HCIP-OpenStack04
书接上回: 云计算HCIP-OpenStack03-CSDN博客 12.Nova计算管理 Nova作为OpenStack的核心服务,最重要的功能就是提供对于计算资源的管理。 计算资源的管理就包含了已封装的资源和未封装的资源。已封装的资源就包含了虚拟机、容器。未封装的资源就是物理机提…...
HCIA-Access V2.5_3_2_VLAN数据转发
802.1Q的转发原则--Access-Link 首先看一下Access,对于Access端口来说, 它只属于一个VLAN,它的VLANID等于PVID。 首先看一下接收方向,前面说过交换机内部一定要带标签转发,所以当交换机接收到一个不带tag的数据帧时,会给它打上端…...
transformer学习笔记-导航
本系列专栏,主要是对transformer的基本原理做简要笔记,目前也是主要针对个人比较感兴趣的部分,包括:神经网络基本原理、词嵌入embedding、自注意力机制、多头注意力、位置编码、RoPE旋转位置编码等部分。transformer涉及的知识体系…...
功能篇:JAVA后端实现跨域配置
在Java后端实现跨域配置(CORS,Cross-Origin Resource Sharing)有多种方法,具体取决于你使用的框架。如果你使用的是Spring Boot或Spring MVC,可以通过以下几种方式来配置CORS。 ### 方法一:全局配置 对于所…...
防火墙内局域网特殊的Nginx基于stream模块进行四层协议转发模块的监听443 端口并将所有接收转发到目标服务器
在一些特殊场合下, 公司内部网络防火墙限制, 不能做端口映射, 此时可以使用nginx的做从四层协议转发, 只走tcp/ip协议, 而不走http方式, 可以做waf设置, 就可以做443, 或其它端口, 从而达到被直接转发到远程服务器效果 机房只映射了一个IP:22280, 而需求是这个SDK只能通过…...
【Hive】-- hive 3.1.3 伪分布式部署(单节点)
1、环境准备 1.1、版本选择 apache hive 3.1.3 apache hadoop 3.1.0 oracle jdk 1.8 mysql 8.0.15 操作系统:Mac os 10.151.2、软件下载 https://archive.apache.org/dist/hive/ https://archive.apache.org/dist/hadoop/ 1.3、解压 tar -zxvf apache-hive-4.0.0-bin.tar…...
忍者像素绘卷效果对比:亮色像素美学 vs 传统暗调像素艺术表现力
忍者像素绘卷效果对比:亮色像素美学 vs 传统暗调像素艺术表现力 1. 作品概述 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站,它将忍者文化与16-Bit复古游戏美学完美融合。这款工具最显著的特点是采用了全新的"亮色像素"界面…...
别再乱选ASCII/HEX了!野火串口调试助手发送接收区配置详解(附实战案例)
串口通信调试实战:ASCII与HEX模式的选择艺术 调试智能家居设备时,你是否遇到过发送"ON"指令毫无反应,接收区却显示一堆乱码的尴尬?这往往不是设备故障,而是串口调试中最常见的模式选择错误。作为嵌入式开发者…...
落地生产级推理引擎!高性能GPU算子生成系统Kernel-Smith发布
在当今的大模型时代,高性能 GPU 算子(Kernel)是将硬件算力转化为实际吞吐量的核心引擎。无论是支撑 Megatron、vLLM、LMDeploy 等底层系统,还是驱动 AI for Science (AI4S) 的复杂科学计算,高效的算子实现都是释放硬件…...
2026 最强 AI 论文排版工具合集:9 大神器一键搞定毕业论文格式,告别通宵改稿!
一、毕业季噩梦:被格式支配的论文焦虑,该终结了 每年毕业季,“论文格式” 都是横在本科生、研究生面前的第一道坎。熬了数月写完的正文,却要花数倍时间调整字体、行距、目录、参考文献、页眉页脚;对着几十页高校格式规…...
避开这些坑!Mapbox图层管理实战:动态加载GeoJSON数据的正确姿势
Mapbox高级图层管理实战:GeoJSON动态加载与性能优化全解析 当处理省级以上GIS数据可视化时,Mapbox的图层管理能力直接决定了应用的流畅度和用户体验。许多开发者在使用GeoJSON数据源时,常遇到内存泄漏、渲染卡顿、交互延迟等问题。本文将深入…...
STM32CubeMX实战指南:DMA驱动USART高效数据传输
1. DMA与USART协作的核心价值 第一次接触STM32的DMA功能时,我正被一个传感器数据采集项目折磨得焦头烂额。当时用传统的中断方式处理串口数据,CPU占用率直接飙到70%,整个系统卡得像老式拨号上网。直到尝试了DMAUSART组合,才真正体…...
SMR实战:如何将GWAS数据快速转换为BESD格式(附常见错误排查)
SMR实战:GWAS数据高效转换为BESD格式的完整指南与深度排错手册 在生物信息学研究中,基于汇总数据的孟德尔随机化(Summary-data-based Mendelian Randomization, SMR)已成为探索基因表达数量性状位点(eQTL)与…...
告别创作瓶颈:像素剧本圣殿应用指南,打造你的专属剧本工作站
告别创作瓶颈:像素剧本圣殿应用指南,打造你的专属剧本工作站 1. 像素剧本圣殿简介 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将AI推理能力与8-Bit复古美学完美融合,为创作者提供沉浸式的剧本开发体验。 …...
从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路
从3天到30分钟:OpCore-Simplify如何重构黑苹果配置的技术民主化之路 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在黑苹果技术领域&…...
RIFE帧插值技术:视频增强领域的智能插帧解决方案
RIFE帧插值技术:视频增强领域的智能插帧解决方案 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/video2x …...
