Policy-as-Code Framework
A Policy-as-Code (PaC) framework for enforcing security, compliance (BSI C5, GDPR), and operational policies across cloud infrastructure.
Built with Open Policy Agent (OPA) for policy authoring, Terraform for infrastructure-as-code, and GitHub Actions for CI/CD enforcement.
Part of a PhD research project at the University of Plymouth investigating human-centric Policy-as-Code and cloud misconfiguration governance.
GitHub Pages Status
| Item | Status |
|---|---|
| GitHub Pages | ✅ Deployed (this site) |
| CI Pipeline | ✅ Active (policy-ci.yml, pac-aws-ci.yml) |
| OPA Policies | ✅ IaaS · PaaS · Spring |
| Compliance | ✅ BSI C5 · GDPR |
Architecture
1
2
3
4
5
6
7
8
9
10
11
12
13
┌──────────────┐
│ Authoring │ Rego policies with compliance metadata
└──────┬───────┘
│
▼
┌──────────────┐
│ Evaluation │ OPA evaluates Terraform plans
└──────┬───────┘
│
▼
┌──────────────┐
│ Enforcement │ CI/CD gates + pre-commit hooks
└──────────────┘
Policy Layers
| Layer | Scope | Policy File |
|---|---|---|
| IaaS | Networking, compute, security groups | policies/iaas/network_security.rego |
| PaaS | Databases, storage, backups | policies/paas/database_security.rego |
| Spring | JDK versions, images, logging, TLS | policies/spring/runtime_security.rego |
Supported Providers
| Provider | Path | Description |
|---|---|---|
| STACKIT (primary) | terraform/environments/ |
German public-sector cloud — dev, staging, prod |
| AWS (demo) | terraform/demo-aws/ |
Compliant vs non-compliant examples |
Quick Start
1
2
3
4
5
6
7
8
9
# Run all policy tests
opa test ./policies ./tests -v
# Check formatting
opa fmt --check --fail policies/ tests/
# Evaluate a resource against policies
echo '{"resource_type":"stackit_compute_instance","environment":"production","values":{"name":"srv-01","public_ip":"1.2.3.4","region":"us-east-1"}}' \
| opa eval -d policies/ -I 'data.policies.iaas.network_security.deny'
Compliance Mapping
Policies are annotated with:
- BSI C5: OPS-05, OPS-08, OPS-13, OPS-20, CRY-01, CRY-02, IDM-01
- GDPR: Art. 5, 25, 32, 44–49
Documentation
- Policy Framework Overview — Architecture, compliance mapping, exception handling
- Getting Started — Prerequisites, installation, running locally
University of Plymouth · Cybersecurity PhD · Elias Lenz