選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 AWS Organizations 中設定程式設計帳戶關閉提醒 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 AWS Organizations 中設定程式設計帳戶關閉提醒

由 Richard Milner-Watts (AWS)、Debojit Bhadra (AWS) 和 Manav Yadav (AWS) 建立

Summary

AWS OrganizationsCloseAccount API 可讓您以程式設計方式關閉組織內的成員帳戶,而不必使用根登入資料登入帳戶。RemoveAccountFromOrganization API 會從 AWS Organizations 中的組織提取帳戶,使其成為獨立帳戶。

這些 APIs 可能會增加可以關閉或移除 AWS 帳戶的運算子數量。所有在 AWS Organizations 管理帳戶中透過 AWS Identity and Access Management (IAM) 存取組織的使用者可以呼叫這些 APIs,因此存取權不限於帳戶根電子郵件的擁有者,以及任何相關聯的多重要素驗證 (MFA) 裝置。 AWS Organizations

此模式會在呼叫 CloseAccountRemoveAccountFromOrganization APIs時實作提醒,讓您可以監控這些活動。對於提醒,它使用 Amazon Simple Notification Service (Amazon SNS) 主題。您也可以透過 Webhook 設定 Slack 通知。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • AWS Organizations 中的組織

  • 在組織的根目錄下存取組織管理帳戶,以建立所需的資源

限制

  • AWS Organizations API 參考中所述,CloseAccountAPI 僅允許 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 中設定提醒以進行帳戶關閉的架構
  1. AWS Organizations 會處理 CloseAccountRemoveAccountFromOrganization請求。

  2. Amazon EventBridge 已與 AWS CloudTrail 整合,可將這些事件交付至預設事件匯流排。

  3. 自訂 Amazon EventBridge 規則符合 AWS Organizations 請求並呼叫 AWS Lambda 函數。

  4. Lambda 函數會傳送訊息至 SNS 主題,使用者可以訂閱該主題,以接收電子郵件提醒或進一步處理。

  5. 如果啟用 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) 通訊的全受管傳訊服務。

其他工具

Code

此模式的程式碼位於 GitHub AWS Account Closer Notifier 儲存庫中。

解決方案包含 CloudFormation 範本,可部署此模式的架構。它使用適用於 Python 的 AWS Lambda Powertools 程式庫來提供記錄和追蹤。

史詩

任務描述所需的技能

啟動解決方案堆疊的 CloudFormation 範本。

此模式的 CloudFormation 範本位於 GitHub 儲存庫的主分支中。它會部署 IAM 角色、EventBridge 規則、Lambda 函數和 SNS 主題。

若要啟動範本:

  1. 複製 GitHub 儲存庫以取得解決方案程式碼的副本。

  2. 開啟 AWS Organizations 管理帳戶的 AWS 管理主控台。

  3. 選擇美國東部 (維吉尼亞北部) 區域 (us-east-1),然後開啟 CloudFormation 主控台

  4. 使用 account-closure-notifier.yml 範本並指定下列值來建立堆疊: 

    • 堆疊名稱:aws-account-closure-notifier-stack 

    • ResourcePrefix 參數: aws-account-closure-notifier

    • SlackNotification 參數:如果需要 Slack 通知,請將此設定變更為 true

    • SlackWebhookEndpoint 參數:如果需要 Slack 通知,請指定 Webhook URL。

如需啟動 CloudFormation 堆疊的詳細資訊,請參閱 AWS 文件

AWS 管理員

確認解決方案已成功啟動。

  1. 等待 CloudFormation 堆疊達到 CREATE_COMPLETE 狀態。

  2. 在 中開啟 EventBridge 主控台us-east-1

  3. 確認已建立名為 的新規則aws-account-closure-notifier-event-rule

AWS 管理員

訂閱 SNS 主題。

(選用) 如果您想要訂閱 SNS 主題:

  1. 在 中開啟 Amazon SNS 主控台us-east-1,並尋找名為 的主題aws-account-closure-notifier-sns-topic

  2. 選擇主題名稱,然後選擇建立訂閱

  3. 對於通訊協定,選擇電子郵件

  4. 對於端點,指定應該接收通知的電子郵件地址,然後選擇建立訂閱

  5. 檢查您的電子郵件收件匣是否有來自 AWS Notifications 的訊息。使用此電子郵件中的連結來確認訂閱。

如需設定 SNS 通知的詳細資訊,請參閱 Amazon SNS 文件

AWS 管理員

部署架構

任務描述所需的技能

啟動解決方案堆疊的 CloudFormation 範本。

此模式的 CloudFormation 範本位於 GitHub 儲存庫的主分支中。它會部署 IAM 角色、EventBridge 規則、Lambda 函數和 SNS 主題。

