0

0

LinuxKubernetes安全机制教程_RBAC权限控制实践

舞姬之光

舞姬之光

发布时间:2026-01-05 13:55:02

|

734人浏览过

|

来源于php中文网

原创

RBAC是Kubernetes最核心的安全机制,通过Role/ClusterRole定义权限、RoleBinding/ClusterRoleBinding关联主体与角色、Subject标识请求者、Resource指定操作对象,实现最小权限控制。

linuxkubernetes安全机制教程_rbac权限控制实践

RBAC(基于角色的访问控制)是 Kubernetes 中最核心、最常用的安全机制,它通过定义角色(Role/ClusterRole)和角色绑定(RoleBinding/ClusterRoleBinding),精细控制用户或服务账户对集群资源的操作权限。

理解 RBAC 的四个关键对象

Kubernetes RBAC 体系围绕四个基础对象构建,缺一不可:

  • Subject(主体):请求操作的“谁”,可以是用户(如 alice)、组(如 system:authenticated)或服务账户(如 default);
  • Role / ClusterRole(角色):定义“能做什么”,即一组 API 权限规则。Role 作用于单个命名空间,ClusterRole 是集群范围的;
  • RoleBinding / ClusterRoleBinding(角色绑定):把 Subject 和 Role/ClusterRole 关联起来,明确“谁在什么范围内拥有哪些权限”;
  • Resource(资源):权限作用的对象,例如 podsdeploymentssecrets,支持子资源(如 pods/log)。

创建最小权限的服务账户并授权

生产环境中应避免使用默认 serviceaccount 或高权限用户。推荐为每个应用或运维任务单独建服务账户,并按需授予权限:

1. 创建专用服务账户:

kubectl create serviceaccount app-reader -n myapp

2. 定义只读 Role(仅限 myapp 命名空间):

EnablePPA中小学绩效考核系统2.0
EnablePPA中小学绩效考核系统2.0

无论从何种情形出发,在目前校长负责制的制度安排下,中小学校长作为学校的领导者、管理者和教育者,其管理水平对于学校发展的重要性都是不言而喻的。从这个角度看,建立科学的校长绩效评价体系以及拥有相对应的评估手段和工具,有利于教育行政机关针对校长的管理实践全过程及其结果进行测定与衡量,做出价值判断和评估,从而有利于强化学校教学管理,提升教学质量,并衍生带来校长转变管理观念,提升自身综合管理素质。

下载
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: myapp
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods", "pods/log"]
  verbs: ["get", "list", "watch"]

3. 绑定服务账户到该 Role:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: myapp
subjects:
- kind: ServiceAccount
  name: app-reader
  namespace: myapp
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

4. 在 Pod 中引用该服务账户:

spec:
  serviceAccountName: app-reader

区分 RoleBinding 与 ClusterRoleBinding 的使用场景

权限范围决定绑定方式,选错会导致权限失效或过度开放:

  • 若只需访问某命名空间内的资源(如开发人员管理自己项目的 Deployment),用 Role + RoleBinding
  • 若需跨命名空间操作(如监控系统读取所有命名空间的 Pods),必须用 ClusterRole + ClusterRoleBinding
  • 注意:ClusterRole 本身不等于“超级权限”,它只是作用域更广;实际权限仍取决于 rules 中定义的 verbs 和 resources;
  • 内置 ClusterRole(如 vieweditcluster-admin)可直接复用,但 cluster-admin 等同于 root,禁止随意绑定。

验证与调试 RBAC 权限问题

权限配置后常遇到 Forbidden 错误,可通过以下方式快速定位:

  • kubectl auth can-i 模拟检查(支持 --as 指定用户或服务账户):
# 检查当前用户能否在 default 命名空间列出 pods
kubectl auth can-i list pods

检查服务账户 app-reader 是否能获取 logs

kubectl auth can-i get pods/log -n myapp --as=system:serviceaccount:myapp:app-reader

  • 查看绑定关系:kubectl get rolebindings,clusterrolebindings --all-namespaces
  • 检查服务账户的 token 是否被正确挂载到 Pod 中(ls /var/run/secrets/kubernetes.io/serviceaccount/);
  • 注意:API server 日志中会记录拒绝详情(需开启 audit log),但日常排查优先用 can-i

相关专题

更多
resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

145

2023.12.20

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

6062

2023.09.14

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

789

2023.09.14

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

1053

2023.12.21

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

1156

2024.03.01

default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.12.07

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

17

2025.12.22

python创建txt文件教程大全
python创建txt文件教程大全

本专题整合了python创建txt文件相关教程,阅读专题下面的文章了解更多详细内容。

10

2026.01.06

python去掉字符串空格教程大全
python去掉字符串空格教程大全

本专题整合了python去掉字符串空格教程大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 6.7万人学习

Git 教程
Git 教程

共21课时 | 2.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号