k8s 安全机制

k8s的安全机制:

核心:分布式集群管理工具,就是容器编排,安全机制的核心:API server 作为整个集群内部通信的中介,也是外控控制的入口。实验的安全机制都是围绕api server来进行设计:

请求api资源:

1,认证

2,鉴权

3,准入机制

三个条件都通过,才开源在k8s集群当中创建。

认证:Anthentcation

HTTP TOKEN:通过token失败合法用户。token是一个很差,很复杂的一个字符串,字符串是用来表达客户的一种方式。

每一个token对应一个用户名,用户名存储在apiserver能够访问的文件中。

客户端发起请求时,http headr包含token。

客户端发起请求----(请求包含)token----apiserver(用户名存储文件)-----解码------用户名-----访问集群。

http base:用户+密码的验证方式。用户名和密码都是通过base64进行加密,加密完成的字符串,http requset的haeder Atuthorization发送给服务端。服务端收到加密字符串,节目,获取用户名和密码,验证通过,登录成功。

https 证书:最严格的方式,也是最严谨的方式。基于CA根证书的客户端进行验证。

认证的访问类型:

k8s组件对api server组件的访问 kubelet kube-proxy

pod对API server的访问。pod coredns dashborad都是pod。也需要访问api

客户端 kubectl

kubelet kube-proxy:

controller manager sheduler 与 api server在一台服务器,可以直接使用api server的非安全端口访问。 (8080端口)

kubectl kubelet kube-proxy都是通过apiserver的https证书,进行双向验证,都是用6443端口进行验证

签发证书:

1,手动签发,二进制部署就是手动签发证书,ca签发---把证书匹配到每个对应组件。如何访问6443即可。

2,自动签发 kubeadm,kubelet第一次访问api server 使用token,token 通过之后,controller manager 会为kubelet生成一个证书,以后都是通过证书访问。kubeadm修改 了证书的有效期。默认1年。

3,kubeconfig 文件包含了集群的参数,CA证书,API server地址,客户端的参数(客户端的证书和私钥),集群的名称和用户名。

k8s中的组件通过启动时自动访问不同的kube config,可以分为不同的集群-----api server----namespace-----资源对象----pod-----容器

kubeconfig即是集群的描述文件,也是一个集群的保存文件,包含了集群的分为方式和认证信息。

~/.kube/config 保存的是kubectl的访问认证信息。

4,serviceAccount:

serviceAccount:就是为了方便pod中的容器访问API server。pod的动作(增删改查)动态的,每个pod手动生成一个证书就不现实了,于是k8s使用了service Account来进行循环认证,serviceAccount包含了统一的认证信息,直接进行api server访问。

5,secret,保存资源对象,

serviceAccount内部,保存的是 token service-account-token

secret保存的是自定义的报名信息。

6,serviceAccount:

1,token

2,ca.crt

3,namespace

二,鉴权:

之前的认证过程,只是确认了双方都是可信的,可以相互通信,鉴权是为了确定请求方的访问权限。

能做哪些指定的操作。

1,AlwaysDeny:拒绝所有,一般是测试

2,AlwaysAllow:允许所有,一般也是用于测试

3,ABAC attribute-based access control 基于属性的访问控制

4,webhook:外部访问集群内部的鉴权方式

5,RBAC role-base access control 基于角色的访问控制,也是k8s默认的规则机制。

角色

role

绑定角色 rolebinding :将角色绑定到指定的命名空间

集群

clusterrole :可以授权所有密码空间的资源限制

绑定集群 clusterrolebinding:将集群的角色绑定到命名空间。

准入控制:

准入控制是API server的一个准入控制器的插入类别,不同的插件可以实现不同的准入控制机制。

一般情况下建议使用官方默认的准入控制器

limitranger 命名空间的配额管理

serviceAccount

resourceQuota:命名空间的配额限制。

3,实验

------------------- 实践:创建一个用户只能管理指定的命名空间 -------------------

//创建一个用户

useradd cheng

passwd cheng

//使用这个用户进行资源操作,会发现连接 API Server 时被拒绝访问请求

su - cheng

kubectl get pods

The connection to the server localhost:8080 was refused - did you specify the right host or port?

//创建用于用户连接到 API Server 所需的证书和 kubeconfig 文件

//先上传证书生成工具 cfssl、cfssljson、cfssl-certinfo 到 /usr/local/bin 目录中

chmod +x /usr/local/bin/cfssl*

mkdir /opt/cheng

