本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon Macie 保護 CloudWatch Logs 中的敏感資料
Anisha Salunkhe、Omar Franco 和 David Guardiola,Amazon Web Services
總結
此模式說明如何使用 Amazon Macie 透過實作全面的安全監控工作流程,自動偵測 Amazon CloudWatch Logs 日誌群組中的敏感資料。解決方案使用 Amazon Data Firehose 將 CloudWatch Logs 項目串流至 Amazon Simple Storage Service (Amazon S3)。Macie 會定期掃描此儲存貯體是否有個人身分識別資訊 (PII)、財務資料和其他敏感內容。基礎設施是透過佈建所有必要 AWS 服務 和 組態的 AWS CloudFormation 範本進行部署。
CloudWatch Logs 通常包含的應用程式資料可能會不小心包含敏感的使用者資訊。這可能會產生合規和安全性風險。傳統日誌監控方法缺乏自動化敏感資料偵測功能。這可能會導致難以即時識別和回應潛在的資料暴露。
此模式透過自動偵測和提醒記錄系統中的敏感資料,協助安全團隊和合規主管維護資料機密性。此解決方案可透過 Amazon Simple Notification Service (Amazon SNS) 通知啟用主動事件回應,並自動將敏感資料隔離到安全的 Amazon S3 儲存貯體。您可以自訂偵測模式,並將工作流程與您現有的安全操作程序整合。
先決條件和限制
先決條件
作用中 AWS 帳戶
建立 CloudFormation 堆疊的許可
您要監控的 CloudWatch Logs 日誌群組
接收來自 Amazon SNS 通知的作用中電子郵件地址
AWS CloudShell 的存取權限
限制
Macie 受限於服務配額。如需詳細資訊,請參閱 Macie 文件中的 Macie 配額。
Architecture
目標架構
下圖顯示使用 Macie 檢查 CloudWatch Logs 日誌項目是否有敏感資料的工作流程。

