Kubernetes安全
Kubernetes RBAC授权
Kubernetes 安全框架
1. Authentication(鉴权)
• HTTPS 证书认证:基于CA证书签名的数字证书认证(kubeconfig)• HTTP Token认证:通过一个Token来识别用户(serviceaccount)• HTTP Base认证:用户名+密码的方式认证(1.19版本弃用)
2. Authorization(授权)
比较常见的授权维度
• user:用户名• group:用户分组• 资源,例如pod、 deployment• 资源操作方法: get, list, create, update, patch, watch, delete• 命名空间• API组
3. Admission Control(准入控制)
kube-apiserver --enable-admission-plugins=NamespaceLifecycle,LimitRanger ... kube-apiserver --disable-admission-plugins=PodNodeSelector,AlwaysDeny ... kubectl exec kube-apiserver-k8s-master -n kube-system -- kube-apiserver -h | grep enable-admission-plugins
基于角色的权限访问控制: RBAC
• User:用户• Group:用户组• ServiceAccount:服务账号
• Role:授权特定命名空间的访问权限• ClusterRole:授权所有命名空间的访问权限
• RoleBinding:将角色绑定到主体(即subject)• ClusterRoleBinding:将集群角色绑定到主体
RBAC授权案例
1. 用K8S CA签发客户端证书2. 生成kubeconfig授权文件3. 创建RBAC权限策略4. 指定kubeconfig文件测试权限: kubectl get pods --kubeconfig=./aliang.kubeconfig
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true \
--server=https://192.168.31.61:6443 \ #masterIP
--kubeconfig=aliang.kubeconfig kubectl config set-credentials aliang \
--client-key=aliang-key.pem \
--client-certificate=aliang.pem \
--embed-certs=true \
--kubeconfig=aliang.kubeconfig kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=aliang \
--kubeconfig=aliang.kubeconfig kubectl config use-context kubernetes --kubeconfig=aliang.kubeconfig apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [“” ] # api组,例如apps组,空值表示是核心API组,像namespace、 pod、 service、 pv、 pvc都在里面
resources: [“pods” ] #资源名称(复数),例如pods、 deployments、 services
verbs: [“get” , “watch” , “list” ] # 资源操作方法 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: default
subjects:
- kind: User # 主体
name: jane # 主体名称
apiGroup: rbac.authorization.k8s.io
roleRef: # 绑定的角色
kind: Role
name: pod-reader # 角色名称
apiGroup: rbac.authorization.k8s.io
kubectl create serviceaccount cicd-token -n app-team1 kubectl create clusterrole deployment-clusterrole \
--verb=create --resource=deployments,daemonsets,statefulsets kubectl create rolebinding cicd-token \
--serviceaccount=app-team1:cicd-token \
--clusterrole=deployment-clusterrole -n app-team1 kubectl --as=system:serviceaccount:app-team1:cicd-token \
get pods -n app-team1 apiVersion: v1
kind: ServiceAccount
metadata:name: cicd-tokennamespace: app-team1
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: deployment-clusterrole
rules:
- apiGroups: ["apps"]resources: ["deployments","daemonsets","statefulsets"]verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:name: cicd-tokennamespace: app-team1
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: deployment-clusterrole
subjects:
- kind: ServiceAccountname: cicd-tokennamespace: app-team1 网络访问控制
网络访问控制应用场景
网络策略的应用场景(偏重多租户下)
网络策略概述
podSelector:目标Pod,根据标签选择。
policyTypes:策略类型,指定策略用于入站、出站流量。
Ingress: from是可以访问的白名单,可以来自于IP段、命名空间、 Pod标签等, ports是可以访问的端口。
Egress:这个Pod组可以访问外部的IP段和端口
网络策略工作流程
网络访问控制3个案例
kubectl run busybox --image=busybox -n test -- sleep 12h
kubectl run web --image=nginx -n test kubectl exec busybox -n test -- ping <同命名空间pod IP> kubectl exec busybox -- ping <test命名空间pod IP>
kubectl run web --image=nginx -n test
kubectl run client1 --image=busybox -n test -- sleep 12h kubectl exec client1 -n test -- wget <test命名空间pod IP> kubectl exec busybox -- wget <test命名空间pod IP>
kubectl label namespace dev name=dev kubectl run busybox --image=busybox -n dev -- sleep 12h kubectl exec busybox -n dev -- wget <test命名空间pod IP> kubectl exec busybox -- wget <test命名空间pod IP>
相关文章:
Kubernetes安全
Kubernetes RBAC授权 Kubernetes 安全框架 K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。1. Authentication(鉴权) K8s Apiserver提供三种客户端身份认证:• H…...
全国进入裁员潮,到底是大厂难混?还是我技不如人?
前言 面对裁员,每个人的心态不同。他们有的完全没有料想到自己会被裁,有的却对裁员之事早有准备。大多数人,我想是焦虑失落的吧。 01 “降本增效”,HR怒提裁员刀 小默 | 32岁 芯片行业 人力资源 1月份,身处芯片行业H…...
电子技术——内部电容效应以及MOS与BJT的高频响应模型
电子技术——内部电容效应以及MOS与BJT的高频响应模型 耦合和旁路电容决定了放大器的低频响应,同时内部电容效应决定了放大器的高频响应。本节,我们简单简单介绍一下内部电容效应,并且更重要的是如何在小信号模型中模型化内部电容效应。 MOS…...
华为OD机试题 - 出租车计费(JavaScript)
最近更新的博客 2023新华为OD机试题 - 斗地主(JavaScript)2023新华为OD机试题 - 箱子之形摆放(JavaScript)2023新华为OD机试题 - 考古学家(JavaScript)2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)2023新华为OD机试题 - 最多等和不相交连续子序列(JavaScri…...
Django框架进阶版
一、Django介绍 1.起源 2005年发布,采用python语言编写的。 早期Django主要做新闻和内容管理 重量级python web框架,配备了大量组件 2.组件 包含组件如下 基本配置文件/路由系统 MTV设计模式 Cookies和Session 分页和发邮件 Admin管理后台 3…...
2023美赛F题全部代码+数据+结果 数学建模
2023年美赛F题全部思路 数据代码都已完成 全部内容见链接:https://www.jdmm.cc/file/2708700/ 1.根据文献选的GGDP的指标,发现GGDP与水资源等有关,由此可以筛选出影响GGDP的所有因子,并可以用所有因子利用层次分析法建立评价体…...
Java基础-logback日志使用
日志 1.1 作用: 跟输出语句一样,可以把程序在运行过程中的详细信息都打印在控制台上。 利用log日志还可以把这些详细信息保存到文件和数据库中。 1.2 使用步骤: 不是java的,也不是自己写的,是第三方提供…...
kaggle竞赛-宠物受欢迎程度(赛题讲解与数据分析)
比赛官网地址 赛题介绍 petfinder是马来西亚领先的动物福利平台宠物网站地址 该网站使用可爱指数来排名宠物照片。它分析了图片组成和其他因素,并与数千个宠物档案的表现进行了比较。 在这场比赛中,你将分析原始图像和元数据来预测宠物照片的“Pawp…...
Go语言基础知识学习笔记
环境准备 下载安装Golang:https://golang.google.cn/dl/ 因为国外下载速度较慢,我们需要配置国内代理 # 开启包管理工具 go env -w GO111MODULEon # 设置代理 go env -w GOPROXYhttps://goproxy.cn,direct # 设置不走 proxy 的私有仓库,多…...
Python3 错误和异常
Python3 错误和异常 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断…...
程序人生 - 学习和分享
文章目录记于 230217学习安排泛学AI 和 未来记于 230217 刚入行时,经常看到技术博客中,博主们分享生活,比如相亲、上班生活,甚至还有人发结婚照。这个栏目通常被称为:程序人生。 这个现象已经很久没看到了,…...
基于树莓派的智能家居项目整理
一、功能介绍 二、设计框图 三、实物展示 四、程序 一、功能介绍硬件:树莓派3B、LD3320语音识别模块、pi 摄像头、继电器组、小灯、火焰传感器、蜂鸣器、电 磁锁 项目框架: 采用了简单工厂模式的一个设计方式。稳定,拓展性…...
《洛阳冬冷》
——洛阳的冬天太冷,最暖不过你的眼神。 ******* 她拿了个画着几丛竹子的小团扇子一路分花拂柳地往前走,后面一水儿的侍女不敢出声,只得地默默跟着她。她一张脸本来生得就好看,这一怒起来竟然还更加的好看了。此时她走得太急&…...
YOLOv5简介
YOLOv5 一、输入端 1. Mosaic数据增强: CutMix 数据增强:随机生成一个裁剪框Box,裁剪掉A图中的相应位置,然后用B图相应位置的ROI放到A中被裁剪的区域中形成新的样本。采用加权求和的方式计算损失,将A区域中被cut掉的…...
【面向对象语言三大特性之 “继承”】
目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 7.复杂的菱形继承及菱形虚拟…...
Ambari2.7.5集群搭建详细流程
0 说明 本文基于本地虚拟机从零开始搭建ambari集群 1 前置条件 1.1 本地虚拟机环境 节点角色ambari-1ambari-server ambari-agentambari-2ambari-agentambari-3ambari-agent 1.2 安装包 1.3 修改主机名并配置hosts文件 hostnamectl set-hostname ambari-1 hostnamectl se…...
房产|1月全国70城房价出炉!疫情放开后你关心的城市房价有何变化
2023年1月份,70个大中城市中新房销售价格环比上涨城市个数增加;一线城市新房销售价格环比同比转涨、二三线城市环比降势趋缓,二三线城市同比下降。 | 新房/二手房12月-1月环比上涨城市数量变化 70个大中城市中,新房环比上涨城市…...
秒验 重新定义“一键登录”
现如今,一般APP在注册登录时,仍然要经历填写用户名、密码、绑定手机号等一系列传统流程,有的人认为可以通过第三方登录避免这些流程,但仍旧要经历手机验证码的环节,而且存在验证码被拦截的风险,短信费用也很…...
ZenBuster:一款功能强大的多线程跨平台URL枚举工具
关于ZenBuster ZenBuster是一款功能强大的多线程跨平台URL枚举工具,该工具基于Python开发,同时还具备暴力破解功能。 该工具适用于安全专业人员,可以在渗透测试或CTF比赛中为广大研究人员提供帮助,并收集和目标相关的各种信息。…...
2023年美赛ICM问题E:光污染 这题很好做啊!
2023年美赛ICM问题E:光污染 这题很好做啊! 我看到DS数模的分析,看似头头是道,实则GouPi不通,我出一个,用于大家…...
大模型初探:收藏这份指南,小白也能轻松入门!
大模型(Large Model)是泛指参数规模庞大(十亿至万亿级)、能处理多模态数据(文本、图像、音频等)的通用AI模型;大语言模型(Large Language Model, LLM)是大模型的子集&…...
保姆级STM32CubeMX最新版下载入门攻略|小白零踩坑,看完直接上手
文章目录摘要STM32CubeMX的功能与特点一、避坑前提:认准官方渠道,拒绝第三方“野链接”二、 step1:找到STM32CubeMX官方下载页(图文手把手)三、 step2:免费注册ST账号(30秒搞定,无需…...
48Tools:多平台直播录制与视频下载工具的技术架构深度解析
48Tools:多平台直播录制与视频下载工具的技术架构深度解析 【免费下载链接】48tools 48工具,提供公演、口袋48直播录源,公演、口袋48录播下载,封面下载,B站直播抓取,B站视频下载,A站直播抓取&am…...
5个专业级方案:解决xiaomusic小爱音箱本地音乐无声问题
5个专业级方案:解决xiaomusic小爱音箱本地音乐无声问题 【免费下载链接】xiaomusic 使用小爱同学播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic xiaomusic作为一款能够让小爱同学播放本地音乐的…...
ROS命名空间实战指南:节点、话题与参数的重命名技巧(附代码解析)
1. ROS命名空间基础概念 第一次接触ROS命名空间时,我完全被各种斜杠和前缀搞晕了。直到在真实项目中踩了几个坑才明白,命名空间本质上就是个"地址簿"系统。想象一下你住在小区A栋3单元502室,而另一个城市也有完全相同的地址。如果没…...
cv_resnet101_face-detection_cvpr22papermogface 模型鲁棒性测试:对抗样本攻击与防御初探
cv_resnet101_face-detection_cvpr22papermogface 模型鲁棒性测试:对抗样本攻击与防御初探 你可能觉得,一个能精准识别人脸的AI模型已经足够强大了。确实,像 cv_resnet101_face-detection_cvpr22papermogface 这样的模型,在常规照…...
MPP QI2.2认证25W无线充芯片方案如何选型
一、摘要:FNK5822是一款可过MPP QI2.2认证25W无线充芯片,菲诺克科技提供完整软硬件设计方案资料服务,方案特点:温度低、充电速度快、手机充电兼容性好。品牌名称菲诺克科技 Firocksemi产品名称25W无线充方案芯片产品型号FNK5822适…...
Qwen3.5-27B开源生态整合:LangChain适配与多模态RAG构建教程
Qwen3.5-27B开源生态整合:LangChain适配与多模态RAG构建教程 1. 引言:Qwen3.5-27B模型概述 Qwen3.5-27B是当前开源社区中颇具影响力的多模态大语言模型,它不仅具备强大的文本理解和生成能力,还能处理图像内容。本教程将带您从零…...
LaTeX科技论文写作:深度学习实验结果可视化技巧
LaTeX科技论文写作:深度学习实验结果可视化技巧 论文图表的质量直接影响审稿人对研究成果的第一印象,好的可视化能让复杂数据一目了然。 1. 为什么LaTeX是深度学习论文的首选 写深度学习论文最头疼的就是处理那些复杂的实验结果。模型性能对比、损失曲线…...
Vivado ILA调试核实战:如何高效抓取UART缓变信号(附配置截图)
Vivado ILA调试核实战:如何高效抓取UART缓变信号(附配置截图) 在FPGA开发中,UART通信调试往往让工程师们头疼不已——尤其是当需要抓取那些变化缓慢的信号时。传统的调试方法要么采样率不足导致关键数据丢失,要么占用过…...
