美文网首页实践人生
k8s 认证和权限控制

k8s 认证和权限控制

作者: 阿兵云原生 | 来源:发表于2023-08-16 22:42 被阅读0次

k8s 的认证机制是啥?

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

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

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

[图片上传失败...(image-23674f-1692283226868)]

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-a0b061-1692283226869)]

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

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

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

[图片上传失败...(image-3eb6a5-1692283226869)]

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

[图片上传失败...(image-f20fea-1692283226869)]

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

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

再来看看这个:

[图片上传失败...(image-3b6a39-1692283226869)]

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

自行创建一个 SA

kubectl create sa xmt

创建一个 SA 名为 xmt

[图片上传失败...(image-49c094-1692283226869)]

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

我们可以查看 secrets 的内容

[图片上传失败...(image-5e3230-1692283226869)]

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

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

[图片上传失败...(image-14d1a-1692283226869)]

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

{
    "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

[图片上传失败...(image-d9de85-1692283226869)]

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

欢迎点赞,关注,收藏

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

[图片上传失败...(image-666d41-1692283226869)]

好了,本次就到这里

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

我是阿兵云原生,欢迎点赞关注收藏,下次见~

相关文章

  • Kubernetes 权限控制介绍

    K8s的用户和权限管理包括两个方面:认证和授权。认证解决用户是谁的问题,授权解决用户能做什么的问题。通过合理的权限...

  • kubernetes API 访问控制在阿里云容器服务(ACK)

    提起K8s API的访问控制,很多同学应该都会想到RBAC,这是K8s用来做权限控制的方法,但是K8s对API的访...

  • shiro

    一:基础概念 什么是权限管理 权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经...

  • K8s 权限和认证

    ServiceAccount ServiceAccount是专供pod使用的,权限管理中的一种身份标记。Servi...

  • Java利用Mybatis进行数据权限控制

    权限控制主要分为两块,认证(Authentication)与授权(Authorization)。认证之后确认了身份...

  • 基于shiro的权限设计

    shiro介绍 Apache shiro是一个权限控制框架,它将安全认证抽取出来,实现用户身份认证,权限授权,加密...

  • 企业实用技术专题:学习MAC认证流程

    1、什么是MAC认证? ①MAC认证是一种基于接口和MAC地址对用户的网络访问权限进行控制的认证方法,无需安装客...

  • 90-11访问控制

    对用户访问网络资源的权限进行严格的认证和控制。例如,进行用户身份认证,对口令加密、更新和鉴别,设置用户访问目录和文...

  • DRF组件总结

    认证&权限 认证和权限是一起配合使用的。可以再配置文件中settings配置全局默认的认证&权限 也可以在每个视图...

  • DRF的认证,权限,节流,版本,解析器

    1;DRF的认证,权限:认证和权限是一起配合使用的。可以再配置文件中settings配置全局默认的认证&权限 也可...

网友评论

    本文标题:k8s 认证和权限控制

    本文链接:https://www.haomeiwen.com/subject/hvjlmdtx.html