K8S学习之基础三十一:k8s中RBAC 的核心概念

Kubernetes (k8s) 中的 RBAC(Role-Based Access Control,基于角色的访问控制)是一种用于管理用户和服务账户对集群资源访问权限的机制。RBAC 允许管理员通过定义角色(Role)和角色绑定(RoleBinding)来精确控制谁可以在哪些资源上执行哪些操作。

RBAC 的核心概念

  1. Role:

    • 定义了一组权限,指定了可以对哪些资源执行哪些操作。

    • Role 是命名空间(Namespace)级别的,即它只适用于特定的命名空间。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:namespace: defaultname: pod-reader
      rules:
      - apiGroups: [""] # "" 表示核心 API 组resources: ["pods"]verbs: ["get", "watch", "list"]
      

      这个 Role 允许用户在 default 命名空间中获取、查看和列出 Pod。

  2. ClusterRole:

    • 类似于 Role,但它是集群级别的,适用于整个集群,而不仅仅是某个命名空间。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:name: cluster-admin
      rules:
      - apiGroups: [""]resources: ["*"]verbs: ["*"]
      

      这个 ClusterRole 允许用户对所有资源执行所有操作。

  3. RoleBinding:

    • 将 Role 或 ClusterRole 绑定到用户、组或服务账户(ServiceAccount)。

    • RoleBinding 是命名空间级别的,即它只适用于特定的命名空间。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:name: read-podsnamespace: default
      subjects:
      - kind: Username: aliceapiGroup: rbac.authorization.k8s.io
      roleRef:kind: Rolename: pod-readerapiGroup: rbac.authorization.k8s.io
      

      这个 RoleBinding 将 pod-reader Role 绑定到用户 alice,允许她在 default 命名空间中读取 Pod。

  4. ClusterRoleBinding:

    • 类似于 RoleBinding,但它是集群级别的,适用于整个集群。

      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:name: cluster-admin-binding
      subjects:
      - kind: Username: adminapiGroup: rbac.authorization.k8s.io
      roleRef:kind: ClusterRolename: cluster-adminapiGroup: rbac.authorization.k8s.io
      

      这个 ClusterRoleBinding 将 cluster-admin ClusterRole 绑定到用户 admin,允许她对整个集群中的所有资源执行所有操作。

RBAC 的常见操作

  • 创建 Role 和 RoleBinding:

    • 使用 kubectl create rolekubectl create rolebinding 命令可以快速创建 Role 和 RoleBinding。

      kubectl create role pod-reader --verb=get,list,watch --resource=pods
      kubectl create rolebinding read-pods --role=pod-reader --user=alice
      
  • 查看 Role 和 RoleBinding:

    • 使用 kubectl get rolekubectl get rolebinding 命令可以查看现有的 Role 和 RoleBinding。

      kubectl get role -n default
      kubectl get rolebinding -n default
      
  • 删除 Role 和 RoleBinding:

    • 使用 kubectl delete rolekubectl delete rolebinding 命令可以删除 Role 和 RoleBinding。

      kubectl delete role pod-reader -n default
      kubectl delete rolebinding read-pods -n default
      

RBAC 的最佳实践

  1. 最小权限原则:
    • 只授予用户或服务账户完成其任务所需的最小权限。
    • 避免使用过于宽泛的权限,如 cluster-admin,除非确实需要。
  2. 使用命名空间隔离:
    • 将不同的应用或团队分配到不同的命名空间,并使用 Role 和 RoleBinding 来控制权限。
  3. 定期审计权限:
    • 定期检查 Role 和 RoleBinding,确保没有不必要的权限被授予。
  4. 使用 ServiceAccount:
    • 为每个应用或服务创建专用的 ServiceAccount,并为其分配适当的权限,而不是使用默认的 ServiceAccount。

总结

RBAC 是 Kubernetes 中管理访问控制的重要机制,通过定义 Role、ClusterRole、RoleBinding 和 ClusterRoleBinding,管理员可以精确控制用户和服务账户对集群资源的访问权限。遵循最小权限原则和最佳实践,可以有效地提高集群的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【eNSP实战】三层交换机使用ACL实现网络安全

拓图 要求: vlan1可以访问Internetvlan2和vlan3不能访问Internet和vlan1vlan2和vlan3之间可以互相访问PC配置如图所示,这里不展示 LSW1接口vlan配置 vlan batch 10 20 30 # interface Vlanif1ip address 192.168.40.2 255.255.255.0 # interface Vla…

软考系统架构师 — 1 考点分析

目录 1 考点总结 1 考点总结 章节 内容 真题考察 绪论 1. 绪论 不考 计算机相关知识 2. 计算机系统基础知识,新增计算机硬件、嵌入式、计算机语言、系统工程 对应计算机组成结构、操作系统、数据库、计算机网络、多媒体等知识点,整体分值在 10 …

在Eclipse 中使用 MyBatis 进行开发,通常需要以下步骤:

在Eclipse 中使用 MyBatis 进行开发,通常需要以下步骤: 1. 创建 Maven 项目 首先,在 Eclipse 中创建一个 Maven 项目。如果你还没有安装 Maven 插件,可以通过 Eclipse Marketplace 安装 Maven 插件。 打开 Eclipse,选…

错误记录: git 无法连接到github

错误记录: git 无法连接到github 今天, 新建了一个github仓库, 但从本地怎么都push不上去.并报错 gitgithub.com: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository e…

k8s 配置两个deployment主机级别互斥部署