cd /opt/cheng

vim user-cert.sh

#API Server 会把客户端证书的 CN 字段作为 User,把 names.O 字段作为 Group

chmod +x user-cert.sh

./user-cert.sh

#/etc/kubernetes/pki/ 目录中会生成 cheng-key.pem、cheng.pem、cheng.csr

cd /etc/kubernetes/pki/

cfssl gencert -ca=ca.crt -ca-key=ca.key -profile=kubernetes /opt/cheng/cheng-csr.json | cfssljson -bare cheng

###############################

cd /opt/cheng

vim rbac-kubeconfig.sh

kubectl create namespace cheng-cloud

chmod +x rbac-kubeconfig.sh

./rbac-kubeconfig.sh 192.168.176.61

使用上下文参数生成 cheng.kubeconfig 文件

kubectl config use-context kubernetes --kubeconfig=cheng.kubeconfig

//查看证书

cat cheng.kubeconfig

mkdir /home/cheng/.kube

cp cheng.kubeconfig /home/cheng/.kube/config

chown -R cheng:cheng /home/cheng/.kube/

//RBAC授权

vim rbac.yaml

kubectl apply -f rbac.yaml

kubectl get role,rolebinding -n cheng-cloud

//切换用户,测试操作权限

su - cheng

vim pod-test.yaml

cheng这个用户,只有对pod 的"get", "watch", "list", "create" 这些权限。

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

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

相关文章

利用nginx宝塔免费防火墙实现禁止国外IP访问网站

本章教程,主要介绍,如何利用nginx宝塔面板中的插件免费防火墙,实现一键禁止国外IP访问网站。 目录 一、安装宝塔插件 二、 开启防火墙 一、安装宝塔插件 在宝塔面板中的软件商店,搜索防火墙关键词,找到Nginx免费防火…

在线教育系统开发:构建现代化学习平台

随着科技的迅速发展,在线教育系统在教育领域扮演着越来越重要的角色。本文将深入探讨在线教育系统的开发过程,涉及关键技术和代码实现。 技术选型 在开始开发之前,我们首先需要选择适合在线教育系统的技术栈。以下是一些常见的技术选项&am…

代码随想录算法训练营29期|day31 任务以及具体安排

理论基础 关于贪心算法,你该了解这些! 题目分类大纲如下: #算法公开课 《代码随想录》算法视频公开课 (opens new window):贪心算法理论基础! (opens new window),相信结合视频再看本篇题解,更有助于大家…

大创项目推荐 题目:基于LSTM的预测算法 - 股票预测 天气预测 房价预测

文章目录 0 简介1 基于 Keras 用 LSTM 网络做时间序列预测2 长短记忆网络3 LSTM 网络结构和原理3.1 LSTM核心思想3.2 遗忘门3.3 输入门3.4 输出门 4 基于LSTM的天气预测4.1 数据集4.2 预测示例 5 基于LSTM的股票价格预测5.1 数据集5.2 实现代码 6 lstm 预测航空旅客数目数据集预…

IO多路复用-epoll

IO多路复用-epoll 1. 概述 epoll 全称 eventpoll,是 linux 内核实现IO多路转接/复用(IO multiplexing)的一个实现。 epoll是select和poll的升级版,相较于这两个前辈,epoll改进了工作方式,因此它更加高效…

WorkPlus AI智能客服解决方案,提升企业服务质量

在当今竞争激烈的商业环境中,提供卓越的客户服务成为企业赢得市场竞争的关键。而AI智能客服技术的不断发展,则成为了提高服务效率和满意度的利器。作为一款领先的AI助理解决方案,WorkPlus AI助理以其出色的性能和智能化的功能,助力…

c++入门学习(十八)赋值运算符

简单赋值运算符(): 最基本的赋值运算符是“”。它表示将右侧的值赋给左侧的变量。例如,x 5意味着将值5赋给变量x。 增量赋值运算符: 这是一组在赋值的同时对变量进行递增操作的运算符。常见的有、-、*、/等。例如&…

THM学习笔记——网络工具

ping 当我们想要测试是否可以连接到远程资源时&#xff0c;会使用 ping 命令。 ping 的基本语法&#xff1a; ping <target>。 测试是否可以与百度建立网络连接&#xff1a; traceroute 互联网由许多个不同的服务器和端点组成&#xff0c;它们都相互联网。这意味着&a…

Soul CEO张璐团队布局AIGC领域,打造数智化社交新体验

