kubernetes CKS 4.3 Pod安全策略(PSP)

K8S学习指南(39)-k8s权限管理对象 PodSecurityPolicy 通过本文,我们深入了解了Kubernetes中权限管理对象PodSecurityPolicy的基本概念、创建方式,并通过详细的示例演示了如何手动创建PodSecurityPolicy,并将其与Role和RoleBinding关联,以实现对Pod的安全控制。在示例中,我们将演示如何手动创建一个PodSecurityPolicy,并将其与集群中的Role和RoleBinding关联,以实现对Pod的安全控制。的PodSecurityPolicy,定义了一系列安全规则,包括不允许特权容器、禁止使用主机网络等。 阅读详情

4.3.1 简述

PodSecurityPolicy(简称PSP):Kubernetes中Pod部署时重要的安全校验手段,能够 有效地约束应用运行时行为安全。
使用PSP对象定义一组Pod在运行时必须遵循的条件及相关字段的默认值,只有Pod满足这 些条件才会被K8s接受。
![image.png](https://img-blog.csdnimg.cn/img_convert/4bc6eb9e8b13d151f7eeeceb29fa6c65.png#clientId=u1f958e2d-ca55-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=660&id=u565c3ebd&margin=[object Object]&name=image.png&originHeight=660&originWidth=1099&originalType=binary&ratio=1&rotation=0&showTitle=false&size=219457&status=done&style=none&taskId=udd7cc165-880c-411e-b5f1-5ecfbea005b&title=&width=1099)

Pod安全策略实现为一个准入控制器,默认没有启用,当启用后会强制实施 Pod安全策略,没有满足的Pod将无法创建。因此,建议在启用PSP之前先添加 策略并对其授权。

启用Pod安全策略:

vi /etc/kubernetes/manifests/kube-apiserver.yaml
...
- --enable-admission-plugins=NodeRestriction,PodSecurityPolicy
...
systemctl restart kubelet

用户使用SA (ServiceAccount)创建了一个Pod,K8s会先验证这个SA是否 可以访问PSP资源权限,如果可以进一步验证Pod配置是否满足PSP规则,任 意一步不满足都会拒绝部署。 因此,需要实施需要有这几点:
• 创建SA服务账号
• 该SA需要具备创建对应资源权限,例如创建Pod、Deployment
• SA使用PSP资源权限:创建Role,使用PSP资源权限,再将SA绑定Role

![image.png](https://img-blog.csdnimg.cn/img_convert/ad1880aced8551754c163e529fd162a1.png#clientId=u1f958e2d-ca55-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=668&id=u756c9748&margin=[object Object]&name=image.png&originHeight=668&originWidth=589&originalType=binary&ratio=1&rotation=0&showTitle=false&size=155512&status=done&style=none&taskId=ufb0fb5c5-5689-4dc7-b5ee-08870ca7adc&title=&width=589)

4.3.2 示例1:禁止创建特权模式的Pod

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp-example
spec:
  privileged: false # 不允许特权Pod
# 下面是一些必要的字段
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  runAsUser:
    rule: RunAsAny 
  fsGroup:
    rule: RunAsAny
  volumes:
  - '*'

4.3.3 示例1:禁止创建特权模式的Pod

# 创建SA
kubectl create serviceaccount aliang
# 将SA绑定到系统内置Role
kubectl create rolebinding aliang --clusterrole=edit --serviceaccount=default:aliang
# 创建使用PSP权限的Role
kubectl create role psp:unprivileged --verb=use --resource=podsecuritypolicy --resource-name=psp-example
# 将SA绑定到Role
kubectl create rolebinding aliang:psp:unprivileged --role=psp:unprivileged --serviceaccount=default:aliang

4.3.4 示例2:禁止没指定普通用户运行的容器(runAsUser)

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: psp-example
spec:
  privileged: false # 不允许特权Pod
# 下面是一些必要的字段
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  runAsUser:
    rule: MustRunAsNonRoot 
  fsGroup:
    rule: RunAsAny
  volumes:
  - '*'

4.3.5 CKS考题分析

![image.png](https://img-blog.csdnimg.cn/img_convert/76f341a4871f1bca595baf3808337256.png#clientId=ua4a1bba0-7db3-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=511&id=u5f96cba8&margin=[object Object]&name=image.png&originHeight=511&originWidth=778&originalType=binary&ratio=1&rotation=0&showTitle=false&size=209244&status=done&style=none&taskId=u1cf0e239-85e6-4988-bde3-3a84268b4f4&title=&width=778)

解读:

  1. 创建一个名为 restrict-policy 的 PodSecurityPolicy,防止创建特权 Pod
  2. 创建一个名为 restrict-access-role 的 ClusterRole 能够使用 PSP restrict-policy
  3. 在 staging 命名空间创建一个名为 psp-denial-sa 的 ServiceAccount
  4. 最后,创建一个名为 dany-access-bind 的 ClusterRoleBinding,绑定 ClusterRole
    restrict-access-role 到 ServiceAccount psp-denial-sa

解题:

# 启用 PSP 准入控制器 
vi /etc/kubernetes/manifests/kube-apiserver.yaml 
- --enable-admission-plugins=NodeRestriction,PodSecurityPolicy

启用后,发觉无法创建pod:

[root@k8s21-master01 ~]# kubectl run nginx0714 --image=nginx 
Error from server (Forbidden): pods "nginx0714" is forbidden: PodSecurityPolicy: no providers available to validate pod request

创建psp规则:

[root@k8s21-master01 ~]# vi psp.yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: restrict-policy
spec:
  privileged: false  # 不允许提权的 Pod!
  # 以下内容负责填充一些必需字段。
  seLinux:
    rule: RunAsAny
  supplementalGroups:
    rule: RunAsAny
  runAsUser:
    rule: RunAsAny
  fsGroup:
    rule: RunAsAny
  volumes:
  - '*'
  [root@k8s21-master01 ~]#kubectl apply -f psp.yaml
Warning: policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
podsecuritypolicy.policy/restrict-policy created

再创建pod,发觉可以创建了:

[root@k8s21-master01 ~]# kubectl run nginx0714 --image=nginx 
pod/nginx0714 created

创建一个clusterrole绑定psp

kubectl create clusterrole restrict-access-role --verb=use --resource=psp -- 
resource-name=restrict-policy

创建sa账号:

kubectl create ns staging #考试不用创建
kubectl create sa psp-denial-sa -n staging

创建…绑定sa

kubectl create clusterrolebinding dany-access-bind --clusterrole=restrict-access-role --serviceaccount=staging:psp-denial-sa

验证:

kubectl --as=system:serviceaccount:staging:psp-denial-sa get pods -n staging

社区官方参考文档: https://kubernetes.io/zh-cn/docs/concepts/security/pod-security-policy/

Kubernetes CKS 安全专家认证:5 大核心模块(权重 20%)实战演练与 CIS 基准检查 本文深入解析Kubernetes CKS安全专家认证的5大核心模块,重点介绍监控、日志记录和运行时安全等关键内容。通过Falco配置、CIS基准检查、Trivy镜像扫描等实战演练,帮助工程师掌握Kubernetes集群安全防护技术,提升CKS认证考试通过率。 阅读详情

相关推荐

微服务漏洞最小化:CKS考试核心实践指南

在Kubernetes环境中,微服务架构已经成为主流。然而,随着微服务的广泛采用,其安全性也成为了一个重要的关注点。作为Certified Kubernetes Security Specialist (CKS)认证的一个重要组成部分,了解如何最小化微服务漏洞是每个Kubernetes管理员都应该掌握的技能。本文将详细介绍几个核心的微服务安全策略,帮助您快速掌握CKS考试的相关内容,同时提高Kubernetes环境中微服务的整体安全性。使用Pod Security Policies (PSP), Open

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 360

【云原生】K8s PSP 和 securityContext 介绍与使用

授予users和service accounts创建或更新pods使用资源的权限。这是一种集群级别的资源类型,用来限制pod对敏感资源的使用。它能够控制Pod的各个安全方面。是否允许Pod使用宿主节点的PID,IPC,网络命名空间。Pod是否允许绑定到宿主节点端口。容器运行时允许使用的用户ID。是否允许特权模式的POD。【温馨提示】PodSecurityPolicy 在 Kubernetes v1.21 中被弃用, 在 Kubernetes v1.25 中被移除。

匠人精神,持之以恒! 2159

CKS学习笔记- PodSecurityPolicy练习

什么是PodSecurityPolicy? PodSecurityPolicy是一个内置的许可控制器,它允许集群管理员控制Pod规范的安全敏感方面。 首先,在集群中创建一个或多个PodSecurityPolicy资源,以定义pod必须满足的需求。然后,创建RBAC规则来控制哪个PodSecurityPolicy应用于给定的pod。 如果pod满足其PSP的要求,它将像往常一样被允许进入集群。在某些情况下,PSP还可以修改Pod字段,有效地为这些字段创建新的默认值。如果Pod不符合PSP要求,它将被拒绝,并且

weixin_43394724的博客 537

kubernetes-Pod安全策略psp实践-非原创-方便自己查看

使用PSP安全策略psp策略定义好之后还需要再创建role,把psp策略绑定到role上,再将role绑定到serviceaccount,再在Pod中使用serviceaccount。还有几个必要条件:1、在apiserver启动参数 --enable-admission-plugins 中要加上 PodSecurityPolicy 选项,默认是没有启用的。

weixin_46010524的博客 399

用Python和sklearn预测NBA比赛胜负:从数据清洗到模型优化的完整流程

本文详细介绍了如何使用Python和sklearn构建NBA比赛胜负预测模型,涵盖从数据清洗、特征工程到模型优化与部署的完整流程。通过对比随机森林、XGBoost等主流算法,提供实战技巧和解决方案,帮助数据爱好者掌握体育数据分析的核心技术。

weixin_30823001的博客 134

c#窗体应用(.NET Framework)项目对Yaml文件进行写入与读取,Yaml数据转换成json

用到的技术与版本准备工作Yaml数据在C#中进行定义对Yaml文件的读取与写入代码的添加窗体控件控制操作写入数据到Yaml文件读取Yaml文件数据Yaml数据转换成json改进——对yaml文件读取时根据yaml文件中的键进行获取,对c#中怎么取名字无关yaml文件中多个数据读取遇到的问题总结的小点参考的文章在对Yaml文件进行读取前,先将Yaml文件中的数据结构在c#中进行定义,以便后面更好的读取。这里对这四个类型进行举例(这里为了想看看这四个类型到Yaml文件的格式是什么样子的)

永远年轻 1587

二十七、K8s最小服务漏洞1-PSP

PSP在K8s中的运用

tushanpeipei的博客 4400

AI Agent核心架构解析:从Tool、Skill到MCP协议的智能体构建实战

在人工智能领域,大语言模型(LLM)赋予了AI自主规划与决策的能力,推动了智能体(Agent)技术的演进。其核心原理在于构建一个具备感知、规划、行动与反思能力的自主系统。这一架构的技术价值在于将AI从被动应答升级为主动执行复杂任务的工作伙伴,显著提升了自动化水平与问题解决效率。应用场景广泛覆盖了市场分析、自动化办公、智能客服与垂直领域集成等。本文聚焦于实现这一能力的关键组件:基础工具(Tool)、组合技能(Skill)与标准化协议(MCP)。其中,Skill通过封装多个Tool形成可复用的高级能力,而MCP

chuannaoxuan4674的博客 322

K8s进阶6——pod安全上下文、Linux Capabilities、OPA Gatekeeper、gvisor

1、pod安全上下文Security Context,特权容器替代方案Linux Capabilities。 2、pod安全策略psp简介,psp替代方案OPA Gatekeepe,包括rego模板、策略编写。 3、gvisor容器沙箱技术,与docker集成,与containerd集成。 4、Linux内核升级。

百慕卿君博客 4851

腾讯云TDSQL MySQL版 - 开发指南兼容性

语言结构 分布式实例支持所有 MySQL 使用的文字格式,包括: String Literals Numeric Literals Date and Time Literals Hexadecimal Literals Bit-Value Literals Boolean Literals NULL Values String Literals String Literals 是一个 bytes 或者 characters 的序列,两端被单引号'或者双引号"包围,TDSQL MySQL版

weixin_43872058的博客 911

利用python-docx提取word的高亮部分

利用python-docx提取word的高亮部分 没有找到分享的文档,于是就自己研究了一下。 可以通过python里的python-docx去提取word内的高亮文本。 file=docx.Document(filepath) for para in file.paragraphs: for i in para.runs: #i.font.highlight_color设置了高亮颜色 if i.font.highlight_color is not None:

double_0221的博客 1810

k8s学习-CKS考试必过宝典

使用用户工作负载的静态分析(例如kubernetes资源,Docker文件)在主机和容器级别执行系统调用进程和文件活动的行为分析,以检测恶意活动。保护您的供应链:将允许的注册表列入白名单,对镜像进行签名和验证。检测物理基础架构,应用程序,网络,数据,用户和工作负载中的威胁。设置适当的OS级安全域,例如使用PSP, OPA,安全上下文。谨慎使用服务帐户,例如禁用默认设置,减少新创建帐户的权限。检测攻击的所有阶段,无论它发生在哪里,如何扩散。考后24小时会收到结果,祝大家考试成功!

关注网络安全、云原生安全 1785

Altium Concord Pro 的应用范围,安装,和使用范围

Altium Concord Pro 的应用范围,安装,和使用范围。保证满足两者软件的最低安装要求。 Altium Concord Pro 是配合Digapcb,和MCAD,Altium 和相应机械设计软件的基础和交换桥梁

hanzhaos的博客 1121

CKS-最小化服务漏洞-pod security policy(PSP)

使用第三方的开源软件、准入控制器来提升系统的安全性我们创建的pod基本上是没有任何限制的 1.此pod里的进程,可以以任何用户身份运行 2.可以使用任一类型的存储 3.比如使用hostPath,可以使用任何任一类型的宿主机目录 4.使用宿主机的网络空间 5.pod里也可以使用特权运行我想限制: 不允许使用特权运行? 不允许使用emptyDir类型的存储? 如果使用hostPath存储的话,只能映射到宿主机的/tmp目录 2.运用psp 测试禁止特权运行 2.1 创建一个psp 给john一个权限,可以对p

weixin_45081220的博客 671

AI大模型助力现金流精准预测案例详解

因为它的“注意力机制”能像“人一样思考”——比如,当预测“下周现金流”时,模型会重点关注“最近7天的销售数据”“未来7天的天气”“竞品是否有促销”这些关键因素,而忽略“去年同期的无关数据”。AI大模型不是“取代”财务人员,而是“赋能”他们——把财务人员从“重复的Excel操作”中解放出来,专注于“战略决策”(比如如何优化资金结构、如何提升资金利用率)。比如,“促销力度”这个特征,不是简单的“折扣率”,而是“折扣率×促销天数×覆盖SKU数量”,这样能更准确反映促销对现金流的影响。这些问题的核心,其实是。

AIGC应用创新大全的博客 1258

fanuc机器人I/O分配

FANUC机器人在和其他外部设备进行通讯时,需要对信号进行配置。 在机器人处于UOP自动分配状态时,系统会自动检索已配对设备,并分配相应的机架号。 当我们需要手动对信号进行分配时,可参考以下机架号进行配置。 不同的通讯协议对应的机架号不同,外部通讯协议常用的机架号参考下表: 序号 机架号 通讯类型 1 0 Process I/O 2 1-15

haier123888的博客 1万+

终极CKS安全认证练习指南:CK-X Simulator实战安全场景模拟教程 [特殊字符]️

想要在CKS(Certified Kubernetes Security Specialist)认证考试中脱颖而出吗?CK-X Simulator为您提供了一个完整的Kubernetes安全实践平台!这个强大的模拟器专门为CKS安全认证练习设计,通过真实的Kubernetes集群环境和计时考试模式,帮助您掌握Kubernetes安全最佳实践。本文将带您深入了解如何使用CK-X Simulator进

gitblog_00143的博客 802

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

k8s-CKS真题-k8s安全策略PodSecurityPolicy

可以看到有个Warning提示,1.25版本之后就没有psp了,之后这个考题可能变动。或者使用yaml文件。

关注网络安全、云原生安全 664

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

CKS认证 | Day4 最小化微服务漏洞

Kubernetes安全实践摘要 本文详细介绍了K8s安全机制及实践方案。主要内容包括: Pod安全上下文配置:通过SecurityContext限制容器权限,包括设置普通用户运行、避免特权容器、控制Linux Capabilities等; 替代Pod安全策略(PSP)的方案:使用OPA Gatekeeper实现策略即代码,提供示例限制特权容器和镜像仓库; 敏感数据管理:通过Secret存储密码等敏感信息,支持环境变量和卷挂载两种注入方式; 安全沙箱技术:集成gVisor实现容器隔离,详细说明与Docker

小安的运维专栏 1375

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

k8s-CKS真题-k8s安全策略PodSecurityPolicy_psp-denial-sa

或者使用yaml文件。

2401_82645688的博客 346

最新k8s-CKS真题-k8s安全策略PodSecurityPolicy_psp-denial-sa,2024年最新【工作经验分享

需要完整版PDF学习资源私我metadata:spec:privileged: false # 不允许提权的 Pod!

2401_84265972的博客 1087

cks 考试指南

1.2 kubernetes 安装 master node: 2. ingress-nginx with TLS 2.2 create ingress resource caddy-ingress.yaml create TLS certificate key-pair create secret with TLS data 2.3 update ingress with TLS caddy-ingress.yaml 执行: 2.4 verify/test 3. network policy E

爱死亡机器人 2382

CKS1.23 考试题整理(15)-Pod安全策略

题目 创建一个名为restrict-policy的新的PodSecurityPolicy,以防止特权Pod的创建。 创建一个名为restrict-access-role并使用新创建的PodSecurityPolicy restrict-policy的ClusterRole。 在现有的namespace staging中创建一个名为psp-denial-sa的新ServiceAccount。 最后,创建一个名为dany-access-bind的ClusterRoleBinding , 将新创建的Cl

april_4的博客 1170

kubernets CKS内容及题库

kubernets CKS认证及考题教程,包含知识点学习及考题分析,帮助广大网友通过CKS考试

cloud_engineer的博客 6602

CKS 试题训练【1】

文章目录1. 考点:Use Role Based Access Controls to minimize exposure试题 1:RBAC授权问题第1步:检查当前 RBAC rules第2步:创建其他RBAC rules2. 考点:Setup appropriate OS level security domains e.g. using PSP, OPA, security contexts试题1:使用OPA策略提高安全性3. 考点:Detect threats within physical infr

爱死亡机器人 3332
上一篇: nfs-server搭建
下一篇: kubernetes CKS 1.8 网络访问控制
cloud_engineer
博客等级 码龄5年 9390粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值