| 1 | Dedicated ServiceAccount | kubectl get pod <pod> -o jsonpath='{.spec.serviceAccountName}' | Not default | [ ] |
| 2 | Minimal RBAC permissions | kubectl auth can-i --list --as=system:serviceaccount:<ns>:<sa> | Only required permissions | [ ] |
| 3 | Default-deny NetworkPolicy | kubectl get networkpolicy -n <ns> -o name | grep deny | Policy resource exists | [ ] |
| 4 | DNS egress allowed | kubectl exec <pod> -- nslookup kubernetes.default | Resolves successfully | [ ] |
| 5 | Secrets via volume mount | kubectl get pod <pod> -o jsonpath='{.spec.volumes[*].secret}' | Secrets mounted as volumes | [ ] |
| 6 | PSS Restricted compliance | kubectl label ns <ns> pod-security.kubernetes.io/enforce=restricted --dry-run=server | No errors/violations | [ ] |
| 7 | No CRITICAL vulnerabilities | trivy image <image> --severity CRITICAL --exit-code 1 | Exit code 0 | [ ] |
| 8 | Dapr mTLS enabled | dapr status -k | grep sentry | Sentry healthy/Running | [ ] |
| 9 | Component scopes configured | kubectl get component <name> -o jsonpath='{.scopes}' | App IDs explicitly listed | [ ] |
| 10 | Audit logging enabled | kubectl logs -n kube-system -l component=kube-apiserver | head | Audit log entries present | [ ] |