从PSP迁移至PSA后,特定命名空间规则未生效的问题咨询
问题原因及解决方法
核心原因
gatekeeper-system是AKS集群默认豁免Pod Security Admission(PSA)规则的系统命名空间之一。AKS为保障集群核心组件(如Gatekeeper自身)的正常运行,默认会对kube-system、gatekeeper-system、azure-arc这类系统命名空间跳过PSA校验,因此你添加的PSA标签不会生效。
解决步骤
- 移除gatekeeper-system的PSA豁免
使用Azure CLI更新AKS集群的PSA配置,将gatekeeper-system从豁免列表中移除:
az aks update --name <你的集群名称> --resource-group <你的资源组名称> --pod-security-admission-configure "excluded-namespaces=kube-system,azure-arc"
说明:原默认豁免列表包含
kube-system、gatekeeper-system、azure-arc,执行上述命令后仅保留kube-system和azure-arc的豁免。
- 验证规则生效
重新部署你提供的特权Deployment,此时PSA的restricted规则会正常生效:
- 违反
enforce级别限制的配置会被拦截,Pod无法创建 - 违规配置会触发
warn级别的警告信息
注意事项
修改豁免配置前,请确认gatekeeper-system中现有Pod(如Gatekeeper控制器)的安全上下文是否符合restricted模式要求。如果Gatekeeper自身的Pod需要特权权限,建议先将PSA级别调整为warn做测试,避免影响集群安全组件的正常运行。
内容的提问来源于stack exchange,提问作者Nopzen
相关产品推荐
相关产品推荐

