【kubernetes】--安全认证机制

文章目录

    • 安全认证
      • 1. **身份认证(Authentication)**
      • 2. **授权(Authorization)**
      • 3. **准入控制(Admission Control)**
      • 4. **机密信息管理**
      • 5. **其他安全实践**

安全认证

Kubernetes 的安全机制覆盖了从身份验证到资源操作的完整链条:

  1. 认证 → 2. 授权 → 3. 准入控制 → 4. 资源管理
    生产环境中建议:
  • 使用 RBAC + ServiceAccount 进行最小权限分配。
  • 启用 Pod 安全准入网络策略
  • 定期轮换证书和令牌。

通过组合这些机制,可以构建一个符合零信任原则的 Kubernetes 集群安全体系。

1. 身份认证(Authentication)

http token和账户密码等
https ca证书

  • X.509 客户端证书

    • 通过 TLS 双向认证,客户端使用证书(如 kubectl--client-certificate--client-key 参数)向 API Server 证明身份。
    • 证书由集群 CA 签发,需在 API Server 启动时配置 --client-ca-file
  • Bearer Token(静态令牌)

    • 静态令牌文件通过 --token-auth-file 指定,令牌以明文形式存储在文件中(不推荐生产环境使用)。
    • 通常用于服务账户(ServiceAccount)的自动生成令牌(JWT格式)。
  • ServiceAccount(服务账户)

    • 每个 Pod 默认挂载一个 ServiceAccount 的令牌(位于 /var/run/secrets/kubernetes.io/serviceaccount/token)。
    • API Server 通过 --service-account-key-file 验证令牌签名。
  • OpenID Connect (OIDC)

    • 集成第三方身份提供商(如 Google、Azure AD),用户通过 OAuth 2.0 流程获取 ID Token 后访问集群。
  • Webhook 令牌认证

    • 将令牌验证委托给外部服务(如自定义认证服务),通过 --authentication-token-webhook-config-file 配置。
  • 匿名请求

    • 默认允许匿名请求(身份为 system:anonymous),可通过 --anonymous-auth=false 禁用。

2. 授权(Authorization)

通过 RBAC(主流)、ABAC、Node Authorization 等机制控制已认证用户的权限:

  • RBAC(基于角色的访问控制)

    • 定义 Role(命名空间内权限)和 ClusterRole(集群范围权限),再通过 RoleBinding/ClusterRoleBinding 绑定到用户、组或 ServiceAccount。
    • 示例:允许某用户读取 Pod 信息:
      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:namespace: defaultname: pod-reader
      rules:
      - apiGroups: [""]resources: ["pods"]verbs: ["get", "list", "watch"]
      
  • ABAC(基于属性的访问控制)

    • 通过策略文件(--authorization-policy-file)定义规则,灵活性差,已逐渐被 RBAC 取代。
  • Node Authorization

    • 专门授权 kubelet 访问节点相关资源(如 Pod、Secret)。
  • Webhook 授权

    • 将授权决策委托给外部 HTTP 服务。

3. 准入控制(Admission Control)

在请求通过认证和授权后,API Server 会调用准入控制器(Admission Controllers)进行更精细的资源校验或修改:

  • 内置控制器

    • NamespaceLifecycle:防止在终止的命名空间中创建资源。
    • ResourceQuota:限制命名空间的资源使用量。
    • PodSecurity(替代 PSP):强制执行 Pod 安全标准(如禁止特权容器)。
    • MutatingAdmissionWebhook/ValidatingAdmissionWebhook:通过 Webhook 动态修改或验证资源。
  • 示例:使用 ValidatingAdmissionWebhook 拦截不符合标签要求的 Deployment。

4. 机密信息管理

  • Secrets
    • 存储敏感数据(如密码、令牌),以 Base64 编码形式存在 Etcd 中,建议启用加密(--encryption-provider-config)。
  • ConfigMap
    • 存储非敏感配置,与 Secrets 分离以降低风险。

