翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon を使用して 1 つの E メールアドレスで複数のAWSアカウントを登録する SES
作成者: Joe Wozniak (AWS) と Shubhangi Vishwakarma (AWS)
コードリポジトリ: GitHub aws-account-factory-email | 環境:PoC またはパイロット | テクノロジー: インフラストラクチャ、管理とガバナンス、メッセージングとコミュニケーション |
AWS サービス: AWS Lambda、Amazon、SESAmazon DynamoDB |
[概要]
このパターンでは、 に関連付けられている E メールアドレスから実際の E メールアドレスを切り離す方法について説明します AWS アカウント。アカウントの作成時に一意の E メールアドレスを指定 AWS アカウント する必要があります。一部の組織では、 を管理するチームが、メッセージングチームで多くの一意の E メールアドレスを管理するという負担を引き受け AWS アカウント る必要があります。これは、多くの を管理する大規模な組織では難しい場合があります AWS アカウント。さらに、E メールシステムが Sieve Email Filtering: Subaddress Extension (RFC 5233)admin+123456789123@example.com
このパターンがこの制限を克服するのに役立ちます。
このパターンは、 AWS アカウント 所有者が 1 つの E メールアドレスを複数の に関連付けることを可能にする、一意の E メールアドレス販売ソリューションを提供します AWS アカウント。その後、 AWS アカウント 所有者の実際の E メールアドレスは、テーブル内のこれらの生成された E メールアドレスに関連付けられます。このソリューションは、一意のメールアカウントのすべての受信メールを処理し、各アカウントの所有者を検索して、受信したメッセージを所有者に転送します。
前提条件と制限
前提条件
への管理アクセス AWS アカウント。
開発環境へのアクセス権。
(オプション) AWS Cloud Development Kit (AWS CDK) ワークフローと Python プログラミング言語に精通していれば、問題のトラブルシューティングや変更に役立ちます。
機能制限
全販売メールアドレスは 64 文字長です。詳細については、 AWS Organizations APIリファレンスの「」を参照してくださいCreateAccount。
製品バージョン
Node.js バージョン 12.7.0 以降
Python 3.9 以降
Python パッケージ pip と virtualenv
AWS CDK バージョン 2.23.0 以降
Docker 20.10.x 以降
アーキテクチャ
ターゲットテクノロジースタック
AWS 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 テーブル
ターゲット アーキテクチャ
この図は、以下の 2 つのフローを示しています。
メールアドレス販売フロー: この図では、メールアドレス販売フロー (下のセクション) は通常、アカウント販売ソリューションまたは外部自動化で開始、または手動で呼び出されます。リクエストでは、必要なメタデータを含むペイロードで Lambda 関数が呼び出されます。この関数はこの情報を使用して一意のアカウント名とメールアドレスを生成し、DynamoDB データベースに保存して、呼び出し元に値を返します。その後、これらの値を使用して新しい AWS アカウント (通常は を使用して) を作成できます AWS Organizations。
メール転送フロー: このフローは、前の図の上部セクションに示されています。E メールアドレスの自動販売フローから生成されたアカウント E メールを使用して が作成されると、 AWS アカウント はアカウント登録の確認や定期的な通知など、さまざまな E メールをその E メールアドレス AWS に送信します。このパターンのステップに従って、ドメイン全体の E メールを受信するSESように Amazon AWS アカウント で を設定します。このソリューションでは、Lambda がすべての受信メールを処理し、
TO
アドレスが DynamoDB テーブルにあるかどうかを確認し、代わりにアカウントオーナーのメールアドレスにメッセージを転送できるようにする転送ルールを設定します。このプロセスを使用すると、アカウントオーナーは複数のアカウントを単一メールアドレスに関連付けできます。
自動化とスケール
このパターンでは AWS CDK 、 を使用してデプロイを完全に自動化します。このソリューションは、ニーズに合わせて自動的にスケーリングする (またはスケーリングするように設定できる) AWS マネージドサービスを使用します。Lambda 関数には、スケーリングのニーズを満たすために追加の設定が必要な場合があります。詳細については、「Lambda ドキュメント」の「Lambda 関数のスケーリングについて」を参照してください。
ツール
AWS サービス
AWS CloudFormation は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント リージョンと リージョンのライフサイクル全体を通じてリソースを管理するのに役立ちます。
AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンドを使用してAWSサービスとやり取りするのに役立つオープンソースツールです。
Amazon DynamoDB は、高速で予測可能でスケーラブルなパフォーマンスを提供するフルマネージドの NoSQL データベースサービスです。
AWS Identity and Access Management (IAM) は、誰が認証され、誰に使用を許可されているかを制御することで、 AWS リソースへのアクセスを安全に管理できます。
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。
AWS Lambdaは、サーバーのプロビジョニングや管理を必要とせずにコードを実行するのに役立つコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
Amazon Simple Email Service (Amazon SES) は、独自の E メールアドレスとドメインを使用して E メールを送受信するのに役立ちます。
Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーや E メールアドレスなど、パブリッシャーとクライアント間のメッセージ交換の調整と管理に役立ちます。
Amazon Simple Storage Service (Amazon S3) は、任意の量のデータの保存、保護、取得に役立つクラウドベースのオブジェクトストレージサービスです。
デプロイに必要なツール
AWS CLI および IAM へのアクセスを備えた開発環境 AWS アカウント。詳細については、関連リソースセクションのリンクを参照してください。
開発システムに、以下をインストールします。
Git コマンドラインツールは、Git ダウンロードウェブサイト
から入手できます。 AWS CLI のアクセス認証情報を設定する AWS CDK。詳細については、「AWS CLI ドキュメント」を参照してください。
Python バージョン 3.9 以降。Python ダウンロードウェブサイト
から入手できます。 Python パッケージ pip と virtualenv 。インストールの説明については、「pip ドキュメント
」と「 Virtualenv ドキュメント 」を参照してください。 Node.js バージョン 12.7.0 以降。インストールの説明については、「Node.js ドキュメント
」を参照してください。 AWS CDK バージョン 2.23.0 以降。インストール手順については、「」のAWS CDK ドキュメントを参照してください。
Docker バージョン 20.10.x 以降。インストール手順については、Docker ドキュメント
を参照してください。
コード
このパターンのコードは、 GitHub AWS アカウント ファクトリ E メール
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
を特定または作成します AWS アカウント。 | E メールソリューションをデプロイするために、完全な管理アクセス権 AWS アカウント を持つ既存または新規を特定します。 | AWS 管理者、クラウド管理者 |
デプロイ環境を設定します。 | 次の手順に従って、使い易いデプロイ環境を構成し、依存関係を設定します。
| AWS DevOps、アプリデベロッパー |
タスク | 説明 | 必要なスキル |
---|---|---|
ドメインを特定して割り当てます。 | メール転送機能には専用ドメインが必要です。Amazon で検証できるドメインまたはサブドメインを特定して割り当てますSES。このドメインは、E メール転送ソリューション AWS アカウント がデプロイされている 内で受信 E メールを受信できる必要があります。 ドメイン要件:
| クラウド管理者、ネットワーク管理者、DNS管理者 |
ドメインを検証します。 | 特定したドメインが受信メールの受け入れに使用できることを確認します。 Amazon SESドキュメントの「Amazon E SESメール受信のドメインを検証する」の手順を完了します。これには、ドメインDNSの記録を担当する個人またはチームとの調整が必要です。 | アプリデベロッパー、 AWS DevOps |
MX レコードをセットアップします。 | AWS アカウント および リージョンの Amazon SESエンドポイントを指す MX レコードを使用してドメインを設定します。詳細については、「Amazon ドキュメント」の「Amazon E SESメール受信用の MX レコードの発行」を参照してください。 SES | クラウド管理者、ネットワーク管理者、DNS管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
のデフォルト値を変更します | デプロイ後にソリューションが正しく動作するように、
| アプリデベロッパー、 AWS DevOps |
メールの販売と転送ソリューションをデプロイします。 |
| アプリデベロッパー、 AWS DevOps |
ソリューションがデプロイされていることを確認します。 | テストを開始する前に、ソリューションが正常にデプロイされたことを確認します。
| アプリデベロッパー、 AWS DevOps |
タスク | 説明 | 必要なスキル |
---|---|---|
API が機能していることを確認します。 | このステップでは、テストデータをソリューションの に送信APIし、ソリューションが期待される出力を生成し、バックエンドオペレーションが期待どおりに実行されていることを確認します。 テスト入力を使用して、販売メールの Lambda 関数を手動で実行します。(例については、sample_vend_request.json ファイル | アプリデベロッパー、 AWS DevOps |
メールが転送中であることを確認します。 | このステップでは、システム経由でテストメールを送信し、メールが想定される受信者に転送されていることを確認します。
| アプリデベロッパー、 AWS DevOps |
トラブルシューティング
問題 | ソリューション |
---|---|
システムが期待どおりにメールを転送しません。 | 設定が正しいことを確認する
ドメインの設定を検証したら、次の手順を実行します。
|
AWS CDK スタックをデプロイしようとすると、次のようなエラーが表示されます。 「テンプレートのフォーマットエラー: 認識されないリソースタイプ」 | ほとんどの場合、このエラーメッセージは、ターゲットとするリージョンに利用可能なAWSサービスがすべてないことを意味します。Amazon EC2インスタンスを使用してソリューションをデプロイしている場合、インスタンスが実行されているリージョンとは異なるリージョンをターゲットにしている可能性があります。 注: デフォルトでは、 は で設定したリージョンとアカウントに AWS CDK デプロイされます AWS CLI。 考えられる解決策
|
ソリューションをデプロイすると、次のエラーメッセージが表示されます。 デプロイに失敗しました: エラー: AwsMailFwdStack: SSM parameter /cdk-bootstrap/hnb659fds/version が見つかりません。環境はブートストラップされていますか? 「cdk bootstrap」を実行してください。 | ターゲットとする AWS アカウント および リージョンに AWS CDK リソースをデプロイしたことがない場合は、エラーが示すように、まず この問題を解決するには、ソリューションをデプロイ AWS CLI する前に、 |
関連リソース
のインストールについては AWS CLI、「 の最新バージョンへのインストールまたは更新 AWS CLI」を参照してください。
IAM アクセス認証情報 AWS CLI を使用して を設定する方法については、「 の設定 AWS CLI」を参照してください。
のヘルプについては AWS CDK、「 の開始方法 AWS CDK」を参照してください。
追加情報
コスト
このソリューションをデプロイすると、 AWS アカウント 次のサービスの使用に関連するコストが発生する可能性があります。 これらのサービスの請求方法を理解して、潜在的な費用を認識しておくことが重要です。価格設定情報については、次のページを参照してください。