Kubernetes Security

Security for Kubernetes clusters — from RBAC and network policies to secrets management and vulnerability scanning.

Sections

Core Principles

  1. Least privilege — RBAC with minimal permissions
  2. Defense in depth — Network policies + pod security + secrets encryption
  3. Immutable workloads — No privileged containers, read-only root filesystems
  4. Scan everything — Container images, Helm charts, K8s YAML
  5. Log everything — Audit logs, API server logs, node logs

Key Security Controls

LayerControlTool/Feature
API ServerRBACRole, ClusterRole, RoleBinding
NetworkSegmentationNetworkPolicy
PodRuntime securityPodSecurityStandards, SecurityContext
DataSecrets encryptionSealed Secrets, Vault
ImagesVulnerability scanningTrivy, Grype
AdmissionPolicy enforcementOPA Gatekeeper, Kyverno

Your EKS Environment

For your EKS clusters:

# Pod security context example
securityContext:
  runAsNonRoot: true
  runAsUser: 10000
  runAsGroup: 10000
  fsGroup: 10000
  readOnlyRootFilesystem: true
  capabilities:
    drop: [ALL]
 
---
# Network policy - default deny
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
spec:
  podSelector: {}
  policyTypes:
  - Ingress
  - Egress

Existing Vault Content

Your vault already has extensive K8s security content:

  • Kubernetes/eks/security/ — EKS-specific security
  • Kubernetes/concepts/security.md — K8s security concepts
  • Kubernetes/guides/README.md — Image security