5. 其他安全实践

  • API Server 安全配置
    • 启用 HTTPS(--tls-cert-file, --tls-private-key-file)。
    • 限制匿名访问和废弃 API 版本。
  • Etcd 加密
    • 静态数据加密(--encryption-provider-config)。
  • 网络策略(NetworkPolicy)
    • 控制 Pod 间网络流量(需 CNI 插件支持,如 Calico)。
  • Pod 安全上下文(SecurityContext)
    • 限制容器权限(如 runAsNonRoot: truereadOnlyRootFilesystem: true)。

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

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

相关文章

扣子工作流详解

《扣子开发AI Agent智能体应用(人工智能技术丛书)》(宋立桓,王东健,陈铭毅,程东升)【摘要 书评 试读】- 京东图书 《扣子开发AI Agent智能体应用》案例重现 开发agent智能体的书籍-CSDN博客 工作流是指一系列相互关联…

【一文解决】块级元素,行内元素,行内块元素

块级元素,行内元素,行内块元素!盒模型1.标准盒模型(box-sizing: content-box)2.IE 盒模型(box-sizing: border-box)!margin & padding1.margin、padding是什么2. 应用一、块级元…

在 Spring Boot 中使用 MyBatis 的 XML 文件编写 SQL 语句详解

前言 在现代 Java Web 开发中,Spring Boot 和 MyBatis 是两个非常流行的技术框架。它们的结合使得数据库操作变得更加简洁和高效。本文将详细介绍如何在 Spring Boot 项目中使用 MyBatis 的 XML 文件来编写 SQL 语句,包括配置、代码结构、SQL 编写技巧以…

字段级权限控制场景中,RBAC与ABAC的性能差异