在 Kubernetes 中,要实现两个 Deployment 的 Pod 在主机级别互斥部署,可以使用 podAntiAffinity 配置。通过设置 podAntiAffinity,可以确保两个 Deployment 的 Pod 不会被调度到同一节点上。 实现步骤 定义 Deployment: 为每个…

Unity中WolrdSpace下的UI展示在上层

一、问题描述 Unity 中 Canvas使用World Space布局的UI,想让它不被3d物体遮挡,始终显示在上层。 二、解决方案 使用shader解决 在 UI 的材质中禁用深度测试(ZTest),强制 UI 始终渲染在最上层。 Shader "Custo…

五子棋小游戏-简单开发版

一、需求分析 开发一个基于 Pygame 库的五子棋小游戏,允许两名玩家在棋盘上轮流落子,当有一方达成五子连珠时游戏结束,显示获胜信息,并提供退出游戏和重新开始游戏的操作选项。 1.棋盘显示 : 显示一个 15x15 的五子棋…

基于C#的以太网通讯实现:TcpClient异步通讯详解

基于C#的以太网通讯实现:TcpClient异步通讯详解 在现代工业控制和物联网应用中,以太网通讯是一种常见的数据传输方式。本文将介绍如何使用C#实现基于TCP协议的以太网通讯,并通过异步编程提高通讯效率。我们将使用TcpClient类来实现客户端与服…

小秋的矩阵

0小秋的矩阵 - 蓝桥云课 问题描述 给你一个 n 行 m 列只包含 0 和 1 的矩阵,求它的所有子矩阵中,是方阵而且恰好包含 k 个 0 的数量。 方阵是行数和列数相等的矩阵。 子矩阵是从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保…

晶晨S905L3芯片_原机安卓4升级安卓9.0_通刷线刷固件包

晶晨S905L3芯片_原机安卓4升级安卓9.0_通刷线刷固件包 线刷方法:(新手参考借鉴一下) 1、准备好一根双公头USB线刷刷机线,长度30-50CM长度最佳,同时准备一台电脑; 2、电脑上安装好刷机工具Amlogic USB Bu…

麒麟服务器操作系统Redis部署手册

软件简介 Redis****介绍 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。 Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存…

(分块)洛谷 P2801 教主的魔法 题解

之前学过 莫队 算法,其运用了分块思想;但是我居然是第一次写纯种的分块题目。 题意 给你一个长度为 n n n 的序列 a a a(一开始 ∀ a i ∈ [ 1 , 1000 ] \forall a_i\in[1,1000] ∀ai​∈[1,1000])。要求执行 q q q 次操作&…

谷歌Chrome或微软Edge浏览器修改网页任意内容

在谷歌或微软浏览器按F12,打开开发者工具,切换到console选项卡: 在下面的输入行输入下面的命令回车: document.body.contentEditable"true"效果如下:

【生日蛋糕——DFS剪枝优化】

题目 分析 代码 #include <bits/stdc.h> using namespace std;const int N 24; const int inf 0x3f3f3f3f;int mins[N], minv[N]; int R[N], H[N]; int n, m, ans inf;void dfs(int u, int v, int s) {if(v minv[u] > n) return;if(s mins[u] > ans) return;…

【C++基础十】泛型编程(模板初阶)

【C基础十】泛型编程—模板 1.什么是模板2.函数模板的实例化&#xff1a;2.1隐式实例化2.2显示实例化 3.函数模板参数的匹配规则4.什么是类模板5.类模板的实例化6.声明和定义分离 1.什么是模板 void swap(int& a, int& b) {int tmp 0;tmp a;a b;b tmp; }void swap…

如何修复 Tauri 发布后程序运行时显示 `asset not found: index.html` 的问题

如何修复 Tauri 发布后程序运行时显示 asset not found: index.html 的问题 在使用 Tauri 发布应用程序时&#xff0c;如果运行时出现 asset not found: index.html 的错误&#xff0c;通常是因为 Tauri 无法找到或正确加载前端资源文件&#xff08;如 index.html&#xff09;…

短视频下载去水印,用什么工具好?

去除视频和图片水印是许多用户的需求&#xff0c;尤其是在分享或保存内容时。以下是6款超好用的工具&#xff0c;帮助你轻松去除水印&#xff0c;享受纯净的视觉体验&#xff1a; 1. 易下载去水印小程序 特点&#xff1a; 操作简单&#xff0c;支持抖音、快手、小红书、哔哩哔哩…

【华为OD-E卷 -121 消消乐游戏 100分(python、java、c++、js、c)】

【华为OD-E卷 - 消消乐游戏 100分(python、java、c++、js、c)】 题目 游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除。 在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束。 输出最终得到的字符串长度 输入描…

设计模式(行为型)-备忘录模式

目录 定义 类图 角色 角色详解 &#xff08;一&#xff09;发起人角色&#xff08;Originator&#xff09;​ &#xff08;二&#xff09;备忘录角色&#xff08;Memento&#xff09;​ &#xff08;三&#xff09;备忘录管理员角色&#xff08;Caretaker&#xff09;​…

YOLO简史:从YOLOv1到YOLOv12的技术革新与演进

YOLO&#xff08;You Only Look Once&#xff09;系列算法自2015年诞生以来&#xff0c;凭借其“单次推理”的高效特性&#xff0c;彻底改变了目标检测领域。从初代YOLO到最新的YOLOv12&#xff0c;每一次迭代都凝聚了研究者的智慧与工业界的实践需求。本文梳理各版本的特性、技…