16.3. 关于 Pod 安全准入警报
当 Kubernetes API 服务器报告 pod 安全准入控制器的审计级别时,会触发 PodSecurityViolation
警报。此警报持续一天。
查看 Kubernetes API 服务器审计日志,以调查触发的警报。例如,如果将全局执行设置为 restricted
pod 安全级别,工作负载可能会出现故障。
如需有关识别 Pod 安全准入违反审计事件的帮助,请参阅 Kubernetes 文档中的 Audit 注解。
16.3.1. 识别 pod 安全违反情况
PodSecurityViolation
警报不会提供导致 pod 安全漏洞的工作负载的详情。您可以通过查看 Kubernetes API 服务器审计日志来识别受影响的工作负载。此流程使用 must-gather
工具来收集审计日志,然后搜索 pod-security.kubernetes.io/audit-violations
注解。
先决条件
-
您已安装了
jq
。 -
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
要收集审计日志,请输入以下命令:
$ oc adm must-gather -- /usr/bin/gather_audit_logs
要输出受影响的工作负载详情,请输入以下命令:
$ zgrep -h pod-security.kubernetes.io/audit-violations must-gather.local.<archive_id>/quay*/audit_logs/kube-apiserver/*log.gz \ | jq -r 'select((.annotations["pod-security.kubernetes.io/audit-violations"] != null) and (.objectRef.resource=="pods")) | .objectRef.namespace + " " + .objectRef.name + " " + .objectRef.resource' \ | sort | uniq -c
将
must-gather.local.<archive_id>
替换为实际目录名称。输出示例
15 ci namespace-ttl-controller deployments 1 ci-op-k5whzrsh rpm-repo-546f98d8b replicasets 1 ci-op-k5whzrsh rpm-repo deployments