基礎建設即程式碼 進階

什麼是 Policy as Code?如何在 IaC 流程中實施合規控管?

AI 練習作答

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 評分