Recap Series
- 第 02 場:使用 Terraform 實現 AWS 合規
- 第 03 場:從新手到開發者:一段精彩的 AWS 雲端旅程
- 第 04 場:以團隊為優先:使用 Laravel 與 Bref 進行無伺服器工程
- 第 05 場:活動開幕:AWS Community Day Hong Kong 2025
- 第 06 場:Agent-to-Agent:在 AWS 上打造可互通的 AI
- 第 07 場:運用另一種遙測資料,透過 AI Agent 加速改善
- 第 08 場:告別 Vibe Coding:運用 Kiro 實踐規格驅動開發(Spec-Driven Development)
- 第 09 場:運用 MCP 與 AI 代理進行自動化測試
- 第 10 場:以 ML 驅動的方法實現電信安全現代化
- 第 11 場:重新思考 GenAI Agent:RAG 與 MCP
- 第 12 場:運用 TAK 與 AWS 進行災害及緊急應變
- 第 13 場:從測試角度重新思考 Serverless 應用程式工作流程
- 第 14 場:運用實務 AWS FinOps 邁向雲端成功
錄影
開源專案與簡化工作的熱忱
- 建立 https://www.terraform-best-practices.com/,協助大家學習 Terraform 最佳實務。
目前的專案:compliance.tf
- 目標是簡化使用 Terraform 實作合規要求的流程。
- 合規是個很有意思的領域,但目前要用 Terraform 實作並不容易。
- 建立此專案,是為了避免每個人都得自行實作常見的服務與模式。
- 支援設定超過 50 種 AWS 服務。
工作與樂趣的省思
- 對比過去世代對打造精彩未來的熱情,以及當今對合規框架與自動化的著重。
- 相較於較具實作感的戶外活動,合規工作可能會被視為枯燥乏味。
- 強調有趣與枯燥的工作必須明確區分。
合規並非魔法
- 廠商與供應商經常將合規描述成不可或缺、所費不貲又宛如魔法的事物。
- 實際上,合規通常只是企業需要滿足的另一項業務需求。
- 符合規範代表認真看待安全與客戶信任。
共同責任原則
- AWS 負責底層基礎架構。
- 客戶則要為自己放上雲端的一切負責。
合規框架
- 市面上有許多不同框架,其中一些與 ISO 27001 接軌。
- 香港與中國大陸等地區有各自特定的限制與規範。
- 多數框架涵蓋的面向相近,例如加密、存取控制與登入機制。
- 實作一套框架後,通常也等於完成其他任一框架超過 50% 的工作。
典型的合規流程
- 確認需要滿足哪些合規要求。
- 使用 AWS 服務或第三方服務評估目前的合規態勢。
- 釐清所需工作量、已完成的工作,以及尚待處理的項目。
合規工具與服務
- Control Tower:管理合規不可或缺的服務。
- Organizations 與 Service Control Policies:用來控管邊界與權限。
- CloudFormation Guard:AWS 推出的開源專案,可搭配 Terraform 程式碼使用。
- CloudTrail 與 Config:有助於偵測設定變更與 API 呼叫。
- AWS Audit Manager:將基礎架構演進的佐證資料收集至使用 KMS 加密的 S3 儲存貯體中。
Infrastructure as Code 工具
- 目前實作必要控制措施的主要工具包括 Checkov、Trivy 與 Terrascan。
與聽眾交流工具使用情況
- 多數人使用 Checkov、Trivy。
- Checkov 是一款開源的 Infrastructure as Code(IaC)靜態程式碼分析工具,可在部署前掃描安全設定錯誤與合規問題。
- Trivy 是最受歡迎的開源安全掃描器,可用於弱點掃描、IaC、SBOM 探索、雲端掃描及 Kubernetes 安全。
- 令人意外的是,使用者很少提到 Terrascan。
- Terrascan 是由 Tenable 支援的開源 Infrastructure as Code(IaC)安全掃描器。
修正步驟
- 執行合規工具後,必須進行修正以解決設定檔中的問題。
- 理解失敗訊息、找出相關模組或參數,並加以修正。
- 或者,也可使用 compliance.tf 提供且已符合合規要求的 Terraform 模組。
DevSecOps 管線
- 此管線會在開發機器或 CI/CD 管線中執行合規檢查。
- 手動修正不合規的問題、推送程式碼,並在雲端資源中確認修正結果。
- 使用 Checkov、Prowler 與 Steampipe 等工具進行全面的合規檢查。
建議工具
- Checkov:適用於大多數情境,很適合用來進行第一輪檢查。
- Prowler:開源工具,用於檢查環境中的實際資源是否有設定錯誤。
- Steampipe:可使用 SQL 查詢雲端 API,並支援預先定義及自訂查詢。
防止組態漂移
- 強調應限制對 AWS 環境的 Console 存取權限,以防止組態漂移。
組態漂移與 ClickOps
- ClickOps 是指透過 AWS Console 等使用者介面,手動管理雲端資源。
- 人們經常希望直接存取 AWS 帳戶,因而導致 ClickOps,並造成組態漂移。
- Config Rules 等服務可用於持續驗證與修正,不過修正機制可能不容易實作。
自動修正
- 可串接 CloudTrail、EventBridge 與 AWS Systems Manager(SSM)自動化文件來實現自動修正。
- 關於 Terraform 模組、修正措施及自動更新的文件,請參閱 docs.compliance.tf。
Terraform Active Directory(AD)模組與合規要求
- 示範如何從 Terraform Registry 呼叫 Terraform Active Directory(AD)模組。
- 展示如何依照合規要求建立 S3 儲存貯體並啟用登入。
- 說明如何將合規資訊轉換成 Terraform 程式碼;由於使用了模組,這個過程可能相當複雜。
文件與 Terraform 程式碼片段
- 引導聽眾前往 docs.compliance.tf,查看特定檢查項目與有效的 Terraform 程式碼片段。
- 範例示範如何指定登入區段,以套用 SOC 2 或 PCI DSS 等不同框架。
補充資訊:Checkov、Prowler、Steampipe
- Checkov 是一款 Infrastructure as Code(IaC)靜態分析工具。它會在開發生命週期中採取左移策略,掃描 Terraform、CloudFormation、Kubernetes manifest 與 Dockerfile 等設定檔,在部署前找出設定錯誤與合規違規項目。
- Prowler 是一款命令列工具,可針對即時雲端環境(AWS、Azure、Google Cloud 與 Kubernetes)執行安全、合規與最佳實務檢查。它主要是一款 Cloud Security Posture Management(CSPM)工具,可產生對應 CIS Benchmarks、PCI-DSS 與 ISO 27001 等業界標準的詳細報告。
- Steampipe 是一款獨特的工具,使用 Postgres Foreign Data Wrapper 將雲端供應商、API 與基礎架構等外部系統的資料呈現為關聯式資料庫,讓使用者能以 SQL 查詢雲端資源。這種方式可進行複雜的臨時安全與合規檢查,並透過 SQL 查詢建立自訂儀表板;相較於 Prowler 的循序檢查,它提供了另一種評估方式。
補充資訊 2:CloudTrail、EventBridge 與 SSM 自動化文件
簡介
- AWS CloudTrail、EventBridge 與 SSM 自動化文件是 AWS 生態系中各自獨立、卻經常整合使用的服務,可用於管理與自動化雲端作業。
AWS CloudTrail
- 用途:CloudTrail 是一項 AWS 服務,可記錄 AWS 帳戶中使用者、角色或 AWS 服務所採取的動作。它會記錄透過 AWS Management Console、AWS SDK、命令列工具與其他 AWS 服務發出的 API 呼叫。
- 功能:提供事件歷程,記錄呼叫者、呼叫時間、來源 IP 位址及受影響資源等詳細資訊,以支援安全分析、資源變更追蹤與疑難排解。
- 使用案例:安全稽核、合規、營運疑難排解,以及辨識未經授權的活動。
Amazon EventBridge
- 用途:EventBridge 是一項無伺服器事件匯流排服務,能透過事件輕鬆串接應用程式。它會將來自不同來源的事件路由至目標,讓您建置可擴展的事件驅動應用程式。
- 功能:可接收 AWS 服務(例如 CloudTrail)、自訂應用程式與 SaaS 合作夥伴的事件。接著,您可以定義規則來篩選事件,並將其路由至各種目標,包括 AWS Lambda 函式、Amazon SNS 主題、Amazon SQS 佇列與 AWS Systems Manager Automation。
- 使用案例:即時事件處理、建置鬆散耦合的微服務、整合第三方應用程式,以及根據事件觸發自動化工作流程。
AWS Systems Manager(SSM)自動化文件
- 用途:SSM 自動化文件是預先定義或自行建立的指令碼或 Runbook,其中定義一系列步驟,以自動執行 AWS 資源的常見營運工作。
- 功能:可用來執行啟動或停止執行個體、套用修補程式、建立 AMI,以及執行自訂指令碼等操作。這些文件可手動執行、排程執行,或由事件觸發。
- 使用案例:修補程式管理、執行個體生命週期管理、合規強制執行,以及自動化事件回應。
整合範例
這些服務可以結合成強大的自動化工作流程。例如,CloudTrail 事件若顯示安全群組遭到未授權變更,就能觸發 EventBridge 規則。該規則接著可叫用 SSM Automation Document,自動還原變更、通知管理員或隔離受影響的資源,藉此提升安全性與營運效率。
