

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

# Amazon SES を使用して 1 つの E メールアドレス AWS アカウント に複数の を登録する
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses"></a>

*Joe Wozniak と Shubhangi Vishwakarma、Amazon Web Services*

## 概要
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-summary"></a>

このパターンでは、 に関連付けられている E メールアドレスから実際の E メールアドレスを切り離す方法について説明します AWS アカウント。アカウントの作成時に一意の E メールアドレスを指定 AWS アカウント する必要があります。一部の組織では、 が管理するチームが、メッセージングチームで多くの一意の E メールアドレスを管理する負担を引き受け AWS アカウント る必要があります。これは、多くの を管理する大規模な組織では難しい場合があります AWS アカウント。さらに、メールシステムが「[Sieve Email Filtering: Subaddress Extension (RFC 5233)](https://datatracker.ietf.org/doc/html/rfc5233)」で定義されているように、*プラスアドレス*または*サブアドレス*を許可しない場合、プラス記号 (\+) と識別子をメールアドレスのローカル部分の末尾に追加します (例: `admin+123456789123@example.com`)。このパターンは、この制限を克服するのに役立ちます。

このパターンは、 AWS アカウント 所有者が 1 つの E メールアドレスを複数の E メールアドレスに関連付けることができる、一意の E メールアドレス販売ソリューションを提供します AWS アカウント。 AWS アカウント 所有者の実際の E メールアドレスは、テーブル内のこれらの生成された E メールアドレスに関連付けられます。このソリューションは、一意のメールアカウントのすべての受信メールを処理し、各アカウントの所有者を検索して、受信したメッセージを所有者に転送します。 

## 前提条件と制限事項
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-prereqs"></a>

**前提条件**
+ への管理アクセス AWS アカウント。
+ 開発環境へのアクセス権。
+ (オプション) AWS Cloud Development Kit (AWS CDK) ワークフローと Python プログラミング言語に精通していれば、問題のトラブルシューティングや変更に役立ちます。

**制限事項**
+ 全販売メールアドレスは 64 文字長です。詳細については、*AWS Organizations API リファレンス*の「[CreateAccount](https://docs.aws.amazon.com/organizations/latest/APIReference/API_CreateAccount.html)」を参照してください。

**製品バージョン**
+ Node.js バージョン 22.x 以降
+ Python 3.13 以降
+ Python パッケージ **pip** と **virtualenv**
+ AWS CDK CLI バージョン 2.1019.2 以降
+ Docker 20.10.x 以降

## アーキテクチャ
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-architecture"></a>

**ターゲットテクノロジースタック**
+ CloudFormation スタック
+ AWS Lambda 関数
+ Amazon Simple Email Service (Amazon SES) ルールとルールセット
+ AWS Identity and Access Management (IAM) ロールとポリシー
+ Amazon Simple Storage Service (Amazon S3) バケットとバケットポリシー
+ AWS Key Management Service (AWS KMS) キーとキーポリシー
+ Amazon Simple Notification Service (Amazon SNS) のトピックとトピックポリシー
+ Amazon DynamoDB テーブル 

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

![単一メールアドレスで複数の AWS アカウントを登録するターゲットアーキテクチャ](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/1be85b92-69e5-43b2-aeed-27b9509e145e/images/c7ae9d7a-d4e0-412e-97cb-0f3073e012e7.png)


この図は、以下の 2 つのフローを示しています。
+ **メールアドレス販売フロー**: この図では、メールアドレス販売フロー (下のセクション) は通常、アカウント販売ソリューションまたは外部自動化で開始、または手動で呼び出されます。リクエストでは、必要なメタデータを含むペイロードで Lambda 関数が呼び出されます。この関数はこの情報を使用して一意のアカウント名とメールアドレスを生成し、DynamoDB データベースに保存して、呼び出し元に値を返します。その後、これらの値を使用して新しい AWS アカウント (通常は を使用) を作成できます AWS Organizations。
+ **メール転送フロー**: このフローは、前の図の上部セクションに示されています。E メールアドレス販売フローから生成されたアカウント E メールを使用して が作成されると、 AWS アカウント はアカウント登録の確認や定期的な通知など、さまざまな E メールをその E メールアドレス AWS に送信します。このパターンのステップに従って、ドメイン全体の E メールを受信するように Amazon SES AWS アカウント で を設定します。このソリューションでは、Lambda がすべての受信メールを処理し、`TO` アドレスが DynamoDB テーブルにあるかどうかを確認し、代わりにアカウントオーナーのメールアドレスにメッセージを転送できるようにする転送ルールを設定します。このプロセスを使用すると、アカウントオーナーは複数のアカウントを単一メールアドレスに関連付けできます。

**自動化とスケール**

このパターンでは AWS CDK 、 を使用してデプロイを完全に自動化します。このソリューションは、ニーズに合わせて自動的にスケールする (またはスケールするように設定できる) AWS マネージドサービスを使用します。Lambda 関数には、スケーリングのニーズを満たすために追加の設定が必要な場合があります。詳細については、Lambda ドキュメントの「[Lambda 関数のスケーリングについて](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html)」を参照してください。

## ツール
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-tools"></a>

**AWS サービス**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および リージョン全体のライフサイクルを通じてリソースを管理するのに役立ちます。
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) は、コマンドラインシェルのコマンドを通じて AWS のサービスを操作するのに役立つオープンソースツールです。
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) は、フルマネージド NoSQL データベースサービスです。高速かつ予測可能でスケーラブルなパフォーマンスを提供します。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、誰を認証し、誰に使用する権限を付与するかを制御することで、 AWS リソースへのアクセスを安全に管理するのに役立ちます。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [Amazon Simple Email Service (Amazon SES)](https://docs.aws.amazon.com/ses/latest/dg/Welcome.html) - ユーザー自身のメールアドレスとドメインを使用してメールを送受信する上で役立ちます。
+ 「[Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) は、任意の量のデータの保存、保護、取得に役立つクラウドベースのオブジェクトストレージサービスです。

**デプロイに必要なツール**
+  AWS CLI および への IAM アクセスを持つ開発環境 AWS アカウント。詳細については、[関連リソース](#register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources)セクションのリンクを参照してください。 
+ 開発システムに以下をインストールします。
  + Git コマンドラインツールは、[Git ダウンロードウェブサイト](https://git-scm.com/downloads)から入手できます。
  +  AWS CLI のアクセス認証情報を設定する AWS CDK。詳細については、[AWS CLI のドキュメント](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)を参照してください。
  + [Python ダウンロードウェブサイト](https://www.python.org/downloads/)で利用できる Python バージョン 3.13 以降。
  + UV for Python パッケージ管理。インストールの手順については、「[UV インストールガイド](https://docs.astral.sh/uv/getting-started/installation/)」を参照してください。
  + Node.js バージョン 22.x 以降。インストール手順については、「[Node.js のドキュメント](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs)」を参照してください。
  + AWS CDK CLI バージョン 2.1019.2 以降。インストール手順については、「[AWS CDK のドキュメント](https://docs.aws.amazon.com/cdk/v2/guide/getting-started.html#getting-started-install)」を参照してください。
  + Docker バージョン 20.10.x 以降。インストール手順については、「[Docker のドキュメント](https://docs.docker.com/engine/install/)」を参照してください。

**コード**

このパターンのコードは、GitHub 内の「[AWS アカウント Factory メール](https://github.com/aws-samples/aws-account-factory-email)」リポジトリで利用できます。

## エピック
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-epics"></a>

### ターゲットデプロイ環境を割り当てる
<a name="allocate-a-target-deployment-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| を特定または作成します AWS アカウント。 | E メールソリューションをデプロイするために、完全な管理アクセス権がある既存または新規の AWS アカウント を特定します。 | AWS 管理者、クラウド管理者 | 
| デプロイ環境を設定します。 | 次の手順に従って、使い易いデプロイ環境を構成し、依存関係を設定します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | AWS DevOps、アプリ開発者 | 

### 検証済みドメインをセットアップする
<a name="set-up-a-verified-domain"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| ドメインを特定して割り当てます。 | メール転送機能には専用ドメインが必要です。Amazon SES で検証できるドメインまたはサブドメインを特定して割り当てます。このドメインは、E メール転送ソリューションがデプロイ AWS アカウント されている 内で受信 E メールを受信できる必要があります。<br />ドメイン要件:[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | クラウド管理者、ネットワーク管理者、DNS 管理者 | 
| ドメインを検証します。 | 特定したドメインが受信メールの受け入れに使用できることを確認します。<br />Amazon SES ドキュメントの [Amazon SES E メールを受信するドメインの検証](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-verification.html)の手順を実行します。これには、ドメインの DNS レコードを担当する個人またはチームとの調整が必要です。 | アプリ開発者、AWS DevOps | 
| MX レコードをセットアップします。 |  AWS アカウント および リージョンの Amazon SES エンドポイントを指す MX レコードを使用してドメインを設定します。詳細については、Amazon SES ドキュメントの [Amazon SES E メール受信用 MX レコードの公開](https://docs.aws.amazon.com/ses/latest/dg/receiving-email-mx-record.html)を参照してください。 | クラウド管理者、ネットワーク管理者、DNS 管理者 | 

### メールの販売と転送ソリューションをデプロイする
<a name="deploy-the-email-vending-and-forwarding-solution"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| `cdk.json` のデフォルト値を変更します。 | デプロイ後にソリューションが正しく動作するように、`cdk.json` ファイル (リポジトリのルート内) のデフォルト値の一部を編集します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | アプリ開発者、AWS DevOps | 
| メールの販売と転送ソリューションをデプロイします。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | アプリ開発者、AWS DevOps | 
| ソリューションがデプロイされていることを確認します。 | テストを開始する前に、ソリューションが正常にデプロイされたことを確認します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | アプリ開発者、AWS DevOps | 

### メールの販売と転送が想定どおりに動作することを確認する
<a name="verify-that-email-vending-and-forwarding-operate-as-expected"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| API が動作していることを確認します。 | このステップでは、ソリューションの API にテストデータを送信し、ソリューションが期待どおりの出力を生成し、バックエンド操作が期待どおりに実行されていることを確認します。<br />テスト入力を使用して、**販売メール**の Lambda 関数を手動で実行します。(例については、[sample\_vend\_request.json ファイル](https://github.com/aws-samples/aws-account-factory-email/blob/main/src/events/sample_vend_request.json)を参照してください。) `OwnerAddress` の場合は、有効なメールアドレスを使用します。API は、期待どおりの値を含むアカウント名とアカウントメールを返す必要があります。 | アプリ開発者、AWS DevOps | 
| メールが転送中であることを確認します。 | このステップでは、システム経由でテストメールを送信し、メールが想定される受信者に転送されていることを確認します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | アプリ開発者、AWS DevOps | 

## トラブルシューティング
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-troubleshooting"></a>


| 問題 | ソリューション | 
| --- | --- | 
| システムが期待どおりにメールを転送しません。 | 設定が正しいことを確認する[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html)<br />ドメインの設定を検証したら、次の手順を実行します。[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
|  AWS CDK スタックをデプロイしようとすると、次のようなエラーが表示されます。<br />「テンプレートのフォーマットエラー: 認識されないリソースタイプ」  | ほとんどの場合、このエラーメッセージは、ターゲットにしているリージョンに利用可能なすべての AWS サービスがないことを意味します。Amazon EC2 インスタンスを使用してソリューションをデプロイする場合は、インスタンスを実行中のリージョンとは異なるリージョンをターゲットにしている場合があります。デフォルトでは、 は で設定したリージョンとアカウントに AWS CDK デプロイされます AWS CLI。<br />考えられる解決策[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses.html) | 
| ソリューションをデプロイすると、次のエラーメッセージが表示されます。<br />「デプロイに失敗しました: エラー: AWSMailFWDStack: SSM パラメータ/cdk-bootstrap/hnb659fds/version が見つかりません。環境はブートストラップされていますか? 「cdk bootstrap」を実行してください。 | ターゲットとする AWS アカウント およびリージョンに AWS CDK リソースをデプロイしたことがない場合は、エラーが示すように、まず `cdk bootstrap` コマンドを実行する必要があります。bootstrapping コマンドを実行した後もこのエラーが引き続き表示される場合は、開発環境が実行されているリージョンとは異なるリージョンにソリューションをデプロイしようとしている可能性があります。<br />この問題を解決するには、ソリューションをデプロイ AWS CLI する前に、 `AWS_DEFAULT_REGION`環境変数を設定するか、 でリージョンを設定します。または、[環境用のAWS CDK ドキュメント](https://docs.aws.amazon.com/cdk/v2/guide/environments.html)の指示に従って、リポジトリのルートにある `app.py` ファイルを変更して、ハードコーディングされたアカウント ID とリージョンを含めることもできます。 | 

## 関連リソース
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-resources"></a>
+ のインストールについては AWS CLI、[「 の最新バージョンのインストールまたは更新 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)」を参照してください。
+ IAM アクセス認証情報 AWS CLI を使用して を設定する方法については、[「 の設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)」を参照してください。
+ のヘルプについては AWS CDK、[「 の開始方法 AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_install)」を参照してください。

## 追加情報
<a name="register-multiple-aws-accounts-with-a-single-email-address-by-using-amazon-ses-additional"></a>

**コスト**

このソリューションをデプロイすると、 AWS アカウント 所有者は次のサービスの使用に関連するコストが発生する可能性があります。 これらのサービスの請求方法を理解して、潜在的な費用を認識しておくことが重要です。価格設定情報については、次のページを参照してください。
+ [Amazon SES の価格設定](https://aws.amazon.com/ses/pricing/)
+ [Amazon S3 の価格設定](https://aws.amazon.com/s3/pricing/)
+ [AWS KMS 料金](https://aws.amazon.com/kms/pricing/)
+ [AWS Lambda 料金](https://aws.amazon.com/lambda/pricing/)
+ [Amazon DynamoDB の価格設定](https://aws.amazon.com/dynamodb/pricing/) 