Kubernetes Compliance and Governance
Ensure compliance and governance in your Kubernetes clusters
Kubernetes Compliance and Governance
Maintaining compliance and governance in Kubernetes environments is crucial for security and regulatory requirements. This guide covers essential practices.
Video Tutorial
Learn more about Kubernetes compliance and governance in this comprehensive video tutorial:
Prerequisites
- Basic understanding of Kubernetes
- Access to a Kubernetes cluster
- kubectl CLI tool installed
- Familiarity with compliance frameworks
Project Structure
.
├── compliance/
│ ├── policies/ # Policy configurations
│ ├── audit/ # Audit configurations
│ ├── rbac/ # RBAC definitions
│ └── security/ # Security policies
└── monitoring/
├── compliance/ # Compliance monitoring
└── alerts/ # Compliance alerts
Policy Management
1. OPA Gatekeeper Policy
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sRequiredLabels
metadata:
name: require-labels
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Pod"]
parameters:
labels: ["owner", "environment", "compliance-level"]
2. Pod Security Policy
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restricted
spec:
privileged: false
seLinux:
rule: RunAsAny
runAsUser:
rule: MustRunAsNonRoot
fsGroup:
rule: RunAsAny
volumes:
- 'configMap'
- 'emptyDir'
- 'persistentVolumeClaim'
Audit Configuration
1. Audit Policy
apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: RequestResponse
resources:
- group: ""
resources: ["pods", "services"]
- level: Metadata
resources:
- group: "rbac.authorization.k8s.io"
resources: ["roles", "rolebindings"]
2. Audit Logging
apiVersion: v1
kind: Pod
metadata:
name: audit-pod
spec:
containers:
- name: audit-container
image: audit-image:latest
volumeMounts:
- name: audit-logs
mountPath: /var/log/audit
volumes:
- name: audit-logs
hostPath:
path: /var/log/audit
type: DirectoryOrCreate
Compliance Monitoring
1. Compliance Checks
apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceScan
metadata:
name: compliance-scan
spec:
profile: xccdf_org.ssgproject.content_profile_moderate
content: ssg-rhcos4-ds.xml
schedule: "0 1 * * *"
2. Compliance Alerts
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: compliance-alerts
spec:
groups:
- name: compliance
rules:
- alert: ComplianceViolation
expr: compliance_check_status{status="failed"} > 0
for: 1h
labels:
severity: critical
RBAC Configuration
1. Role Definition
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: compliance-viewer
rules:
- apiGroups: [""]
resources: ["pods", "services"]
verbs: ["get", "list", "watch"]
- apiGroups: ["audit.k8s.io"]
resources: ["policies"]
verbs: ["get"]
2. Role Binding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: compliance-viewer-binding
subjects:
- kind: User
name: compliance-auditor
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: compliance-viewer
apiGroup: rbac.authorization.k8s.io
Network Policies
1. Default Deny
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
2. Compliance Network Policy
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: compliance-policy
spec:
podSelector:
matchLabels:
compliance: required
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
compliance: approved
Best Practices Checklist
- ✅ Implement policies
- ✅ Configure auditing
- ✅ Set up monitoring
- ✅ Define RBAC
- ✅ Network policies
- ✅ Regular compliance checks
- ✅ Alert configuration
- ✅ Documentation
- ✅ Training
- ✅ Regular reviews
Compliance Frameworks
PCI DSS
- Network segmentation
- Access control
- Audit logging
- Encryption
HIPAA
- Data encryption
- Access controls
- Audit trails
- Backup procedures
SOC 2
- Security monitoring
- Change management
- Access control
- Incident response
Common Compliance Pitfalls
- ❌ Insufficient logging
- ❌ Poor access control
- ❌ Missing policies
- ❌ Inadequate monitoring
- ❌ Lack of documentation
Documentation Requirements
1. Policy Documentation
apiVersion: v1
kind: ConfigMap
metadata:
name: compliance-docs
data:
policies.md: |
# Compliance Policies
1. Access Control
2. Data Protection
3. Network Security
4. Audit Requirements
2. Procedure Documentation
apiVersion: v1
kind: ConfigMap
metadata:
name: compliance-procedures
data:
procedures.md: |
# Compliance Procedures
1. Incident Response
2. Change Management
3. Access Review
4. Audit Review
Compliance Reporting
1. Report Generation
apiVersion: batch/v1
kind: CronJob
metadata:
name: compliance-report
spec:
schedule: "0 0 * * 0"
jobTemplate:
spec:
template:
spec:
containers:
- name: report-generator
image: report-tool:latest
args:
- --output=/reports
2. Report Storage
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: compliance-reports
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
Conclusion
Implementing these compliance and governance practices ensures regulatory compliance and security in your Kubernetes clusters. Regular audits and updates are essential for maintaining compliance.