若要啟動範本:

  1. 複製 GitHub 儲存庫以取得解決方案程式碼的副本。

  2. 開啟 AWS Organizations 管理帳戶的 AWS 管理主控台。

  3. 選擇美國東部 (維吉尼亞北部) 區域 (us-east-1),然後開啟 CloudFormation 主控台

  4. 使用 account-closure-notifier.yml 範本並指定下列值來建立堆疊: 

    • 堆疊名稱:aws-account-closure-notifier-stack 

    • ResourcePrefix 參數: aws-account-closure-notifier

    • SlackNotification 參數:如果需要 Slack 通知,請將此設定變更為 true

    • SlackWebhookEndpoint 參數:如果需要 Slack 通知,請指定 Webhook URL。

如需啟動 CloudFormation 堆疊的詳細資訊,請參閱 AWS 文件

AWS 管理員

確認解決方案已成功啟動。

  1. 等待 CloudFormation 堆疊達到 CREATE_COMPLETE 狀態。

  2. 在 中開啟 EventBridge 主控台us-east-1

  3. 確認已建立名為 的新規則aws-account-closure-notifier-event-rule

AWS 管理員

訂閱 SNS 主題。

(選用) 如果您想要訂閱 SNS 主題:

  1. 在 中開啟 Amazon SNS 主控台us-east-1,並尋找名為 的主題aws-account-closure-notifier-sns-topic

  2. 選擇主題名稱,然後選擇建立訂閱

  3. 對於通訊協定,選擇電子郵件

  4. 對於端點,指定應該接收通知的電子郵件地址,然後選擇建立訂閱

  5. 檢查您的電子郵件收件匣是否有來自 AWS Notifications 的訊息。使用此電子郵件中的連結來確認訂閱。

如需設定 SNS 通知的詳細資訊,請參閱 Amazon SNS 文件

AWS 管理員
任務描述所需的技能

將測試事件傳送至預設事件匯流排。

GitHub 儲存庫提供範例事件,您可以傳送到 EventBridge 預設事件匯流排進行測試。EventBridge 規則也會對使用自訂事件來源 的事件做出反應account.closure.notifier

注意

您無法使用 CloudTrail 事件來源傳送此事件,因為無法以 AWS 服務傳送事件。

若要傳送測試事件:

  1. 在 中開啟 EventBridge 主控台us-east-1

  2. 在導覽窗格的 Buss 下,選擇事件匯流排,然後選擇預設事件匯流排。

  3. 選擇傳送事件

  4. 針對事件來源,輸入 account.closure.notifier

  5. 針對詳細資訊類型,請輸入 AWS API Call via CloudTrail

  6. 如需事件詳細資訊tests/dummy-event.json請從 GitHub 儲存庫將 的內容複製並貼到文字方塊中。

  7. 選擇傳送以啟動通知工作流程。

AWS 管理員

驗證是否已收到電子郵件通知。

檢查訂閱 SNS 主題的信箱以取得通知。您應該會收到一封電子郵件,其中包含已關閉的帳戶和執行 API 呼叫的委託人的詳細資訊。

AWS 管理員

確認已收到 Slack 通知。

(選用) 如果您在部署 CloudFormation 範本時為 SlackWebhookEndpoint 參數指定 Webhook URL,請檢查映射至 Webhook 的 Slack 頻道。它應該會顯示訊息,其中包含已關閉帳戶的詳細資訊,以及執行 API 呼叫的委託人。

AWS 管理員

驗證解決方案

任務描述所需的技能

將測試事件傳送至預設事件匯流排。

GitHub 儲存庫提供範例事件,您可以傳送到 EventBridge 預設事件匯流排進行測試。EventBridge 規則也會對使用自訂事件來源 的事件做出反應account.closure.notifier

注意

您無法使用 CloudTrail 事件來源傳送此事件,因為無法以 AWS 服務傳送事件。

若要傳送測試事件:

  1. 在 中開啟 EventBridge 主控台us-east-1

  2. 在導覽窗格的 Buss 下,選擇事件匯流排,然後選擇預設事件匯流排。

  3. 選擇傳送事件

  4. 針對事件來源,輸入 account.closure.notifier

  5. 針對詳細資訊類型,請輸入 AWS API Call via CloudTrail

  6. 如需事件詳細資訊tests/dummy-event.json請從 GitHub 儲存庫將 的內容複製並貼到文字方塊中。

  7. 選擇傳送以啟動通知工作流程。

AWS 管理員

驗證是否已收到電子郵件通知。

檢查訂閱 SNS 主題的信箱以取得通知。您應該會收到一封電子郵件,其中包含已關閉的帳戶和執行 API 呼叫的委託人的詳細資訊。

AWS 管理員

確認已收到 Slack 通知。

(選用) 如果您在部署 CloudFormation 範本時為 SlackWebhookEndpoint 參數指定 Webhook URL,請檢查映射至 Webhook 的 Slack 頻道。它應該會顯示訊息,其中包含已關閉帳戶的詳細資訊,以及執行 API 呼叫的委託人。

AWS 管理員

相關資源

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。