| name | kubernetes-security-policies |
| description | Kubernetes security policies, RBAC, and Pod Security Standards for hardened cluster deployments. Use when implementing cluster security, defining network policies, or enforcing security compliance in Kubernetes environments. |
Kubernetes Security Policies
Comprehensive guidance for implementing security policies in Kubernetes clusters, covering Pod Security Standards, Network Policies, RBAC, Security Contexts, admission control, secrets management, and runtime security for production-grade hardened deployments.
When to Use This Skill
- Implementing Pod Security Standards (PSS/PSA) across namespaces
- Designing and enforcing Network Policies for micro-segmentation
- Configuring RBAC with least-privilege access control
- Setting Security Contexts for container hardening
- Deploying admission controllers (OPA/Gatekeeper, Kyverno)
- Managing secrets and sensitive data securely
- Implementing image security and vulnerability scanning
- Enforcing runtime security policies and threat detection
- Meeting compliance requirements (CIS, NIST, PCI-DSS, SOC2)
- Conducting security audits and hardening assessments
Core Security Concepts
Pod Security Standards (PSS): Three progressive security levels enforced via Pod Security Admission (PSA):
- Privileged: Unrestricted (default)
- Baseline: Prevents known privilege escalations
- Restricted: Pod hardening best practices (production recommended)
Network Policies: Zero-trust micro-segmentation controlling pod-to-pod and pod-to-external traffic using label selectors and namespace isolation.
RBAC (Role-Based Access Control): Least-privilege access control using ServiceAccounts, Roles, RoleBindings for namespace-scoped permissions, and ClusterRoles for cluster-wide access.
Security Contexts: Container and pod-level security settings including user/group IDs, capabilities, seccomp profiles, and filesystem restrictions.
Admission Control: Policy enforcement at API admission time using OPA Gatekeeper (Rego) or Kyverno (YAML) to validate, mutate, or reject resources.
Secrets Management: External secret storage integration (Vault, AWS Secrets Manager, Sealed Secrets) instead of native Kubernetes secrets.
Image Security: Vulnerability scanning, signature verification, digest-based immutability, and private registry authentication.
Quick Reference
| Task | Load reference |
|---|---|
| Pod Security Standards (PSS/PSA) | skills/kubernetes-security-policies/references/pod-security-standards.md |
| Network Policies | skills/kubernetes-security-policies/references/network-policies.md |
| RBAC (Roles, ServiceAccounts) | skills/kubernetes-security-policies/references/rbac.md |
| Security Contexts (capabilities, seccomp) | skills/kubernetes-security-policies/references/security-contexts.md |
| Admission Control (OPA, Kyverno) | skills/kubernetes-security-policies/references/admission-control.md |
| Secrets Management (Vault, ESO) | skills/kubernetes-security-policies/references/secrets-management.md |
| Image Security (scanning, signing) | skills/kubernetes-security-policies/references/image-security.md |
| Best Practices & Compliance | skills/kubernetes-security-policies/references/best-practices.md |
Security Implementation Workflow
Phase 1: Baseline Assessment
- Audit current security posture with kube-bench or kubescape
- Identify gaps against CIS Kubernetes Benchmark
- Document compliance requirements (PCI-DSS, NIST, SOC2)
Phase 2: Pod Security Standards
- Enable PSA audit mode on all namespaces
- Identify violations using
kubectl get pods -A --show-labels - Remediate workloads to meet baseline/restricted standards
- Progressively enforce: dev (warn) → staging (baseline) → prod (restricted)
Phase 3: Network Segmentation
- Deploy default-deny NetworkPolicy to all namespaces
- Create explicit allow rules for required traffic flows
- Implement database isolation policies
- Add monitoring/observability exceptions
Phase 4: Access Control (RBAC)
- Audit existing RBAC with
kubectl auth can-i --list - Create dedicated ServiceAccounts per application
- Define least-privilege Roles with specific resource/verb restrictions
- Disable
automountServiceAccountTokenby default - Minimize ClusterRole usage
Phase 5: Admission Control
- Choose policy engine: OPA Gatekeeper (Rego) or Kyverno (YAML)
- Implement validation policies: require labels, resource limits, non-root
- Add mutation policies: inject security contexts, sidecar containers
- Enforce image policies: disallow latest tag, require signatures
Phase 6: Secrets Management
- Deploy External Secrets Operator or Vault integration
- Migrate native Secrets to external secret stores
- Enable encryption at rest for etcd
- Implement secret rotation policies
Phase 7: Image Security
- Integrate vulnerability scanning in CI/CD (Trivy, Snyk)
- Implement image signing with Sigstore/Cosign
- Enforce signature verification via admission control
- Use immutable image digests instead of tags
Phase 8: Runtime Security
- Deploy Falco for runtime threat detection
- Enable Kubernetes audit logging
- Configure alerts for security events
- Implement intrusion detection policies
Common Mistakes
Pod Security:
- Running containers as root (always set
runAsNonRoot: true) - Using privileged containers (avoid unless absolutely necessary)
- Writable root filesystem (set
readOnlyRootFilesystem: true) - Missing resource limits (required for restricted PSS)
Network Policies:
- No default-deny policy (unrestricted pod-to-pod traffic)
- Overly permissive egress rules (allow all external traffic)
- Forgetting DNS egress (pods can't resolve names)
- Missing monitoring/observability exceptions
RBAC:
- Overly broad ClusterRole permissions (violates least privilege)
- Sharing ServiceAccounts across applications
- Using
*verbs or resources in Roles - Not auditing RBAC permissions regularly
Secrets:
- Committing secrets to Git repositories
- Using environment variables instead of mounted files
- Relying on base64 encoding as encryption
- No secret rotation policy
Admission Control:
- Enforcing policies without audit phase first
- Blocking kube-system namespace accidentally
- No policy testing in staging environment
- Missing exemptions for system components
Images:
- Using
latesttag (not immutable, breaks reproducibility) - No vulnerability scanning in CI/CD
- Unsigned images in production
- Large base images (use distroless or Alpine)
Resources
- Pod Security Standards: https://kubernetes.io/docs/concepts/security/pod-security-standards/
- Network Policies: https://kubernetes.io/docs/concepts/services-networking/network-policies/
- RBAC: https://kubernetes.io/docs/reference/access-authn-authz/rbac/
- OPA Gatekeeper: https://open-policy-agent.github.io/gatekeeper/
- Kyverno: https://kyverno.io/docs/
- External Secrets Operator: https://external-secrets.io/
- Falco Runtime Security: https://falco.org/docs/
- CIS Benchmarks: https://www.cisecurity.org/benchmark/kubernetes
- NSA/CISA Hardening Guide: https://media.defense.gov/2022/Aug/29/2003066362/-1/-1/0/CTR_KUBERNETES_HARDENING_GUIDANCE_1.2_20220829.PDF