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

13. 安全上下文

安全上下文(Security Context)

安全上下文概念

Kubernetes 的 Security Context(安全上下文) 用于控制容器的权限和安全策略,防止容器影响宿主机或集群的安全。

可以应用的范围:

级别 作用对象
Pod-level Security Context 作用于 Pod 内所有容器及 Volume
Container-level Security Context 仅作用于指定容器,优先级高于 Pod-level
Pod Security Policies (PSP) 已废弃 集群级别安全策略,影响所有 Pod

Pod 级安全上下文示例

# security-context-pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:name: security-context-pod-demo
spec:volumes:- name: sec-ctx-volemptyDir: {}securityContext:   # Pod级安全上下文runAsUser: 1000    # Pod内所有容器进程 UIDrunAsGroup: 3000   # Pod内所有容器进程 GIDfsGroup: 2000      # 挂载卷和文件所属 GIDcontainers:- name: sec-ctx-demoimage: busyboxcommand: ["sh", "-c", "sleep 60m"]volumeMounts:- name: sec-ctx-volmountPath: /pod/demosecurityContext:   # 容器级安全上下文,可覆盖 Pod-levelallowPrivilegeEscalation: false

解释

  • runAsUser:容器内进程 UID
  • runAsGroup:容器内进程 GID
  • fsGroup:挂载卷的 GID
  • allowPrivilegeEscalation:是否允许特权提升(默认 true,privileged 或 CAP_SYS_ADMIN 时强制 true)

验证:

ubuntu@ubuntu:~/example/security-context$ kubectl apply -f ./security-context-pod-demo.yaml 
pod/security-context-pod-demo created
ubuntu@ubuntu:~/example/security-context$ kubectl exec -it security-context-pod-demo -- id
uid=1000 gid=3000 groups=2000,3000
ubuntu@ubuntu:~/example/security-context$ kubectl exec -it security-context-pod-demo -- ls -la /pod/demo
total 8
drwxrwsrwx    2 root     2000          4096 Nov 17 09:57 .
drwxr-xr-x    3 root     root          4096 Nov 17 09:57 ..
ubuntu@ubuntu:~/example/security-context$ kubectl exec -it security-context-pod-demo -- top
Mem: 2186016K used, 1774888K free, 4236K shrd, 75484K buff, 1346260K cached
CPU:  2.4% usr  0.0% sys  0.0% nic 97.5% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.00 0.00 0.00 1/683 24
PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND
19     0 1000     R     4568  0.1   1  0.0 top
1     0 1000     S     4436  0.1   3  0.0 sleep 60m

Linux Capabilities

Linux 将 root 权限拆分成细粒度权限,称为 Capabilities,避免 SUID 过度授权风险。

常用 Capabilities:

Capability 用途
CAP_NET_ADMIN 网络管理
CAP_SYS_TIME 设置系统时间
CAP_SYS_ADMIN 系统管理(类似特权 root)

Capabilities 集合(线程级别):

集合 作用
Permitted 可使用的最大 Capabilities
Effective 内核检查权限使用的集合
Inheritable 可被 exec 继承的 Capabilities
Bounding Inheritable 的超集,限制上限
Ambient Linux 4.3 新增,可继承给子进程

Kubernetes 配置 Capabilities

# cpb-demo.yaml
apiVersion: v1
kind: Pod
metadata:name: cpb-demo
spec:containers:- name: cpbimage: busyboxargs: ["sleep", "3600"]securityContext:capabilities:add:    # 添加- NET_ADMINdrop:   # 删除默认能力- KILL

验证:

ubuntu@ubuntu:~/example/security-context$ kubectl apply -f cpb-demo.yaml 
pod/cpb-demo created
ubuntu@ubuntu:~/example/security-context$ kubectl exec -it cpb-demo -- /bin/sh
# 验证网络功能/ # ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0@if24: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue qlen 1000link/ether d2:b3:6b:96:5a:c8 brd ff:ff:ff:ff:ff:ff
3: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop qlen 1000link/ether b2:f2:bb:1c:96:54 brd ff:ff:ff:ff:ff:ff# 验证kill
/ # id
uid=0(root) gid=0(root) groups=0(root),10(wheel)
# 创建一个非 root 用户的后台进程
/ # adduser testuser
Changing password for testuser
New password: 
Bad password: too short
Retype password: 
passwd: password for testuser is unchanged
adduser: user 'testuser' in use
/ # su - testuser -c "sleep 1000 &"
/ # top
Mem: 2203412K used, 1757492K free, 4236K shrd, 76748K buff, 1347196K cached
CPU:  2.5% usr  0.0% sys  0.0% nic 97.4% idle  0.0% io  0.0% irq  0.0% sirq
Load average: 0.05 0.01 0.00 2/683 30PID  PPID USER     STAT   VSZ %VSZ CPU %CPU COMMAND7     0 root     S     4568  0.1   1  0.0 /bin/sh30     7 root     R     4568  0.1   1  0.0 top1     0 root     S     4436  0.1   3  0.0 sleep 360029     1 testuser S     4436  0.1   3  0.0 sleep 1000
/ # kill -9 29
sh: can't kill pid 29: Operation not permitted

特权容器(Privileged)

  • Docker/Containerd:--privileged 开启容器超级权限
  • Kubernetes:
    securityContext:
    privileged: true
    

不建议使用,获取宿主机 root 权限,安全风险极高。

http://www.jsqmd.com/news/42911/

相关文章:

  • 12. RBAC
  • JavaScript手写函数
  • 美国本科申请中介怎么选?2025口碑TOP5出炉,藤校资源/申请成功率双保障
  • 2025 最新冷库建造厂家推荐!医药 / 食品 / 物流 / 小型 / 大型 / 自动化冷库建造厂家企业品牌权威排行榜
  • 语句的执行
  • 房产信息管理系统
  • 10. 准入控制器
  • 2025 最新推荐!保定篮球俱乐部培训中心实力榜单:揭秘行业顶尖机构服务与教学优势权威指南
  • work5
  • 2025年南京高功率密度电源公司推荐,高功率密度电源/电源模块/军用电源/全国产化电源/氢能源车载直流转换器生产直销有哪些
  • 2025 年最新推荐冷库安装厂家排行榜,小型冷库 / 医药疫苗冷库 / 智能冷库设备安装实力企业口碑推荐
  • 2025美国研究生申请认准这些机构!藤校offer收割机/背景提升全流程,实力中介测评
  • fdisk linux分区
  • exe文件在linux
  • CAD开发-AutoCAD Code Pack 封装包
  • Wan2.2-I2V-A14B的推理加速库:xFormers与FlashAttention性能测试
  • 常见问题 --- Bad register number passed to arm.get register value
  • 2025 年最新制氮机厂家推荐排行榜:激光切割 / 防爆 / 化工等多场景精选,技术与服务双优指南金属加工制氮机/医药农业制氮机/SMT制氮机公司推荐
  • Wan2.2-Remix - 专注于人物动态、逼真运动和场景一致性图生视频 支持NSFW WebUI+ComfyUI工作流 一键整合包下载
  • eclipse下载 linux
  • Ovi: Twin Backbone Cross-Modal Fusion for Audio-Video Generation
  • 在保留旧版本 Python 的同时,安全地使用或切换到新版本,而不破坏原有项目或系统依赖
  • 大威德
  • 2025 最新滚珠丝杠厂家推荐!重负载 / 精密 / 轧制 / 研磨滚珠丝杠全品类榜单,国产优质品牌实力测评与选购指南
  • 2025年长沙心理咨询机构实力排名,在线/线上企业口碑排行
  • 现代多核处理器上上下文切换对 CPU 缓存性能的延迟和吞吐量影响
  • 半导体静态电性测试系统STD2000X可测试的器件种类和参数 - FORCREAT
  • 2025年长沙心理咨询优质机构排名盘点,线上/在线企业推荐排行榜
  • 新手小白电脑常用快捷键
  • 2025年美国留学中介哪家强,藤校申请/全程规划/背景提升/签证辅导/求职赋能优质机构推荐