作为互联网社交领域的领军企业,Soul App近日再次受到广泛关注,因其在生成式人工智能(AIGC)领域的前沿布局和创新。随着数据积累、算力提升和算法不断迭代,AIGC技术正逐渐成为推动产业创新的重要工具之一。2023年被誉为AIGC元年,而Soul App在CEO张璐的带领下,在这个领域的不懈努…

计算CNN卷积层和全连接层的参数量

计算CNN卷积层和全连接层的参数量 先前阅读 CNN ExplainerA Comprehensive Guide to Convolutional Neural Networks — the ELI5 way 本文主旨意在搞明白2个问题&#xff1a; 第一个问题 一个卷积操作&#xff0c;他的参数&#xff0c;也就是我们要训练的参数&#xff0c;也…

Navigation 2 学习01 介绍及安装及运行示例

Navigation 2 是什么 Nav2 是 ROS 导航 的综合控制服务&#xff0c;类似人类的小脑控制人类的行走及身体平衡&#xff0c;Nav2 针对移动和地面机器人提供支持的自动驾驶车辆的相同类型的技术&#xff0c;经过优化和改造。该项目旨在找到一种安全的方法&#xff0c;使移动机器人…

nginx离线部署-aarch64架构

nginx离线部署-aarch64架构 服务器环境: 架构&#xff1a;aarch64&#xff0c; 系统&#xff1a;Red Hat &#xff08;CentOS 7&#xff09; nginx 1.24 需要准备这些&#xff1a; 可以先尝试安装 Nginx 安装NGINX 内网是没有网络的需要使用 RPM 包安装 gcc&#xff0c; g…

绘制太极图 - 使用 PyQt

大家好&#xff01;今天我们将一起来探讨一下如何使用PyQt&#xff0c;这是一个强大的Python库&#xff0c;来绘制一个传统的太极图。这个图案代表着古老的阴阳哲学&#xff0c;而我们的代码将以大白话的方式向你揭示它的奥秘。 PyQt&#xff1a;是什么鬼&#xff1f; 首先&a…

架构师之路(十六)计算机网络(传输层)

前置知识&#xff08;了解&#xff09;&#xff1a;计算机基础。 作为架构师&#xff0c;我们所设计的系统很少为单机系统&#xff0c;因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 既然网络层已经…

.net访问oracle数据库性能问题

问题&#xff1a; 生产环境相同的inser语句在别的非.NET程序相应明显快于.NET程序&#xff0c;执行时间相差比较大&#xff0c;影响正常业务运行&#xff0c;测试环境反而正常。 问题详细诊断过程 问题初步判断诊断过程&#xff1a; 查询插入慢的sql_id 检查对应的执行计划…

直播间流程解析基础

通过用户心理需求引导用户行为 贯穿内容和产品牵引想要和需要 直播间内流程解析 分为播前准备、开播暖场、产品介绍、穿插活动、结尾预告 &#xff08;1&#xff09;直播间内流程解析----播前准备 &#xff08;2&#xff09;直播间内流程解析----开播暖场 &#xff08;3&…

互联网加竞赛 基于机器视觉的银行卡识别系统 - opencv python

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于深度学习的银行卡识别算法设计 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng…

电涌保护器(SPD)、后备保护器(SCB)、断路器(CB)的区别与应用

随着现代电力系统的不断发展&#xff0c;电力设备的保护显得愈发重要。其中&#xff0c;电涌保护器&#xff08;SPD&#xff09;、后备保护器&#xff08;SCB&#xff09;和断路器&#xff08;CB&#xff09;是三种常见的保护设备&#xff0c;但它们各自具有不同的功能和特点。…

【渗透测试】借助PDF进行XSS漏洞攻击

简介 在平时工作渗透测试一个系统时&#xff0c;常常会遇到文件上传功能点&#xff0c;其中大部分会有白名单或者黑名单机制&#xff0c;很难一句话木马上传成功&#xff0c;而PDF则是被忽略的一个点&#xff0c;可以让测试报告更丰富一些。 含有XSS的PDF制作步骤 1. 编辑器…

论文阅读《thanking frequency fordeepfake detection》

项目链接&#xff1a;https://github.com/yyk-wew/F3Net 这篇论文从频域的角度出发&#xff0c;提出了频域感知模型用于deepfake检测的模型 整体架构图&#xff1a; 1.FAD&#xff1a; 频域感知分解&#xff0c;其实就是利用DCT变换&#xff0c;将空间域转换为频域&#xff…