本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控 IAM 根使用者活動
創建者:莫斯特法·布魯吉 (AWS)
代碼存儲庫:aws-iam-root-user-活動監視器 | 環境:PoC 或試點 | 技術:安全性、身分識別、合規性、管理與治理 |
工作負載:所有其他工作 | AWS 服務:Amazon EventBridge;AWS Lambda;Amazon SNS;AWS Identity and Access Management |
Summary
每個 Amazon Web Services (AWS) 帳戶都有一個根使用者。作為 AWS Identity and Access Management (IAM) 的安全最佳實務,我們建議您使用 root 使用者完成只有 root 使用者可以執行的任務。如需完整清單,請參閱 AWS 帳戶管理參考指南中的需要 root 使用者登入資料的任務。由於 root 使用者擁有所有 AWS 資源和帳單資訊的完整存取權,因此建議您不要使用此帳戶並對其進行監控是否有任何活動,這可能表示 root 使用者登入資料已遭入侵。
使用此模式,您可以設定事件驅動的架構
使用 IAM 根使用者登入資料時,Amazon CloudWatch 和 AWS 會分別在日誌和追蹤中 CloudTrail 記錄活動。在支點帳戶中,Amazon EventBridge 規則會將事件傳送到中樞帳戶中的中央事件匯流排。在集線器帳戶中, EventBridge 規則會將事件傳送至 AWS Lambda 函數。該函數使用 Amazon Simple Notification Service (Amazon SNS) 主題,通知您根使用者活動。
在此模式中,您可以使用 AWS CloudFormation 範本在支點帳戶中部署監控和事件處理服務。您可以使用 T HashiCorp erraform 範本在 Hub 帳戶中部署事件管理和通知服務。
先決條件和限制
先決條件
在 AWS 環境中部署 AWS 資源的許可。
部署 CloudFormation 堆疊集的權限。如需詳細資訊,請參閱堆疊集作業的先決條CloudFormation 件 (說明文件)。
已安裝並準備使用的地形。如需詳細資訊,請參閱開始使用 — AWS
(地形文件)。 每個支點帳戶中的現有追蹤。如需詳細資訊,請參閱 AWS 入門 CloudTrail (CloudTrail 文件)。
追蹤設定為將事件傳送至 CloudWatch 記錄檔。如需詳細資訊,請參閱將事件傳送至 CloudWatch 記錄CloudTrail 檔 (文件)。
您的中樞和支點帳戶必須由 AWS Organizations 管理。
架構
下圖說明實作的建置區塊。
使用 IAM 根使用者登入資料時, CloudWatch 並將活動分別 CloudTrail 記錄在日誌和追蹤中。
在分支帳戶中, EventBridge 規則會將事件傳送至中樞帳戶中的中央事件匯流排。
在中樞帳戶中, EventBridge 規則會將事件傳送至 Lambda 函數。
Lambda 函數使用 Amazon SNS 主題來通知您根使用者活動。
工具
AWS 服務
AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和區域的整個生命週期中進行管理。
AWS 可 CloudTrail協助您稽核 AWS 帳戶的管理、合規和營運風險。
Amazon CloudWatch Logs 可協助您集中管理所有系統、應用程式和 AWS 服務的日誌,以便您可以監控和安全地存檔日誌。
Amazon EventBridge 是無伺服器事件匯流排服務,可協助您將應用程式與來自各種來源的即時資料連接起來。例如,AWS Lambda 函數、使用 API 目的地的 HTTP 叫用端點,或其他 AWS 帳戶中的事件匯流排。
AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。
AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動調整規模,因此您只需為使用的運算時間付費。
Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和客戶之間的訊息交換,包括 Web 伺服器和電子郵件地址。
其他工具和服務
Terraform
是一個 CLI 應用程式,用於佈建和管理雲端基礎架構和資源,以組態檔的形式使用程式碼。
代碼存儲庫
此模式的原始程式碼和範本可在GitHub 儲存庫
包含您在 Hub 帳戶中部署的資源的 Terraform 範本
您在分支帳戶中部署為堆疊集執行個體的 CloudFormation 範本
存放庫具有以下整體結構。
. |__README.md |__spoke-stackset.yaml |__hub.tf |__root-activity-monitor-module |__main.tf # contains Terraform code to deploy resources in the Hub account |__iam # contains IAM policies JSON files |__ lambda-assume-policy.json # contains trust policy of the IAM role used by the Lambda function |__ lambda-policy.json # contains the IAM policy attached to the IAM role used by the Lambda function |__outputs # contains Lambda function zip code
「史詩」區段提供部署範本的 step-by-step 指示。
史诗
任務 | 描述 | 所需技能 |
---|---|---|
複製範例程式碼儲存庫。 |
| 一般 AWS |
更新地形範本。 |
| 一般 AWS |
將資源部署到 AWS 中樞帳戶。 |
| 一般 AWS |
任務 | 描述 | 所需技能 |
---|---|---|
部署 CloudFormation 範本。 |
如需詳細資訊和指示,請參閱建立堆疊集 (說明CloudFormation 文件)。 | 一般 AWS |
任務 | 描述 | 所需技能 |
---|---|---|
使用根使用者身份證明。 |
| 一般 AWS |
相關資源
安全性最佳做法 (IAM 文件)
使用 StackSets(CloudFormation 文檔)
開始使用
(地形文件)
其他資訊
Amazon GuardDuty 是一種持續的安全監控服務,可分析和處理日誌,以識別 AWS 環境中的未預期和潛在未經授權的活動。作為此解決方案的替代方案,如果您已啟用 GuardDuty,它可以在使用 root 使用者認證時提醒您。發 GuardDuty 現項目為Policy:IAMUser/RootCredentialUsage
,預設嚴重性為「低」。如需詳細資訊,請參閱管理 Amazon GuardDuty 發現項目。