k8s 认证和权限控制

k8s 的认证机制是啥?

说到 k8s 的认证机制,其实之前咋那么也有提到过 ServiceAccouont以及相应的 token ,证书 crt,和基于 HTTP 的认证等等

k8s 会使用如上几种方式来获取客户端身份信息,不限于上面几种

前面有说到 ApiServer 收到请求后,会去校验客户端是否有权限访问,ApiServer 会去自身的认证插件中进行处理认证,进而到授权插件中进行授权,例如这样的:

ServiceAccount 相当重要,之前我们说到过访问 pod 元数据的时候,就提到过 ServiceAccount**,以及相应的挂载文件:**

  • /var/run/secrets/kubernetes.io/serviceaccount/token
  • /var/run/secrets/kubernetes.io/serviceaccount/namespace
  • /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

image-20220224233656596

pod 就是通过发送上述的 token 文件来进行身份认证的,这是代表了运行的 pod 中的应用程序的身份证明,每一个 pod 都是会有一个 ServiceAccoount 与之关联的

我们可以理解 ServiceAccoount 不是什么也别的东西,也是 k8s 的其中一种资源而已,咱们可以写 yaml 创建该 资源,当然也是可以通过命令来创建 sa 资源的, sa 是 ServiceAccoount 的缩写

例如,我们可以通过命令 kubectl get sa 来查看 ServiceAccoount

一个 pod 只会对应一个 SA,但是 一个 SA 是可以和多个 pod 关联的,并且,我们需要清楚,这些都是得再同一个命名空间下的,例如画一个简图来是表示一下

我们可以看到,同一个命名空间中

  • 一个 SA 可以对应多个 pod
  • 一个 ns (namespace) 中可以有多个 ServiceAccount
  • 一个 pod 只能关联 一个 ServiceAccount

再来看看这个:

绝对不会存在 ns 4 的 pod ,会关联到 ns 3 的 ServiceAccount, 不在同一个命名空间,根本无法操作

自行创建一个 SA

kubectl create sa xmt

创建一个 SA 名为 xmt

查看上述 xmt SA 的信息,k8s 默认给我们 xmt 账户生成了 tokensecrets

我们可以查看 secrets 的内容

我们可以通过在线的 jwt 解码工具来查看这个 secrets,他是一个 JWT 编码的信息

https://tooltt.com/jwt-decode/

我们解码后,可以看到具体的信息

{"iss": "kubernetes/serviceaccount","kubernetes.io/serviceaccount/namespace": "default","kubernetes.io/serviceaccount/secret.name": "xmt-token-kbv8b","kubernetes.io/serviceaccount/service-account.name": "xmt","kubernetes.io/serviceaccount/service-account.uid": "587fbca5-f20c-4421-a3fd-db21b76c7ac6","sub": "system:serviceaccount:default:xmt"
}

通过上述 secrets 可以得到 namespace,secret.name,service-account.name,service-account.uid 等信息 ,这个 uid 是唯一的

创建 pod 指定 SA

我们可以查看任意一个 pod 的详情,也可以看到配置里面有 ServiceName

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~
更多的可以查看 零声每晚八点直播:https://ke.qq.com/course/417774

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

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

相关文章

Segment Anything论文阅读笔记

Segment Anything论文阅读笔记 1. Segment Anything论文基本信息2. Segment Anything论文阅读2.1 第一遍阅读 Segment Anything2.2. 第二遍阅读 Segment Anything2.2.1. Segment Anything中相关的图表 1. Segment Anything论文基本信息 论文地址https://arxiv.org/abs/2304.02…

构建高可用的去中心化微服务集群架构指南

随着云计算、大数据和物联网的快速发展,企业对于可扩展的、高性能的微服务架构的需求也日益增长。传统的集中式架构已经不能满足这些需求,因此出现了去中心化的微服务集群架构。本文将介绍如何构建高可用的去中心化微服务集群架构,以满足企业…

虚幻官方项目《CropOut》技术解析 之 程序化岛屿生成器(IslandGenerator)

开个新坑详细分析一下虚幻官方发布的《CropOut》,文章会同步发布到我在知乎|CSDN的专栏里 文章目录 概要Create Island几何体生成部分随机种子Step 1Step 2Step 3Step 4Step 5Step 6 岛屿材质部分动态为草地设置颜色 程序设计的小技巧其它Platform Switch函数 概要 …

pdf格式文件下载不预览,云存储的跨域解决

需求背景 后端接口中返回的是pdf文件路径比如&#xff1a; pdf文件路径 &#xff08;https://wangzhendongsky.oss-cn-beijing.aliyuncs.com/wzd-test.pdf&#xff09; 前端适配是这样的 <ahref"https://wangzhendongsky.oss-cn-beijing.aliyuncs.com/wzd-test.pdf&…

记录首次面试2023-08-18

人生第一次面试&#xff0c;大概一个小时左右。没有问我C的&#xff0c;上来一个数据库事务&#xff0c;虽然没有复习&#xff0c;但是还是能够记住一些&#xff0c;主要问的一些事务的隔离级别&#xff0c;以及都有什么作用&#xff0c;我是举例回答的&#xff0c;客户端A和客…

PHP加密与安全的最佳实践

PHP加密与安全的最佳实践 概述 在当今信息时代&#xff0c;数据安全是非常重要的。对于开发人员而言&#xff0c;掌握加密和安全的最佳实践是必不可少的。PHP作为一种常用的后端开发语言&#xff0c;提供了许多功能强大且易于使用的加密和安全性相关函数和类。本文将介绍一些P…

网络编程面试笔试题

一、OSI 7层模型&#xff0c;TCP/IP 4层模型 5层模型。 以及每一层的功能&#xff08;重点&#xff1a;第三层 第四层&#xff09; 答&#xff1a; 7层模型&#xff08;①物理层&#xff1a;二进制比特流传输&#xff0c;②数据链路层&#xff1a;相邻结点的可靠传输&#xf…

Django的模型

定义模型 from django.db import models class User(models.Model):# 类属性是表示表的字段username models.CharField(max_length50,uniqueTrue)password models.CharField(max_length200)create_time models.DateTimeField(auto_now_addTrue) # auto_now_add新增数据时间…

如何提升城市空气质量?一招教会你

空气质量监控&#xff0c;作为保障人类健康和维护环境可持续的关键手段&#xff0c;在现代社会发挥着重要作用。通过实时监测、数据采集和分析&#xff0c;我们能够深入了解空气中各种污染物的浓度以及气象参数的变化&#xff0c;从而评估空气质量的状况。 空气质量监控通过科学…

大数据及软件教学与实验专业实训室建设方案

一 、系统概述 大数据及软件教学与实验大数据及软件教学与实验在现代教育中扮演重要角色&#xff0c;这方面的教学内容涵盖了大数据处理、数据分析、数据可视化和大数据应用等多个方面。以下是大数据及软件教学与实验的一般内容&#xff1a;1. 数据基础知识&#xff1a;教授学生…

无涯教程-PHP - 静态变量函数

静态变量 静态变量在函数退出时值不会丢失,您只需将关键字STATIC放在变量名称的前面,即可将变量声明为静态变量。 <?phpfunction keep_track() {STATIC $count0;$count;print $count;print "<br />";}keep_track();keep_track();keep_track(); ?> 这…