

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Organizations のプログラムによるアカウント閉鎖のアラートを設定する
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations"></a>

*Amazon Web Services、Richard Milner–Watts、Debojit Bhadra、Manav Yadav*

## 概要
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-summary"></a>

[CloseAccount API](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CloseAccount.html) for [AWS Organizations](https://aws.amazon.com/organizations/) を使用すると、ルート認証情報を使用してアカウントにログインしなくても、組織内のメンバーアカウントをプログラムで閉鎖できます。[RemoveAccountFromOrganization API](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RemoveAccountFromOrganization.html) は AWS Organizations 内の組織からアカウントをプルするので、スタンドアロンアカウントになります。

これらの API により、AWS アカウントを閉鎖または削除できるオペレーターの数が増加する可能性があります。AWS Organizations 管理アカウントの AWS Identity and Access Management (IAM) を通じて組織にアクセスできるすべてのユーザーは、これらの API を呼び出すことができるため、関連する多要素認証 (MFA) デバイスを持つアカウントのルート メールの所有者にアクセスが限定されません。

このパターンでは、`CloseAccount` および `RemoveAccountFromOrganization` API が呼び出されるとアラートが実装されるため、これらのアクティビティを監視できます。アラートは、「[Amazon Simple Notiﬁcation Service (Amazon SNS)](https://aws.amazon.com/sns/)」のトピックを使用します。[ウェブフック](https://api.slack.com/messaging/webhooks)経由で Slack 通知を設定することもできます。

## 前提条件と制限事項
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ AWS Organizations 内の組織
+ 組織のルート下にある組織管理アカウントにアクセスして、必要なリソースを作成します。

**機能制限**
+ 「[AWS Organizations API リファレンス](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CloseAccount.html)」で説明されているように、`CloseAccount` API では 30 日以内に閉鎖できるのは、アクティブなメンバーアカウントの 10% のみです。
+ AWS アカウントが閉鎖されると、ステータスは SUSPENDED に変わります。このステータスに移行した後 90 日間、AWS サポートはアカウントを再開できます。保留になったアカウントは 90 日後に完全に削除されます。
+ AWS Organizations 管理アカウントと API にアクセスできるユーザーには、これらのアラートを無効にする権限もあります。誤った削除ではなく悪意のある行為が主な懸念事項である場合は、このパターンで作成されたリソースを「[IAM のアクセス許可の境界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)」で保護することを検討してください。
+ API `CloseAccount ` および `RemoveAccountFromOrganization` は、米国東部 (バージニア北部) リージョン (`us-east-1`) で呼び出します。したがって、イベントを観察するには、このソリューションを `us-east-1` でデプロイする必要があります。

## アーキテクチャ
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-architecture"></a>

**ターゲットテクノロジースタック**
+ AWS Organizations
+ AWS CloudTrail
+ Amazon EventBridge
+ AWS Lambda
+ Amazon SNS

**ターゲット アーキテクチャ**

このパターンのソリューションアーキテクチャを次の図に示します。

 

![AWS Organizations でアカウント閉鎖のアラートを設定するためのアーキテクチャ](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/ba9d9db1-fab8-4e3b-a1bb-f0be91ade5c6/images/92caee55-2722-4ba2-bdd2-66f1af35dce5.png)


1. AWS Organizations は `CloseAccount` または `RemoveAccountFromOrganization` のリクエストを処理します。

1. Amazon EventBridge は AWS CloudTrail と統合されており、これらのイベントをデフォルトのイベントバスに渡します。

1. カスタム Amazon EventBridge ルールは AWS Organizations のリクエストを照合し、AWS Lambda 関数を呼び出します。

1. Lambda 関数は、ユーザーがメールでアラートを受信したり、さらに処理するためにサブスクライブできる SNS のトピックにメッセージを渡します。

1. Slack 通知が有効になっている場合、Lambda 関数は Slack ウェブフックにメッセージを配信します。

## ツール
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-tools"></a>

**AWS サービス**
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) では、インフラストラクチャをコードとして扱うことで、関連する AWS リソースやサードパーティリソースのコレクションをモデル化し、迅速かつ一貫したプロビジョニングを行い、ライフサイクル全体を通じて管理できます。
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) は、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスのイベントバスサービスです。EventBridge は、環境の変化の指標であるイベントを受信し、イベントをターゲットにルーティングするルールを適用します。ルールは、*イベントパターン*と呼ばれるイベントの構造、またはスケジュールのいずれかに基づいて、イベントをターゲットにマッチングさせます。
+ 「[AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)」 – AWS Lambda はサーバーのプロビジョニングや管理を行わずにコードの実行を支援できるコンピューティングサービスです。Lambda は必要に応じてコードを実行し、1 日あたり数個のリクエストから 1 秒あたり数千のリクエストまで自動的にスケールします。支払いは、使用したコンピューティング時間に対する料金のみになります。コードが実行されていないときに料金は発生しません。
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) は、AWS リソースの成長や拡張に伴い、環境の一元管理およびガバナンスを支援します。AWS Organizations を使用すると、プログラムによる AWS アカウントの新規作成、リソースの割り当て、ワークロードを整理するためのアカウントのグループ化、ガバナンスのアカウントまたはアカウントグループへのポリシーの適用、すべてのアカウントに単一の支払い方法を使用した請求の簡素化が可能になります。
+ [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) は、AWS インフラストラクチャ全体のアカウントアクティビティをモニタリングして記録し、ストレージ、分析、修復アクションを制御できるようにします。
+ [Amazon Simple Notification Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) は、アプリケーション間 (A2A) およびアプリケーションと人間の間 (A2P) の通信の両方に対応するフルマネージド型のメッセージングサービスです。

