本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Amazon SES 使用單一電子郵件地址註冊多個 AWS 帳戶
由喬·沃茲尼亞克(AWS)和舒邦吉維什瓦卡瑪(AWS)創建
環境:PoC 或試點 | 技術:基礎架構、管理與治理、訊息與通訊 | |
AWS 服務:AWS Lambda;Amazon SES;亞馬遜 |
Summary
此模式說明如何將真實電子郵件地址與 AWS 帳戶相關聯的電子郵件地址分離。AWS 帳戶需要在帳戶建立時提供唯一的電子郵件地址。在某些組織中,管理 AWS 帳戶的團隊必須承擔與其簡訊團隊管理許多唯一電子郵件地址的負擔。對於管理許多 AWS 帳戶的大型組織來說,這可能很困難。
此模式提供獨特的電子郵件地址自動售貨解決方案,可讓 AWS 帳戶擁有者將一個電子郵件地址與多個 AWS 帳戶建立關 然後,AWS 帳戶擁有者的真實電子郵件地址會與表格中產生的這些電子郵件地址相關聯。該解決方案處理唯一電子郵件帳戶的所有傳入電子郵件,查找每個帳戶的所有者,然後將任何收到的消息轉發給所有者。
先決條件和限制
先決條件
AWS 帳戶的管理存取權。
存取開發環境。我們建議您使用 AWS Cloud9,以免必須自行設定所需的工具和存取金鑰。
(選用) 熟悉 AWS Cloud Development Kit (AWS CDK) 工作流程和 Python 程式設計語言,可協助您對任何問題進行疑難排解或進行修改。
限制
64 個字元的整體出售電子郵件地址長度。如需詳細資訊,請參閱 AWS Organizations API 參考資料CreateAccount中的。
產品版本
Node.js 版本 12.7.0 或更新版本
Python 3.9 或更高版本
Python 軟件包點和虛擬環境
AWS CDK 版本 2.23.0 或更新版本
泊塢視窗 20.10.x 或更新版本
架構
目標技術堆疊
AWS CloudFormation 堆疊
AWS Lambda 函數
亞馬遜簡單電子郵件地址 (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 資料表
目標架構
此圖顯示了兩個流程:
電子郵件地址自動售貨流程:在圖中,電子郵件地址自動售貨流程(下部)通常以帳戶自動售貨解決方案或外部自動化開始,或者是手動調用。在要求中,會呼叫 Lambda 函數,其中包含所需的中繼資料的承載。函數使用此資訊產生唯一的帳戶名稱和電子郵件地址、將其儲存在 DynamoDB 資料庫中,然後將值傳回給呼叫者。然後,這些值就可以用來建立新的 AWS 帳戶 (通常是使用 AWS Organizations)。
電子郵件轉發流程:此流程在上圖的上部分中說明。使用電子郵件地址自動售貨流程產生的帳戶電子郵件建立 AWS 帳戶時,AWS 會將各種電子郵件 (例如帳戶註冊確認和定期通知) 傳送到該電子郵件地址。按照此模式中的步驟操作,您可以使用 Amazon SES 設定 AWS 帳戶以接收整個網域的電子郵件。此解決方案設定轉寄規則,允許 Lambda 處理所有內送電子郵件、檢查
TO
地址是否在 DynamoDB 表格中,然後將訊息轉寄至帳戶擁有者的電子郵件地址。使用此程序可讓帳戶擁有者將多個帳戶與一個電子郵件地址建立關聯。
自動化和規模
此模式使用 AWS CDK 完全自動化部署。該解決方案使用 AWS 受管服務,這些服務可以自動 (或可以設定) 擴展以滿足您的需求。Lambda 函數可能需要額外的組態來滿足您的擴展需求。如需詳細資訊,請參閱 Lambda 文件中的 Lambda 函數擴展。
工具
AWS 服務
AWS Cloud9 是整合式開發環境 (IDE),可協助您撰寫程式碼、建置、執行、測試和偵錯軟體。它也可協助您將軟體發行到 AWS 雲端。
AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和區域的整個生命週期中進行管理。
AWS Command Line Interface (AWS CLI) (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列殼層中的命令與 AWS 服務互動。
Amazon DynamoDB 是一項全受管 NoSQL 資料庫服務,可提供快速、可預期且可擴展的效能。
AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。
AWS Key Management Service (AWS KMS) 可協助您建立和控制加密金鑰,以協助保護資料。
AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動調整規模,因此您只需為使用的運算時間付費。
Amazon Simple Email Service (Amazon SES) 可協助您使用自己的電子郵件地址和網域來傳送和接收電子郵件。
Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和客戶之間的訊息交換,包括 Web 伺服器和電子郵件地址。
Amazon Simple Storage Service (Amazon S3) 是一種雲端型物件儲存服務,可協助您儲存、保護和擷取任何數量的資料。
部署所需的工具
透過 AWS CLI 和 IAM 存取您的 AWS 帳戶進行開發環境。 如需詳細資訊,請參閱「相關資源」區段中的連結。我們建議您使用 AWS Cloud9 來簡化設定程序。
如果您使用 AWS Cloud9,系統會為您設定下列項目。 如果您選擇不使用 AWS Cloud9,則需要安裝下列項目:
用於設定 AWS CDK 存取登入資料的 AWS CLI。如需詳細資訊,請參閱 AWS CLI 文件。
版 Python 3.9 或更高版本
Python 軟件包點和虛擬環境
Node.js 版本 12.7.0 或更新版本
AWS CDK 版本 2.23.0 或更新版本
泊塢視窗 20.10.x 版或更新版本
Code
此模式的程式碼可在 GitHub AWS 帳戶工廠電子郵件
史诗
任務 | 描述 | 所需技能 |
---|---|---|
識別或建立 AWS 帳戶。 | 識別您擁有完整管理存取權限的現有或新 AWS 帳戶,以部署電子郵件解決方案。 | AWS 管理員、雲端管理員 |
設定部署環境。 | 依照下列步驟設定易於使用的部署環境並設定相依性:
| AWS 應用程 DevOps式開發人員 |
任務 | 描述 | 所需技能 |
---|---|---|
識別和配置網域。 | 電子郵件轉寄功能需要專用網域。識別並分配您可以透過 Amazon SES 驗證的網域或子網域。在部署電子郵件轉寄解決方案的 AWS 帳戶內,應該可以使用此網域接收傳入的電子郵件。 網域要求:
| 雲端管理員、網路管理員、DNS 管理員 |
驗證網域。 | 確認識別的網域可用於接受內送電子郵件。 請完成 Amazon SES 文件中的驗證您的網域以接收 Amazon SES 電子郵件中的指示。這需要與負責網域 DNS 記錄的人員或團隊進行協調。 | AWS 應用程式開發人員 DevOps |
設定 MX 記錄。 | 使用指向 AWS 帳戶和區域中 Amazon SES 端點的 MX 記錄來設定您的網域。如需詳細資訊,請參閱 Amazon SES 文件中的發佈接收 Amazon SES 電子郵件的 MX 記錄。 | 雲端管理員、網路管理員、DNS 管理員 |
任務 | 描述 | 所需技能 |
---|---|---|
修改預設值。 | 編輯
| AWS 應用程式開發人員 DevOps |
部署電子郵件自動販賣和轉寄解決方案 |
| AWS 應用程式開發人員 DevOps |
確認已部署解決方案。 | 在開始測試之前,請先確認解決方案已成功部署:
| AWS 應用程式開發人員 DevOps |
任務 | 描述 | 所需技能 |
---|---|---|
驗證 API 是否正常運作。 | 在此步驟中,您將測試資料提交至解決方案的 API,並確認解決方案產生預期的輸出,並確認後端作業已如預期般執行。 使用測試輸入以手動方式執行銷售電子郵件 Lambda 函數。如需範例,請參閱範例檔案 | AWS 應用程式開發人員 DevOps |
確認電子郵件正在轉寄。 | 在此步驟中,您會透過系統傳送測試電子郵件,並驗證電子郵件是否已轉寄給預期的收件者。
| AWS 應用程式開發人員 DevOps |
故障診斷
問題 | 解決方案 |
---|---|
系統未如預期轉寄電子郵件。 | 確認您的設定是否正確:
驗證網域設定後,請依照下列步驟執行:
|
當您嘗試部署 AWS CDK 堆疊時,您會收到類似下列內容的錯誤: 「模板格式錯誤:無法識別的資源類型」 | 在大多數情況下,此錯誤訊息表示您目標的區域沒有所有可用的 AWS 服務。如果您使用 AWS Cloud9 部署解決方案,則可能會鎖定與執行 AWS Cloud9 執行個體的區域不同的區域。 注意:根據預設,AWS CDK 會部署到您在 AWS CLI 中設定的區域和帳戶。 可能的解決方案:
|
當您部署解決方案時,您會收到錯誤訊息: 「部署失敗:錯誤: AwsMailFwdStack: SSM 參數 /cdk 引導程序 /hnb659f/ 版本未找到。環境是否已被引導? 請運行 'cdk 引導程序 '」 | 如果您從未將任何 AWS CDK 資源部署到目標的 AWS 帳戶和區域,則必須先按照錯誤指示執行 若要解決此問題,請先設定 |
相關資源
如需安裝 AWS CLI 的說明,請參閱安裝或更新最新版本的 AWS CLI。
如需使用 IAM 存取登入資料設定 AWS CLI 的說明,請參閱設定 AWS CLI。
如需 AWS CDK 的相關說明,請參閱開始使用 AWS CD K。
其他資訊
成本
部署此解決方案時,AWS 帳戶持有人可能會產生與使用下列服務相關的費用。 了解這些服務的計費方式對您而言非常重要,以便您了解任何潛在的費用。如需定價資訊,請參閱下列頁面: