K8S 九 安全认证 TLS

目录

  • 第九章 安全认证
    • 访问控制概述
    • 认证管理
    • 授权管理 RBAC
      • RBAC
      • Role
          • rules中的参数
          • RoleBinding
    • 9.4 准入控制
  • 其他
    • K8S的TLS是什么(DeepSeek)
      • 1. 加密通信
      • 2. 身份认证(Authentication)
      • 3. 数据完整性
      • K8s 中 TLS 的具体应用
        • **1. API Server 的 TLS 配置**
        • **2. etcd 的 TLS 配置**
        • **3. kubelet 的 TLS 配置**
        • **4. Ingress 的 TLS 配置**
      • **4. 证书管理**
      • **为什么必须使用 TLS?**
      • **总结**

第九章 安全认证

实战内容参考
K8S 75 kubernetes-1.29 部署 ingress-nginx1.10

访问控制概述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

认证管理

HTTPS证书认证:基于CA根证书签名的双向数字证书认证方式。
这种认证方式是安全性最高的一种方式,但同时也是操作起来最麻烦的一种方式。

在这里插入图片描述

授权管理 RBAC

在这里插入图片描述

RBAC

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Role

在这里插入图片描述

rules中的参数

在这里插入图片描述

RoleBinding

在这里插入图片描述
cr
在这里插入图片描述

在这里插入图片描述

实战

在这里插入图片描述

在这里插入图片描述

创建Role和RoleBinding,为devUser用户授权

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

9.4 准入控制

了解原理
在这里插入图片描述

当前可配置的Admission Control准入控制如下:

在这里插入图片描述

其他

K8S的TLS是什么(DeepSeek)

K8S的TLS是什么,怎样使用(询问 DeepSeek AI的问题)

Kubernetes(k8s)使用 TLS(Transport Layer Security) 是为了确保集群内外的通信安全,防止数据泄露、篡改和中间人攻击。以下是 TLS 在 Kubernetes 中的核心作用及具体应用场景:

1. 加密通信

TLS 对 Kubernetes 组件之间的通信进行加密,保护敏感数据(如认证令牌、配置信息、Pod 日志等)不被窃取。

  • 核心场景
    • API Server 与客户端(如 kubectl):所有通过 HTTPS 的请求和响应均加密。
    • API Server 与 etcd:API Server 与 etcd 存储集群状态数据的通信需加密。
    • 节点间通信:kubelet、kube-proxy 与 API Server 的交互需加密。
    • Service 流量:通过 Ingress 暴露的 HTTPS 服务(如 Web 应用)使用 TLS 证书。

2. 身份认证(Authentication)

TLS 证书用于验证组件或用户的身份,确保只有授权的实体可以访问集群资源。

  • 核心场景
    • 组件间认证
      • API Server 验证 kubelet、scheduler、controller-manager 的客户端证书。
      • etcd 验证 API Server 的客户端证书。
    • 用户认证
      • kubectl 使用客户端证书或 Token 向 API Server 证明身份。
    • Service Account:Pod 内应用通过 TLS 证书与 API Server 安全通信。

3. 数据完整性

TLS 确保传输的数据未被篡改,防止中间人攻击(MITM)。

  • 核心场景
    • 配置下发:确保 kubelet 收到的 Pod 定义来自合法的 API Server。
    • Secret 传输:加密敏感信息(如密码、密钥)的传输过程。

K8s 中 TLS 的具体应用

1. API Server 的 TLS 配置

API Server 是集群的“网关”,所有请求必须通过 TLS 加密和认证。

  • 服务端证书:API Server 使用 TLS 证书对外提供 HTTPS 服务。
  • 客户端证书kubectl、kubelet 等组件需提供有效证书才能访问 API Server。
# API Server 启动参数示例(/etc/kubernetes/manifests/kube-apiserver.yaml)
spec:containers:- command:- kube-apiserver- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt     # 服务端证书- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key- --client-ca-file=/etc/kubernetes/pki/ca.crt          # 客户端 CA 根证书
2. etcd 的 TLS 配置

etcd 存储集群所有敏感数据,必须通过 TLS 保护。

  • 服务端证书:etcd 使用证书对外提供加密服务。
  • 客户端证书:API Server 需提供有效证书才能访问 etcd。
# etcd 启动参数示例(/etc/kubernetes/manifests/etcd.yaml)
spec:containers:- command:- etcd- --cert-file=/etc/kubernetes/pki/etcd/server.crt      # 服务端证书- --key-file=/etc/kubernetes/pki/etcd/server.key- --client-cert-auth=true                              # 要求客户端证书认证- --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt    # 客户端 CA 根证书
3. kubelet 的 TLS 配置

kubelet 是节点上的代理,需通过 TLS 与 API Server 通信。

  • 服务端证书:kubelet 提供 HTTPS 端点供 API Server 访问(如日志、exec 功能)。
  • 客户端证书:kubelet 使用证书向 API Server 认证自己。
# kubelet 配置示例(/var/lib/kubelet/config.yaml)
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
serverTLSBootstrap: true   # 自动生成服务端证书
clientCAFile: /etc/kubernetes/pki/ca.crt
4. Ingress 的 TLS 配置

通过 Ingress 暴露的 HTTPS 服务需配置 TLS 证书。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: my-ingress
spec:tls:- hosts:- api.example.comsecretName: tls-secret  # 引用存储证书的 Secretrules:- host: api.example.comhttp:paths:- path: /pathType: Prefixbackend:service:name: gateway-serviceport:number: 80

4. 证书管理

Kubernetes 依赖证书颁发机构(CA)体系管理证书:

  1. 根证书(CA):集群信任的根证书(如 /etc/kubernetes/pki/ca.crt)。
  2. 自动轮换:kubelet 支持自动轮换证书(通过 RotateKubeletServerCertificate 特性)。
  3. 工具支持
    • kubeadm:自动生成集群证书。
    • cert-manager:自动化管理 Ingress 证书(如 Let’s Encrypt)。

为什么必须使用 TLS?

  1. 默认安全要求:Kubernetes 设计时即要求所有生产环境通信必须加密。
  2. 合规性:满足 GDPR、HIPAA 等数据安全法规。
  3. 防御攻击
    • 防止集群内部流量被监听(如同一 VPC 内的其他服务)。
    • 防止 API Server 被未授权访问(如公网暴露的集群)。
  4. 零信任架构:默认不信任任何组件,所有通信需验证身份。

总结

Kubernetes 使用 TLS 是构建安全集群的基石,涵盖加密、认证和完整性三大核心安全需求。无论是集群内部组件通信,还是对外暴露服务,TLS 都是防止数据泄露和未授权访问的关键防线。

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

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

相关文章

积分兑换小程序Java

某个学校为了激励学生踊跃参加一些社会实践活动,会对参与者给予一些校园积分,学生们获得校园积分后可以使用校园积分在指定的老师那兑换一些学习用具,当前可兑换的物品和对应的积分数量如下:铅笔1分橡皮2分作业本3分文具盒5分为了…

函数指针示例

使用函数指针来调用 printf。下面是对代码的详细解释&#xff1a;&#x1f4c4; 源代码解析#include <stdio.h>int main() {int (*myshow)(const char *, ...); // 声明一个函数指针&#xff0c;指向可变参数函数printf("hello world!\n");myshow printf; /…

不坑盒子突然不见了怎么办?

如果你安装后之前一切正常&#xff0c;突然某天在Office的功能区看不到不坑盒子了&#xff0c;这种是插件被禁用了&#xff0c;重装安装插件、Office都是不能解决的&#xff0c;必须按下面的方法解决。WPS中1.随便打开一个文档&#xff0c;点击文件-选项-信任中心&#xff0c;最…

Java面试全栈通关:从微服务到AI的技术深度解析

Java面试全栈通关&#xff1a;从微服务到AI的技术深度解析 面试现场&#xff1a;大厂技术终面室 面试官&#xff1a;谢飞机同学&#xff0c;今天我们将从基础到架构&#xff0c;全面考察你的Java技术栈掌握程度。请真实展示你的技术水平。 谢飞机&#xff1a;&#xff08;挺胸抬…

《Java 程序设计》第 7 章 - 继承与多态

引言在 Java 面向对象编程中&#xff0c;继承与多态是两大核心特性&#xff0c;它们共同支撑了代码的复用性、扩展性和灵活性。本章将从继承的基本实现开始&#xff0c;逐步深入到方法覆盖、访问控制、抽象类等概念&#xff0c;最终揭示多态的本质与应用。通过大量可运行的代码…

ksql连接数据库免输入密码交互

ksql连接数据库免输入密码交互1. 使用 .pgpass 文件&#xff08;推荐&#xff09;2. 使用环境变量3. 使用连接字符串4. 修改 ksql 的别名&#xff08;简化命令&#xff09;5. 注意事项6. 密码含特殊字符转义在 Kingbase 中使用 ksql 连接数据库时&#xff0c;如果希望避免每次手…

UniApp H5 适配 PC 端新姿势:打造跨设备一致体验

在移动互联网蓬勃发展的今天&#xff0c;很多开发者会选择使用 UniApp 来开发多端应用&#xff0c;尤其是 H5 端&#xff0c;因其无需下载安装即可访问的特性&#xff0c;深受用户喜爱。但 UniApp H5 应用在 PC 端直接打开时&#xff0c;往往会因为屏幕尺寸的巨大差异&#xff…

【MySQL#4】函数 复合查询 内外连接

&#x1f4c3;个人主页&#xff1a;island1314 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 生活总是不会一帆风顺&#xff0c;前进的道路也不会永远一马平川&#xff0c;如何面…

C++常见面试题之一

一、语言基础与内存管理const与constexpr的区别&#xff1f;应用场景&#xff1f; const&#xff1a;运行时常量&#xff0c;修饰变量/函数不可修改。constexpr&#xff1a;编译期常量&#xff08;C11&#xff09;&#xff0c;用于优化计算&#xff08;如数组大小&#xff09;。…

Golang 语言中的指针介绍

介绍&#xff1a;指针式一种数据类型&#xff0c;用来存储值的内存地址&#xff0c;为了便于理解&#xff0c;我们也可以把指针未内存地址&#xff0c;指针类型只占用内存4个或 8 个字节&#xff0c;在Golang 语言中&#xff0c;类型名称加 * 表示改类型的指针类型。指针类型变…

Flink 状态管理设计详解:StateBackend、State、RocksDB和Namespace

为什么需要 StateBackend&#xff1f;—— 职责分离原则我们可以用一个银行的例子来类比&#xff1a;State (如 ValueState, ListState) 就像是你的银行卡。AbstractKeyedStateBackend 就像是银行的整个后台系统&#xff08;包括总服务器、数据库、风控系统、会计系统等&#x…

橱柜铰链的革命:炬森精密如何以创新科技重塑家居体验

在现代化家居设计中&#xff0c;橱柜不仅是存储空间的核心&#xff0c;更是生活品质的象征。而作为橱柜的“关节”&#xff0c;橱柜铰链的性能直接影响着日常使用的便捷性、安全性和耐久性。然而&#xff0c;许多消费者在橱柜使用中常遭遇噪音干扰、频繁松动或早期损坏等痛点&a…

医疗系统国产化实录:SQL Server国产替代,乙方保命指南

医疗行业的SQL Server替代&#xff0c;和普通业务系统完全不是一个量级——医嘱逻辑嵌套几十层存储过程、收费结算小数点错位能引发医患纠纷、电子病历查询慢一秒医生直接拍桌子。作为被按在手术台上的乙方PM&#xff0c;实测四款主流国产库后&#xff0c;掏心窝子说句实话&…

WAIC 2025 盛大启幕,深思考邀您解锁端侧 AI 新可能​!

2025 世界人工智能大会今日正式启幕&#xff0c;深思考人工智能&#xff08;iDeepWise&#xff09;携端侧多模态大模型技术成果登陆展会&#xff0c;与行业伙伴共探端侧 AI 发展新机遇。作为专注于类端侧多模态大模型领域的创新力量&#xff0c;深思考此次重点展示了 iDeepWise…

MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)

目录1.表结构的操作&#xff08;1&#xff09;增加表&#xff08;2&#xff09;查看库中所有的表&#xff08;3&#xff09;查看表每个列的约束&#xff08;4&#xff09;删除整张表&#xff08;5&#xff09;删除某个具体的列&#xff08;6&#xff09;增加某个具体的列&#…

1. Qt多线程开发

目录方法1.继承QThread使用案例总结方法2.将qobject对象moveToThread&#xff08;官方推荐&#xff09;使用案例总结方法3.QRunnable QThreadPool使用案例总结方法4.快速线程QtConcurrentQFutureWatcher使用案例总结代码下载方法1.继承QThread 需要实现QThread的抽象函数run …

ARM入门学习方法分享

首先认识什么是ARM?ARM公司简介ARM是Advanced RISC Machines的缩写&#xff0c;它是一家微处理器行业的知名企业&#xff0c;该企业设计了大量高性能、廉价、耗能低的RISC &#xff08;精简指令集&#xff09;处理器。 1985年第一个ARM原型在英国剑桥诞生。公司的特点是只设计…

基于springboot的在线数码商城/在线电子产品商品销售系统的设计与实现

用户&#xff1a;数码产品&#xff0c;限时秒杀&#xff0c;种草分享&#xff0c;新品资讯&#xff0c;留言板&#xff0c;订单管理&#xff0c;在线客服&#xff0c;购物车&#xff0c;个人中心管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;数码分类管理&#…

Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议

文章目录前言一、服务端启动流程1.1 启动入口类&#xff1a;QuorumPeerMain1.2 集群模式启动核心&#xff1a;runFromConfig1.3 QuorumPeer线程核心逻辑&#xff1a;run()1.4 关键子流程&#xff1a;数据恢复1.5 关键设计要点二、请求处理链&#xff08;责任链模式&#xff09;…

网络基础19--OSPF路由业务多区域

一、OSPF多区域必要性单区域问题&#xff1a;LSDB庞大 → 内存占用高&#xff0c;SPF计算开销大LSA洪泛范围广 → 拓扑变化影响全域无法路由汇总 → 路由表膨胀&#xff0c;查找效率低2. 多区域优势&#xff1a;1. 划分区域&#xff1a;独立LSDB&#xff0c;缩小数据库规模2. 限…