**その他のツール**
+ [AWS Lambda Powertools for Python ライブラリ](https://docs.powertools.aws.dev/lambda/python/latest/) は、Lambda 関数のトレース、ロギング、メトリクス、およびイベント処理機能を提供するユーティリティのセットです。

**コード**

このパターンのコードは、GitHub 内の「[AWS アカウント閉鎖通知](https://github.com/aws-samples/aws-account-closure-notifier)」リポジトリで利用できます。

このソリューションには、このパターンのアーキテクチャをデプロイする CloudFormation テンプレートが含まれています。[AWS Lambda Powertools for Python ライブラリ](https://docs.powertools.aws.dev/lambda/python/latest/)を使用してログ記録とトレースを行います。

## エピック
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-epics"></a>

### アーキテクチャをデプロイする
<a name="deploy-the-architecture"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ソリューションスタック用の CloudFormation テンプレートを起動します。 | このパターンの CloudFormation テンプレートは [GitHub リポジトリ](https://github.com/aws-samples/aws-account-closure-notifier)のメインブランチにあります。IAM ロール、EventBridge ルール、Lambda 関数、および SNS トピックをデプロイします。<br />テンプレートを起動するには:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/set-up-alerts-for-programmatic-account-closures-in-aws-organizations.html)<br />CloudFormation スタックの起動に関する詳細については、[AWS ドキュメント](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)を参照してください。 | AWS 管理者 | 
| ソリューションが正常に起動したことを検証します。　 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/set-up-alerts-for-programmatic-account-closures-in-aws-organizations.html) | AWS 管理者 | 
| SNS トピックにサブスクライブします。 | (オプション) SNS トピックをサブスクライブする場合:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/set-up-alerts-for-programmatic-account-closures-in-aws-organizations.html)<br />SNS 通知をセットアップする詳しい方法については、「[Amazon SNS ドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)」を参照してください。 | AWS 管理者 | 

### ソリューションを検証する
<a name="verify-the-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| デフォルトのイベントバスにテストイベントを送信します。 | [GitHub リポジトリ](https://github.com/aws-samples/aws-account-closure-notifier)には、テスト用に EventBridge のデフォルトイベントバスに送信できるサンプルイベントが用意されています。EventBridge ルールは、カスタムイベントソース `account.closure.notifier` を使用するイベントにも反応します。AWS サービスとしてイベントを送信することはできないため、CloudTrail イベントソースを使用してこのイベントを送信することはできません。<br />テストイベントを送信するには[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/set-up-alerts-for-programmatic-account-closures-in-aws-organizations.html) | AWS 管理者 | 
| メール通知を受信したことを確認します。 | SNS トピックをサブスクライブしているメールボックスに通知が届いていることを確認します。閉鎖されたアカウントと API コールを実行したプリンシパルの詳細が記載されたメールが届きます。 | AWS 管理者 | 
| Slack 通知を受信したことを検証します。 | (オプション) CloudFormation テンプレートをデプロイした際に `SlackWebhookEndpoint` パラメータにウェブフック URL を指定した場合は、ウェブフックにマッピングされている Slack チャネルを確認してください。閉鎖されたアカウントと API コールを実行したプリンシパルの詳細が記載されたメッセージが表示されます。 | AWS 管理者 | 

## 関連リソース
<a name="set-up-alerts-for-programmatic-account-closures-in-aws-organizations-resources"></a>
+ 「[CloseAccountアクション](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CloseAccount.html)」 (AWS Organizations API リファレンス)
+ 「[RemoveAccountFromOrganization アクション](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RemoveAccountFromOrganization.html)」 (AWS Organizations API リファレンス)
+ 「[AWS Lambda Powertools for Python](https://docs.powertools.aws.dev/lambda/python/latest/)」