## 概述 Pod安全依赖命名空间级策略与容器级安全上下文协同。PSA在准入时拦截违规配置,容器内使用Seccomp、AppArmor与能力降级减少攻击面,配合非root与禁止提权,形成稳健隔离基线。 ## 关键实践与参数 - PSA等级:`baseline` 或 `restricted`,按命名空间标签生效 - 非root:`runAsNonRoot=true` `runAsUser=1000` - 能力降级:`capabilities.drop=["ALL"]` - 禁止提权:`allowPrivilegeEscalation=false` - Seccomp:`seccompProfile.type=RuntimeDefault` - AppArmor:为容器设置 `container.apparmor.security.beta.kubernetes.io/=runtime/default` ## 示例/配置/实现 ```yaml apiVersion: v1 kind: Namespace metadata: name: secure labels: pod-security.kubernetes.io/enforce: restricted pod-security.kubernetes.io/enforce-version: latest --- apiVersion: apps/v1 kind: Deployment metadata: name: api namespace: secure spec: replicas: 2 selector: matchLabels: { app: api } template: metadata: labels: { app: api } annotations: container.apparmor.security.beta.kubernetes.io/app: runtime/default spec: containers: - name: app image: alpine:3.19 command: ["sleep", "3600"] securityContext: runAsNonRoot: true runAsUser: 1000 allowPrivilegeEscalation: false seccompProfile: { type: RuntimeDefault } capabilities: { drop: ["ALL"] } ``` ## 验证 - 准入拦截:尝试部署 `privileged=true` 容器应被PSA拒绝并给出原因 - 非root校验:容器内执行 `id -u` 返回非0,无法执行需要特权的操作 - 能力降级:执行 `capsh --print` 或运行需要NET_ADMIN能力的命令失败 - Seccomp/AppArmor:启用后敏感系统调用被限制,查看事件与日志 ## 注意事项 - AppArmor需在节点内核与CNI支持下生效 - PSA标签需精确配置并与团队协作流程对齐 - 个别镜像可能需要额外权限,应改造镜像降低需求 - 定期合规扫描与演练,确保策略未被绕过

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部