翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Organizations のプログラムによるアカウント閉鎖のアラートを設定する
作成者: Richard Milner-Watts (AWS)、Debojit Bhadra (AWS)、Manav Yadav (AWS)
コードリポジトリ: AWS アカウント管理通知子 | 環境: 実稼働 | テクノロジー: 管理とガバナンス |
AWS サービス: AWS CloudTrail、Amazon EventBridge、AWS Lambda 、AWS Organizations 、Amazon SNS |
[概要]
AWS Organizations
これらの API により、AWS アカウントを閉鎖または削除できるオペレーターの数が増加する可能性があります。AWS Organizations 管理アカウントの AWS Identity and Access Management (IAM) を通じて組織にアクセスできるすべてのユーザーは、これらの API を呼び出すことができるため、関連する多要素認証 (MFA) デバイスを持つアカウントのルート メールの所有者にアクセスが限定されません。
このパターンでは、CloseAccount
および RemoveAccountFromOrganization
API が呼び出されるとアラートが実装されるため、これらのアクティビティを監視できます。アラートは、「Amazon Simple Notification Service (Amazon SNS)
前提条件と制限
前提条件
アクティブな AWS アカウント
AWS Organizations 内の組織
組織のルート下にある組織管理アカウントにアクセスして、必要なリソースを作成します。
機能制限
「AWS Organizations API リファレンス」で説明されているように、
CloseAccount
API では 30 日以内に閉鎖できるのは、アクティブなメンバーアカウントの 10% のみです。AWS アカウントが閉鎖されると、ステータスは SUSPENDED に変わります。このステータスに移行した後 90 日間、AWS サポートはアカウントを再開できます。保留になったアカウントは 90 日後に完全に削除されます。
AWS Organizations 管理アカウントと API にアクセスできるユーザーには、これらのアラートを無効にする権限もあります。誤った削除ではなく悪意のある行為が主な懸念事項である場合は、このパターンで作成されたリソースを「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 ウェブフックにメッセージを配信します。
ツール
AWS サービス
AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、関連する AWS およびサードパーティリソースのコレクションをモデル化し、迅速かつ一貫してプロビジョニングし、ライフサイクル全体を通じて管理する方法を提供します。
Amazon EventBridge は、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスイベントバスサービスです。 EventBridge はイベントを受信し、環境の変化を示すインジケータを受け取り、イベントをターゲットにルーティングするルールを適用します。ルールは、イベントパターンと呼ばれるイベントの構造、またはスケジュールのいずれかに基づいて、イベントをターゲットにマッチングさせます。
「AWS Lambda」 – AWS Lambda はサーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。支払いは、使用したコンピューティング時間に対する料金のみになります。コードが実行されていないときに料金は発生しません。
AWS Organizations は、AWS リソースの成長や拡張に伴い、環境の一元管理およびガバナンスを支援します。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 アカウントクローザー通知子
ソリューションには、このパターンのアーキテクチャをデプロイする CloudFormation テンプレートが含まれています。AWS Lambda Powertools for Python ライブラリ
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
ソリューションスタックの 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 リファレンス)