RBAC(基于角色访问控制)与ABAC(基于属性访问控制)的性能差异主要体现在​​计算复杂度、策略灵活性、扩展性​​和​​资源消耗​​等方面。以下是具体对比分析: ​​一、性能对比维度​​ ​​维度​​​​RBAC​​​​ABAC​​​​计算复杂度​​低(预计算角色权限映射…

Reddit Karma是什么?Post Karma和Comment Karma的提升指南

在Reddit这一用户活跃度高的社区里,想要获得更好的曝光,我们就需要提升我们的Karma值,什么是Reddit Karma?怎么样才能提升以获得更大的影响力?本文将为你提高一套切实可行的提升方案。一、什么是Reddit Karma&#xff…

基于Canal实现MySQL数据库数据同步

一、基础概念与原理 1. Canal是什么? 阿里巴巴开源的MySQL binlog增量订阅与消费组件,通过伪装为MySQL Slave监听Master的binlog变更,实现实时数据同步。 Canal 官方网站:https://github.com/alibaba/canal Canal Demo&#x…

算法第23天|贪心算法:基础理论、分发饼干、摆动序列、最大子序和

今日总结: 摆动序列的三种特殊情况需要着重思考,感觉是没有思考清楚 基础理论 1、贪心的本质: 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 例如:一堆钞票,只能拿走10张,如何拿走最…

Q-chunking——带有动作分块的强化学习:基于人类演示,进行一定的连贯探索(且可做到无偏的n步价值回溯)

前言 我在之前的文章中提到过多次,长沙具身团队是我司建设的第二支具身团队,通过5月份的全力招聘,为了冲刺6月底和7月初来长沙办公室考察的第一批客户,过去一个多月来,长沙分部(一开始就5人,另外5人 实习…

NW956NW961美光固态闪存NW964NW968

美光固态闪存深度解析:NW956、NW961、NW964与NW968的全方位评测一、产品概述与市场定位在当今数据爆炸的时代,固态硬盘(SSD)作为存储领域的佼佼者,其性能与稳定性成为了用户关注的焦点。美光(Micron&#x…

C++修炼:IO流

Hello大家好&#xff01;很高兴我们又见面啦&#xff01;给生活添点passion&#xff0c;开始今天的编程之路&#xff01; 我的博客&#xff1a;<但凡. 我的专栏&#xff1a;《编程之路》、《数据结构与算法之美》、《C修炼之路》、《Linux修炼&#xff1a;终端之内 洞悉真理…

语音识别的速度革命:从 Whisper 到 Whisper-CTranslate2,我经历了什么?

Whisper-CTranslate2&#xff1a;语音识别的速度革命 大家好&#xff0c;一个沉迷于 AI 语音技术的 “音频猎人”。最近在处理大量播客转录项目时&#xff0c;我被传统语音识别工具折磨得苦不堪言 ——RTX 3090 跑一个小时的音频要整整 20 分钟&#xff0c;服务器内存分分钟爆满…

JVM 内存模型详解:GC 是如何拯救内存世界的?

JVM 内存模型详解&#xff1a;GC 是如何拯救内存世界的&#xff1f; 引言 Java 虚拟机&#xff08;JVM&#xff09;是 Java 程序运行的基础&#xff0c;其核心特性之一就是自动内存管理。与 C/C 不同&#xff0c;Java 开发者无需手动分配和释放内存&#xff0c;而是由 JVM 自动…

分布式全局唯一ID生成:雪花算法 vs Redis Increment,怎么选?

在黑马点评项目实战中&#xff0c;关于全局唯一ID生成的实现方案选择中&#xff0c;我看到有人提到了雪花算法&#xff0c;本文就来简单了解一下雪花算法与Redis的incr方案的不同。在分布式系统开发中&#xff0c;“全局唯一ID”是绕不开的核心问题。无论是分库分表的数据库设计…

(新手友好)MySQL学习笔记(完):事务和锁

事务和锁事务transaction&#xff0c;一组原子性的SQL查询&#xff0c;或者说是一个独立的工作单元。如果能够成功执行这组查询的全部语句&#xff0c;就会执行这组查询&#xff1b;如果其中任何一条语句无法成功执行&#xff0c;那么这组查询的所有语句都不会执行。也就是说&a…

【CMake】使用 CMake 将单模块 C 项目构建为库并链接主程序

目录1. 项目结构设计&#x1f4e6; 结构说明2. 项目文件内容2.1 顶层 CMakeLists.txt2.2 模块 src/color/CMakeLists.txt ✅【推荐写法】❓是否需要写 project()&#xff1f;2.3 模块头文件 include/color.h2.4 模块实现文件 src/color/color.c2.5 主程序 src/main.c3. 构建与运…

从零开始的云计算生活——番外4,使用 Keepalived 实现 MySQL 高可用

目录 前言 一、架构原理​ ​Keepalived 作用​ ​MySQL 主从复制​ 二、环境准备​ 服务器要求​&#xff1a; 安装基础软件​ 三、配置 MySQL 主从复制 四、配置 Keepalived 主节点配置​&#xff08;/etc/keepalived/keepalived.conf&#xff09; 从节点配置 五、…

list类的常用接口实现及迭代器

目录 1. list类的介绍 2.list类的常用接口 2.1 list类的常用构造 2.2 list类对象的容量操作 2.3 list迭代器 2.4 list类的常用操作 3.list的模拟实现 1. list类的介绍 list代表的是双向链表&#xff0c;常见的有创建&#xff0c;增&#xff0c;删&#xff0c;改几个接口…

vscode Cline接入火山引擎的Deepseek R1

创建火山引擎Deepseek R1的API 在火山引擎管理控制台中创建Deepseek R1推理接入点&#xff08;大模型&#xff09;&#xff0c;创建成功后会看到下图效果。在操作中选择API调用&#xff0c;在页面中选择OpenAI SDK&#xff0c;按照步骤找到baseUrl地址和API_KEY&#xff0c;后续…

新手向:自动化图片格式转换工具

大家好&#xff01;今天我要分享一个非常实用的Python小工具——图片格式批量转换器。如果你经常需要处理大量不同格式的图片文件&#xff0c;或者需要统一图片格式以便于管理&#xff0c;那么这个工具将会成为你的得力助手&#xff01;一、为什么需要图片格式转换&#xff1f;…

CUDA中的内存管理、锁页内存、UVA统一虚拟地址、零拷贝、统一内存

文章目录0 前言1 swap内存跟锁页内存2 UVA(Unified Virtual Addressing)统一虚拟地址3 先看最普通的cuda内存分配、释放、传输4 申请锁页内存4.1 cudaHostAllocDefault4.2 cudaHostAllocPortable4.3 cudaHostAllocWriteCombined4.3 cudaHostAllocMapped4.4 几种锁页内存总结4.5…