本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 AWS Organizations 中設定程式設計帳戶關閉提醒
由 Richard Milner-Watts (AWS)、Debojit Bhadra (AWS) 和 Manav Yadav (AWS) 建立
Summary
AWS Organizations
這些 APIs 可能會增加可以關閉或移除 AWS 帳戶的運算子數量。所有在 AWS Organizations 管理帳戶中透過 AWS Identity and Access Management (IAM) 存取組織的使用者可以呼叫這些 APIs,因此存取權不限於帳戶根電子郵件的擁有者,以及任何相關聯的多重要素驗證 (MFA) 裝置。 AWS Organizations
此模式會在呼叫 CloseAccount
和 RemoveAccountFromOrganization
APIs時實作提醒,讓您可以監控這些活動。對於提醒,它使用 Amazon Simple Notification Service
先決條件和限制
先決條件
作用中的 AWS 帳戶
AWS Organizations 中的組織
在組織的根目錄下存取組織管理帳戶,以建立所需的資源
限制
如 AWS Organizations API 參考中所述,
CloseAccount
API 僅允許 10% 的作用中成員帳戶在滾動 30 天內關閉。當 AWS 帳戶關閉時,其狀態會變更為 SUSPENDED。在此狀態轉換後 90 天內,AWS Support 可以重新開啟帳戶。90 天後,帳戶會永久刪除。
有權存取 AWS Organizations 管理帳戶和 APIs的使用者,也可能具有停用這些提醒的許可。如果主要問題是惡意行為,而不是意外刪除,請考慮使用 IAM 許可界限保護此模式建立的資源。
API 呼叫
CloseAccount
和RemoveAccountFromOrganization
會在美國東部 (維吉尼亞北部) 區域 (us-east-1
) 處理。因此,您必須部署此解決方案us-east-1
,才能觀察事件。
架構
目標技術堆疊
AWS Organizations
AWS CloudTrail
Amazon EventBridge
AWS Lambda
Amazon SNS
目標架構
下圖顯示此模式的解決方案架構。

AWS Organizations 會處理
CloseAccount
或RemoveAccountFromOrganization
請求。Amazon EventBridge 已與 AWS CloudTrail 整合,可將這些事件交付至預設事件匯流排。
自訂 Amazon EventBridge 規則符合 AWS Organizations 請求並呼叫 AWS Lambda 函數。
Lambda 函數會傳送訊息至 SNS 主題,使用者可以訂閱該主題,以接收電子郵件提醒或進一步處理。
如果啟用 Slack 通知,Lambda 函數會傳送訊息給 Slack Webhook。
工具
AWS 服務
AWS CloudFormation 透過將基礎設施視為程式碼,提供建立相關 AWS 和第三方資源集合模型、快速一致地佈建資源,以及在整個生命週期中管理資源的方法。
Amazon EventBridge 是一種無伺服器事件匯流排服務,可用來將應用程式與來自各種來源的資料連線。EventBridge 會收到事件、環境變更的指標,並套用規則將事件路由至目標。根據事件結構、稱為事件模式或排程,規則會將事件與目標配對。
AWS Lambda 是一種運算服務,支援執行程式碼,無需佈建或管理伺服器。Lambda 只會在需要時執行程式碼,並自動擴展,從每天的幾個請求擴展到每秒數千個請求。您只需為使用的運算時間支付費用。程式碼未執行時無須付費。
AWS Organizations 可協助您集中管理和管理環境。使用 AWS Organizations,您可以以程式設計方式建立新的 AWS 帳戶,並配置資源、分組帳戶來組織工作流程、將政策套用到帳戶或群組以進行控管,以及使用所有帳戶的單一付款方式來簡化帳單。
AWS CloudTrail 會監控和記錄 AWS 基礎設施的帳戶活動,並讓您控制儲存、分析和修復動作。
Amazon Simple Notification Service (Amazon SNS) 是application-to-application(A2A) 和application-to-person(A2P) 通訊的全受管傳訊服務。
其他工具
AWS Lambda Powertools for Python 程式庫
是一組公用程式,可為 Lambda 函數提供追蹤、記錄、指標和事件處理功能。
Code
此模式的程式碼位於 GitHub AWS Account Closer Notifier
解決方案包含 CloudFormation 範本,可部署此模式的架構。它使用適用於 Python 的 AWS Lambda Powertools 程式庫
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
啟動解決方案堆疊的 CloudFormation 範本。 | 此模式的 CloudFormation 範本位於 GitHub 儲存庫 若要啟動範本:
如需啟動 CloudFormation 堆疊的詳細資訊,請參閱 AWS 文件。 | AWS 管理員 |
確認解決方案已成功啟動。 |
| AWS 管理員 |
訂閱 SNS 主題。 | (選用) 如果您想要訂閱 SNS 主題:
如需設定 SNS 通知的詳細資訊,請參閱 Amazon SNS 文件。 | AWS 管理員 |
任務 | 描述 | 所需的技能 |
---|---|---|
將測試事件傳送至預設事件匯流排。 | GitHub 儲存庫 注意您無法使用 CloudTrail 事件來源傳送此事件,因為無法以 AWS 服務傳送事件。 若要傳送測試事件:
| AWS 管理員 |
驗證是否已收到電子郵件通知。 | 檢查訂閱 SNS 主題的信箱以取得通知。您應該會收到一封電子郵件,其中包含已關閉的帳戶和執行 API 呼叫的委託人的詳細資訊。 | AWS 管理員 |
確認已收到 Slack 通知。 | (選用) 如果您在部署 CloudFormation 範本時為 | AWS 管理員 |
相關資源
CloseAccount 動作 (AWS Organizations API 參考)
RemoveAccountFromOrganization 動作 (AWS Organizations API 參考)