翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon AWS を使用して 1 つの E メールアドレスに複数の SES アカウントを登録する
作成者: Joe Wozniak (AWS) と Shubhangi Viswaakarma (AWS)
コードリポジトリ: aws-account-factory-emailGitHub | 環境:PoC またはパイロット | テクノロジー: インフラストラクチャ、管理とガバナンス、メッセージングとコミュニケーション |
AWS サービス: AWS Lambda、Amazon SES、Amazon 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 メールアドレスに関連付けることを可能にする、一意の E メールアドレス販売ソリューションを提供します AWS アカウント。 AWS アカウント 所有者の実際の E メールアドレスは、テーブル内で生成されたこれらの E メールアドレスに関連付けられます。このソリューションは、一意のメールアカウントのすべての受信メールを処理し、各アカウントの所有者を検索して、受信したメッセージを所有者に転送します。
前提条件と制限
前提条件
への管理アクセス AWS アカウント。
開発環境へのアクセス権。
(オプション) AWS Cloud Development Kit (AWS CDK) ワークフローと Python プログラミング言語に精通していれば、問題のトラブルシューティングや変更に役立ちます。
機能制限
全販売メールアドレスは 64 文字長です。詳細については、CreateAccount AWS Organizations リファレンスのAPI」を参照してください。
製品バージョン
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 メールを受信するように Amazon SES 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 アカウント factory E メール
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
を特定または作成します AWS アカウント。 | E メールソリューションをデプロイするために、完全な管理アクセス権を持つ既存または新規の AWS アカウント を特定します。 | AWS 管理者、クラウド管理者 |
デプロイ環境を設定します。 | 次の手順に従って、使い易いデプロイ環境を構成し、依存関係を設定します。
| DevOpsAWS、アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
ドメインを特定して割り当てます。 | メール転送機能には専用ドメインが必要です。Amazon SES で検証できるドメインまたはサブドメインを特定して割り当てます。このドメインは、E メール転送ソリューションがデプロイ AWS アカウント されている 内で受信 E メールを受信できる必要があります。 ドメイン要件:
| クラウド管理者、ネットワーク管理者、DNS 管理者 |
ドメインを検証します。 | 特定したドメインが受信メールの受け入れに使用できることを確認します。 Amazon SES ドキュメントの「Amazon Word E メール受信用のドメインの検証」の手順を完了します。 SESこれには、ドメインの DNS レコードを担当する個人またはチームとの調整が必要です。 | アプリ開発者、 DevOpsAWS |
MX レコードをセットアップします。 | AWS アカウント とリージョンの Amazon SES エンドポイントを指す MX レコードを使用してドメインを設定します。詳細については、Amazon SES ドキュメントの「Amazon Word E メール受信用の MX レコードの発行」を参照してください。 SES | クラウド管理者、ネットワーク管理者、DNS 管理者 |
タスク | 説明 | 必要なスキル |
---|---|---|
のデフォルト値を変更します | デプロイ後にソリューションが正しく動作するように、
| アプリ開発者、 DevOpsAWS |
メールの販売と転送ソリューションをデプロイします。 |
| アプリ開発者、 DevOpsAWS |
ソリューションがデプロイされていることを確認します。 | テストを開始する前に、ソリューションが正常にデプロイされたことを確認します。
| アプリ開発者、 DevOpsAWS |
タスク | 説明 | 必要なスキル |
---|---|---|
API が動作していることを確認します。 | このステップでは、テストデータをソリューションの API に送信し、ソリューションが期待される出力を生成し、バックエンドオペレーションが期待どおりに実行されていることを確認します。 テスト入力を使用して、販売メールの Lambda 関数を手動で実行します。(例については、sample_vend_request.json ファイル | アプリ開発者、 DevOpsAWS |
メールが転送中であることを確認します。 | このステップでは、システム経由でテストメールを送信し、メールが想定される受信者に転送されていることを確認します。
| アプリ開発者、 DevOpsAWS |
トラブルシューティング
問題 | ソリューション |
---|---|
システムが期待どおりにメールを転送しません。 | 設定が正しいことを確認する
ドメインの設定を検証したら、次の手順を実行します。
|
AWS CDK スタックをデプロイしようとすると、次のようなエラーが表示されます。 「テンプレートのフォーマットエラー: 認識されないリソースタイプ」 | ほとんどの場合、このエラーメッセージは、ターゲットとするリージョンに使用可能な AWS サービスがすべてないことを意味します。Amazon EC2 インスタンスを使用してソリューションをデプロイしている場合、インスタンスが実行されているリージョンとは異なるリージョンをターゲットにしている可能性があります。 注: デフォルトでは、 は で設定したリージョンとアカウントに AWS CDK デプロイされます AWS CLI。 考えられる解決策
|
ソリューションをデプロイすると、次のエラーメッセージが表示されます。 「デプロイに失敗しました: エラー: AwsMailFwdStack: SSMparameter /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 アカウント 所有者に発生する可能性があります。 これらのサービスの請求方法を理解して、潜在的な費用を認識しておくことが重要です。価格設定情報については、次のページを参照してください。