树叶云kubernetes教程:Kubernetes Pod安全性准入

Pod 安全性准入

FEATURE STATE: Kubernetes v1.23 [beta]

Kubernetes Pod 安全性标准(Security Standards) 为 Pod 定义不同的隔离级别。这些标准能够让你以一种清晰、一致的方式定义如何限制 Pod 行为。

作为一项 Beta 功能特性,Kubernetes 提供一种内置的 Pod 安全性 准入控制器, 作为 PodSecurityPolicies 特性的后继演化版本。Pod 安全性限制是在 Pod 被创建时在 名字空间层面实施的。

Note:

PodSecurityPolicy API 已经被废弃,会在 Kubernetes v1.25 发行版中 移除。

启用 PodSecurity 准入插件 

在 v1.23 中,​PodSecurity ​特性门控 是一项 Beta 功能特性,默认被启用。

在 v1.22 中,​PodSecurity ​特性门控 是一项 Alpha 功能特性,必须在 ​kube-apiserver​ 上启用才能使用内置的准入插件。

--feature-gates="...,PodSecurity=true"

替代方案:安装 PodSecurity 准入 Webhook 

对于无法应用内置 ​PodSecurity ​准入插件的环境,无论是因为集群版本低于 v1.22, 或者 ​PodSecurity ​特性无法被启用,都可以使用 Beta 版本的 验证性准入 Webhook。 来使用 ​PodSecurity ​准入逻辑。

在 https://git.k8s.io/pod-security-admission/webhook 上可以找到一个预先构建的容器镜像、证书生成脚本以及一些示例性质的清单。

git clone [email protected]:kubernetes/pod-security-admission.git
cd pod-security-admission/webhook
make certs
kubectl apply -k .

Note:

所生成的证书合法期限为 2 年。在证书过期之前, 需要重新生成证书或者去掉 Webhook 以使用内置的准入查件。

Pod 安全性级别 

Pod 安全性准入插件对 Pod 的安全性上下文 有一定的要求,并且依据 Pod 安全性标准 所定义的三个级别(​privileged​、​baseline ​和 ​restricted​)对其他字段也有要求。

为名字空间设置 Pod 安全性准入控制标签

一旦特性被启用或者安装了 Webhook,你可以配置名字空间以定义每个名字空间中 Pod 安全性准入控制模式。 Kubernetes 定义了一组标签, 你可以设置这些标签来定义某个名字空间上要使用的预定义的 Pod 安全性标准级别。 你所选择的标签定义了检测到潜在违例时,控制面 要采取什么样的动作。

模式描述
enforce策略违例会导致 Pod 被拒绝
audit策略违例会触发审计日志中记录新事件时添加审计注解;但是 Pod 仍是被接受的。
warn策略违例会触发用户可见的警告信息,但是 Pod 仍是被接受的。

名字空间可以配置任何一种或者所有模式,或者甚至为不同的模式设置不同的级别。

对于每种模式,决定所使用策略的标签有两个:

# 针对模式的级别标签用来标示针对该模式所应用的策略级别
#
# MODE 必须是 `enforce`、`audit` 或 `warn` 之一
# LEVEL 必须是 `privileged`、baseline` 或 `restricted` 之一
pod-security.kubernetes.io/<MODE>: <LEVEL>

# 可选:针对每个模式版本的版本标签可以将策略锁定到
# 给定 Kubernetes 小版本号所附带的版本(例如 v1.24)
#
# MODE 必须是 `enforce`、`audit` 或 `warn` 之一
# VERSION 必须是一个合法的 Kubernetes 小版本号或者 `latest`
pod-security.kubernetes.io/<MODE>-version: <VERSION>

负载资源和 Pod 模板 

Pod 通常是通过创建 Deployment 或 Job 这类工作负载对象 来间接创建的。工作负载对象为工作负载资源定义一个 Pod 模板 和一个对应的 负责基于该模板来创建 Pod 的控制器。 为了尽早地捕获违例状况,​audit ​和 ​warn ​模式都应用到负载资源。 不过,​enforce ​模式并 不 应用到工作负载资源,仅应用到所生成的 Pod 对象上。

豁免 

你可以为 Pod 安全性的实施设置 豁免(Exemptions) 规则, 从而允许创建一些本来会被与给定名字空间相关的策略所禁止的 Pod。 豁免规则可以在准入控制器配置 中静态配置。

豁免规则可以显式枚举。满足豁免标准的请求会被准入控制器 忽略 (所有 ​enforce​、​audit ​和 ​warn ​行为都会被略过)。 豁免的维度包括:

  • Username​: 来自用户名已被豁免的、已认证的(或伪装的)的用户的请求会被忽略。
  • RuntimeClassName​: 指定了已豁免的运行时类名称的 Pod 和负载资源会被忽略。
  • Namespace​: 位于被豁免的名字空间中的 Pod 和负载资源 会被忽略。

Caution:

大多数 Pod 是作为对工作负载资源的响应, 由控制器所创建的,这意味着为某最终用户提供豁免时,只会当该用户直接创建 Pod 时对其实施安全策略的豁免。用户创建工作负载资源时不会被豁免。 控制器服务账号(例如:​
system:serviceaccount:kube-system:replicaset-controller​) 通常不应该被豁免,因为豁免这类服务账号隐含着对所有能够创建对应工作负载资源的用户豁免。

策略检查时会对以下 Pod 字段的更新操作予以豁免,这意味着如果 Pod 更新请求仅改变这些字段时,即使 Pod 违反了当前的策略级别,请求也不会被拒绝。

  • 除了对 seccomp 或 AppArmor 注解之外的所有 meatadata 更新操作:
    • seccomp.security.alpha.kubernetes.io/pod​ (已弃用)
    • container.seccomp.security.alpha.kubernetes.io/* ​(已弃用)
    • container.apparmor.security.beta.kubernetes.io/*
  • 对 ​.spec.activeDeadlineSeconds​ 的合法更新
  • 对 ​.spec.tolerations​ 的合法更新

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/205502.html<

(0)
运维的头像运维
上一篇2025-04-07 15:45
下一篇 2025-04-07 15:46

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注