IaC Security
Zabezpečení Infrastructure as Code - automatické security scanning, policy as code a GitOps principy pro bezpečnou a auditovatelnou infrastrukturu.

Co je IaC Security?
Infrastructure as Code (IaC) Security zahrnuje procesy a nástroje pro zabezpečení vaší infrastruktury definované v kódu. Když píšete infrastrukturu jako kód (např. Terraform, CloudFormation), automaticky vytváříte dokumentaci vaší infrastruktury a můžete použít nástroje pro validaci bezpečnostních konfigurací ještě před jejich nasazením.
Proč je IaC důležité pro bezpečnost?
Představte si, že vaše infrastruktura byla větší - měli byste development, staging a production prostředí, více GitLab runnerů, databázové servery a další. Kdybychom všechno konfigurovali manuálně, nastaly by problémy:
- Pomalá konfigurace: Manuální vytváření zdrojů je časově náročné a obtížně škálovatelné
- Nekonzistence: Obtížné zajistit stejnou konfiguraci napříč prostředími
- Chybějící dokumentace: Bez IaC nemáte přehled jak byla infrastruktura vytvořena
- Riziko miskonfigurací: Lidé dělají chyby - zapomenou uzavřít port, smazat nepotřebného uživatele
- Žádný audit trail: Bez verzování nevíte kdo co změnil a proč
- Obtížná obnova: Po útoku nevíte jak obnovit původní stav
Výhody Infrastructure as Code
- Kód je sám o sobě dokumentací vaší infrastruktury
- Můžete použít nástroje pro validaci bezpečnostních problémů
- Peer reviews a security audity kódu
- Verzování a audit trail všech změn
- Rychlá obnova po incidentu - stačí aplikovat kód
GitOps principy pro IaC
GitOps je přístup kde Git repozitář slouží jako single source of truth pro vaší infrastrukturu. Všechny změny prochází přes pull requesty, code review a automatizované testy.
GitOps Workflow pro IaC
1. Code & Version Control
Všechna infrastruktura je v Git repozitáři
- Terraform/CloudFormation/Pulumi kód
- Branch protection rules
- Required reviews před merge
2. Automated Validation
CI pipeline automaticky validuje změny
- terraform validate - syntaxe a struktura
- Trivy/Checkov - security scanning
- terraform plan - preview změn
3. Review & Approval
Lidská kontrola před nasazením
- Code review od kolegů
- Security review pro kritické změny
- Approval gates v pipeline
4. Automated Deployment
Centralizované nasazení přes pipeline
- terraform apply pouze z pipeline
- Remote state management
- Audit log všech deploymentů
IaC Security Scanning nástroje
Trivy (dříve tfsec)
Aqua Security převedla tfsec do Trivy a vývoj dál směřuje už jen tam. Příkaz trivy config skenuje Terraform i další IaC formáty.
- Terraform, CloudFormation, Kubernetes, Dockerfile
- Custom checks v Rego
- CI/CD integrace
- JSON a SARIF výstup
Checkov
Policy-as-code nástroj pro IaC scanning - Terraform, CloudFormation, Kubernetes a další.
- Terraform, OpenTofu, CloudFormation, Kubernetes, Helm a další
- 1000+ built-in policies
- Custom policies v Pythonu a YAML
- Graph-based analysis
Conftest (OPA)
Testy konfigurace psané v Rego z Open Policy Agent. Terrascan, který OPA politiky také používal, Tenable v listopadu 2025 archivoval a dál ho neudržuje.
- Rego policies
- Terraform (HCL2), YAML, JSON, Dockerfile
- Vlastní pravidla pro interní standardy
- Snadné spuštění v CI
terraform validate
Built-in Terraform příkaz pro validaci syntaxe a struktury.
- Syntax validation
- Variable references
- Module validation
- Provider requirements
Licence: HashiCorp v srpnu 2023 převedla nové verze Terraformu z MPL 2.0 na BSL 1.1. Komunitní fork OpenTofu pod Linux Foundation zůstává pod MPL 2.0 a první stabilní verzi vydal v lednu 2024. Uvedené skenery pracují se stejným HCL kódem; Checkov uvádí podporu OpenTofu výslovně.
Praktický příklad: CI/CD Pipeline pro Terraform
Joby používají rules místo zastaralých only/except a přepisují entrypoint oficiálních image. Image skenerů mají pevnou verzi: v březnu 2026 útočníci se zcizenými přístupy publikovali kompromitované verze Trivy a přepsali tagy trivy-action (CVE-2026-33634). Checkov ukládá výsledky do adresáře zadaného přes --output-file-path.
Příklad výstupu Trivy
Bezpečný Terraform kód - příklady
Security Group - správně vs špatně
S3 Bucket - encryption a access control
IaC Security Best Practices - Shrnutí
GitOps & Version Control
- Všechna infrastruktura v Git repozitáři
- Branch protection - žádné přímé pushe do main
- Required code reviews před merge
- Signed commits pro audit trail
- Semantic versioning pro releases
Automated Security Scanning
- Trivy nebo Checkov v každém PR
- Image a GitHub Actions skenerů pinovat na verzi nebo commit SHA
- Blokovat merge při kritických findings
- Generovat reporty pro audit
- Pravidelně aktualizovat pravidla
- Custom policies pro vaše požadavky
Secure Terraform Practices
- Remote state s encryption a zamykáním (S3 backend s
use_lockfile; zámek přes DynamoDB je deprecated) - Sensitive values v variables, ne v kódu
- Používat data sources místo hardcoded values
- Moduly pro znovupoužitelnou infrastrukturu
- terraform plan review před apply
Co NEDĚLAT
- Hardcoded secrets v Terraform kódu
- terraform apply z lokálního počítače
- Ignorovat security scan výsledky
- Wildcard permissions (0.0.0.0/0 na všech portech)
- Vypnuté encryption pro storage
- Chybějící tagy pro audit a cost tracking
Zdroje
- Aqua Security (GitHub): tfsec, tfsec to Trivy Migration (srpen 2023)
- Trivy: Misconfiguration Scanning (listopad 2025)
- Aqua Security (GitHub Advisory): GHSA-69fq-xp46-6x23 / CVE-2026-33634 (březen 2026)
- Bridgecrew / Prisma Cloud (GitHub): Checkov (říjen 2025)
- Checkov: CLI Command Reference (říjen 2026)
- Tenable (GitHub): Terrascan (archived) (listopad 2025)
- Open Policy Agent: Conftest (září 2026)
- HashiCorp: Terraform Backend Type s3 (srpen 2026)
- HashiCorp: HashiCorp adopts Business Source License (srpen 2023)
- OpenTofu: OpenTofu is going GA (leden 2024)
- GitLab Docs: Deprecated keywords (only / except) (říjen 2026)
- GitLab Docs: Run your CI/CD jobs in Docker containers (říjen 2026)