工作流程會顯示下列步驟:
CloudWatch Logs 日誌群組會產生受訂閱篩選條件約束的日誌。
訂閱篩選條件會將日誌轉送至 Amazon Data Firehose。
當日誌通過 Amazon Data Firehose 交付串流時,會使用 AWS Key Management Service (AWS KMS) 金鑰加密日誌。
交付串流會將日誌交付至 Amazon S3 中匯出的日誌儲存貯體。
Amazon EventBridge 會在每天凌晨 4 點啟動 AWS Lambda 函數,以啟動 Macie 掃描匯出日誌儲存貯體中的敏感資料。
如果 Macie 識別儲存貯體中的敏感資料,Lambda 函數會從匯出的日誌儲存貯體中移除日誌,並使用 加密日誌 AWS KMS key。
Lambda 函數會隔離包含資料隔離儲存貯體中敏感資料的日誌。
敏感資料的識別會啟動 Amazon SNS 主題。
Amazon SNS 會傳送電子郵件通知至您設定的電子郵件地址,其中包含敏感資料日誌的相關資訊。
部署的資源
CloudFormation 範本會在您的目標和 中部署下列資源 AWS 帳戶 AWS 區域:
工具
AWS 服務
AWS CloudFormation 可協助您設定 AWS 資源、快速且一致地佈建資源,以及在整個 AWS 帳戶 和 生命週期中管理資源 AWS 區域。
Amazon CloudWatch Logs 可協助您集中所有系統、應用程式的日誌, AWS 服務 以便您可以監控日誌並將其安全地存檔。
Amazon Data Firehose 可協助您將即時串流資料交付至其他 AWS 服務自訂 HTTP 端點,以及受支援的第三方服務供應商所擁有的 HTTP 端點。
Amazon EventBridge 是一種無伺服器事件匯流排服務,可協助您將應用程式與來自各種來源的即時資料連線。例如, AWS Lambda 函數、使用 API 目的地的 HTTP 調用端點或其他事件匯流排等來源 AWS 帳戶。
AWS Key Management Service (AWS KMS) 可協助您建立和控制密碼編譯金鑰,以協助保護您的資料。
AWS Lambda 是一項運算服務,可協助您執行程式碼,無需佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需按使用的運算時間付費。
Amazon Macie 可協助您探索敏感資料、提供資料安全風險的可見性,並實現對這些風險的自動化保護。
Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和用戶端之間的訊息交換,包括 Web 伺服器和電子郵件地址。
Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。
程式碼儲存庫
此模式的程式碼可在 GitHub sample-macie-for-securing-cloudwatch-logs
最佳實務
遵循 CloudFormation 文件中的CloudFormation 最佳實務。
史詩
| 任務 | Description | 所需的技能 |
|---|---|---|
複製程式碼儲存庫。 | 輸入下列命令,將儲存庫複製到本機工作站:
| 應用程式開發人員 |
(選用) 編輯 CloudFormation 範本。 |
| 應用程式開發人員 |
選項 1 – 使用具有命令列參數的指令碼進行部署。 | 輸入下列命令,使用命令列參數來部署解決方案,其中 的值
| 一般 AWS |
選項 2 – 使用具有環境變數的指令碼進行部署。 |
| 一般 AWS |
選項 3 – 使用 部署 AWS CLI。 | 輸入下列命令,使用 來部署解決方案 AWS CLI,其中 的值
| |
選項 4 – 透過 部署 AWS 管理主控台。 |
| 一般 AWS |
監控部署狀態並確認部署。 |
| 一般 AWS |
確認 Amazon SNS 訂閱。 | 請遵循 Amazon SNS 文件中的確認 Amazon SNS 訂閱中的指示,以確認您的 Amazon SNS 訂閱。 | 應用程式開發人員 |
| 任務 | Description | 所需的技能 |
|---|---|---|
選項 1 – 使用自動報告進行測試。 | 如果您使用預設堆疊名稱,請輸入下列命令來測試解決方案:
如果您使用自訂堆疊名稱,請輸入下列命令來測試解決方案:
如果您使用自訂堆疊名稱和自訂參數,請輸入下列命令來測試解決方案:
| 一般 AWS |
選項 2 – 使用目標驗證進行測試。 |
| 一般 AWS |
| 任務 | Description | 所需的技能 |
|---|---|---|
選項 1 – 執行自動清除。 | 如果您使用預設堆疊名稱,請輸入下列命令來刪除堆疊:
如果您使用自訂堆疊名稱,請輸入下列命令來刪除堆疊:
如果您使用自訂堆疊名稱和自訂參數,請輸入下列命令來刪除堆疊:
| 一般 AWS |
選項 2 – step-by-step清除。 |
| 一般 AWS |
驗證清除。 |
| 一般 AWS |
疑難排解
| 問題 | 解決方案 |
|---|---|
CloudFormation 堆疊狀態顯示 CREATE_FAILED。 | CloudFormation 範本設定為將日誌發佈至 CloudWatch Logs。您可以在 中檢視日誌, AWS 管理主控台 這樣您就不必連線到 Amazon EC2 執行個體。如需詳細資訊,請參閱在 主控台中檢視 CloudFormation 日誌 |
CloudFormation | 某些資源在刪除之前必須先清空。例如,您必須刪除 Amazon S3 儲存貯體中的所有物件或移除 Amazon EC2 安全群組中的所有執行個體,才能刪除該儲存貯體或安全群組。如需詳細資訊,請參閱 Amazon S3 文件中的刪除堆疊失敗。 |
剖析參數時發生錯誤。 | 當您使用 AWS CLI 或 CloudFormation 主控台傳入值時,請新增引號。 |
相關資源
儲存體的架構最佳實務
(AWS 網站) 指標篩選條件、訂閱篩選條件、篩選條件日誌事件和 Live Tail 的篩選條件模式語法 (CloudWatch Logs 文件)
使用 Amazon CloudWatch 設計和實作記錄和監控 (AWS 方案指引)
故障診斷 CloudFormation(CloudFormation 文件)