当前位置: 首页 > news >正文

【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.dtcms.com/a/282075.html

相关文章:

  • Linux4:线程
  • 前端技术之---应用国际化(vue-i18n)
  • UE5多人MOBA+GAS 24、创建属性UI(一)
  • ubuntu24 c++ 自定义目录编译opencv4.12
  • Ubuntu GRUB菜单密码重置教程
  • 电脑安装 Win10 提示无法在当前分区上安装Windows的解决办法
  • WPF+CEF 执行JS报错
  • 从零开始的云计算生活——番外3,LVS+KeepAlived+Nginx高可用实现方案
  • [1-01-01].第43节:常用类 - 比较器类 Comparator接口
  • 【DataWhale】快乐学习大模型 | 202507,Task02笔记
  • Grok 系列大模型:xAI 的智能宇宙探秘
  • web前端用MVP模式搭建项目
  • DNS防护实战:用ipset自动拦截异常解析与群联AI云防护集成
  • 用PyTorch手写透视变换
  • 【unitrix】 6.4 类型化数特征(t_number.rs)
  • Rust 基础大纲
  • AI产品经理面试宝典第27天:AI+农业精准养殖与智能决策相关面试题解答指导
  • 疗愈之手的智慧觉醒:Deepoc具身智能如何重塑按摩机器人的触觉神经
  • mongoDB集群
  • Jmeter+ant+jenkins接口自动化测试框架
  • 汽车功能安全-相关项集成和测试(系统集成测试系统合格性测试)-12
  • LabVIEW液压机智能监控
  • 【游戏引擎之路】登神长阶(十九):3D物理引擎——岁不寒,无以知松柏;事不难,无以知君子
  • WSL2更新后Ubuntu 24.04打不开(终端卡住,没有输出)
  • 模型上下文协议(MCP)的工作流程、安全威胁与未来发展方向
  • 海康线扫相机通过采集卡的取图设置
  • 作业06-文本工单调优
  • UE5 相机后处理材质与动态参数修改
  • 图机器学习(8)——经典监督图嵌入算法
  • (笔记+作业)第五期书生大模型实战营---L1G3000 LMDeploy 高效部署量化实践