基礎建設即程式碼 進階
什麼是 Policy as Code?如何在 IaC 流程中實施合規控管?
Policy as Code
將安全和合規規則以程式碼的形式定義,並在 CI/CD 或部署流程中自動化執行,確保基礎設施變更符合組織政策。
解決的問題
手動審查 Terraform plan 難以擴展:
- 人工審查容易漏看安全問題
- 無法強制執行標準(如:所有 S3 bucket 必須加密)
- 難以確保跨團隊的一致性
主流工具
Open Policy Agent (OPA) + Conftest 通用的策略引擎,使用 Rego 語言撰寫策略:
deny[msg] { input.resource.aws_s3_bucket[name].acl == "public-read" msg := sprintf("S3 bucket %v must not be public", [name]) }
Terraform Sentinel(Terraform Cloud/Enterprise) HashiCorp 官方的政策框架,深度整合 Terraform 生命週期。
Checkov 專為 IaC 設計的靜態分析工具,支援 Terraform、CloudFormation、Kubernetes YAML。
典型政策範例
- 所有資源必須有特定 tags(cost-center、owner)
- 禁止使用過舊的 AMI 版本
- 資料庫不能有公開存取入口
- 生產環境的資源不能被刪除(prevent_destroy)
- 加密必須啟用(EBS、S3、RDS)
在 CI/CD 中的位置
Git Push → Terraform Plan → Policy Check → 人工審查 → Terraform Apply
政策檢查應在 plan 之後、apply 之前執行,快速失敗以節省時間。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
