--- title: "CTP Topic 12 Using SES SMTP service terraform module" type: source tags: - AWS - Terraform - SES - Email - CTP - Cloud-Email date: 2026-04-14 --- ## Source File - [[raw/Cloud & DevOps/Public-Cloud-Learning-Sessions/03_Terraform/ctp-topic-12-using-ses-smtp-service-terraform-module.md]] ## Summary(用中文描述) - 核心主题:Micro Focus 团队使用 Terraform 模块自动化部署 AWS SES SMTP 服务,以替代传统的本地 SMTP 网关。 - 问题域:随着业务向云端迁移,使用本地 SMTP 网关(如 smtbmicrofocus.com)已不再高效,网络安全部门要求统一使用云端邮件发送方案。 - 方法/机制:在应用 VPC 中配置 VPC 终端节点以实现私有连接;通过 IAM 用户凭证作为 SMTP 认证信息并存储于 Secrets Manager;Terraform 模块自动化 SMTP 终端节点配置、DKIM 验证和 DNS 记录创建;支持现有应用程序通过标准 SMTP 协议集成,无需重构代码适配 SES API。 - 结论/价值:SES 是唯一获网络安全部门批准的云端邮件发送方案;Terraform 模块化封装降低了集成复杂度;需注意两个手动步骤(申请脱离 Sandbox Mode 和手动更新 DNS TXT 记录)。 ## Key Claims(用中文描述) - 在应用 VPC 中配置 VPC 终端节点,使应用可在不访问公网的情况下通过私有节点与 SES SMTP 服务通信。 - IAM 用户的 Access Key 和 Secret Key 被转换后作为 SMTP 认证的用户名和密码,相关凭证安全存储于 AWS Secrets Manager。 - Terraform 模块自动化完成 DKIM 验证和 Infoblox DNS 管理系统中域名所有权记录的创建。 - 手动更新 DNS TXT 记录以验证域名所有权仍是必需步骤,因 Terraform 难以处理多个 AWS 账号共享同一域名时对同一 TXT 记录值的追加操作。 - 脱离 SES Sandbox Mode(向 AWS 提交工单申请生产访问权限)是启用完整邮件发送能力的必要前提。 - SES 是 Micro Focus 网络安全部门唯一批准的云端邮件发送方案,替代了原有的本地 SMTP 网关。 ## Key Quotes > "随着业务向云端迁移,使用本地 SMTP 网关(如 smtbmicrofocus.com)已不再高效,SES 是目前网络安全部门唯一批准的云端邮件发送方案。" — Christian Deckelmann > "SES Terraform 模块封装了 SMTP 终端节点的配置,方便现有应用程序通过标准的 SMTP 协议进行集成,而无需重构代码以适配 SES API。" — Filos Christolakis ## Key Concepts - [[VPC-Endpoint]]:AWS 提供的私有连接服务,允许在 VPC 内部通过私有 IP 地址安全访问 AWS 服务,无需经过公网。 - [[DKIM-Email-Authentication]]:DomainKeys Identified Mail 的缩写,一种电子邮件验证标准,通过在邮件头部添加数字签名来防止欺诈和确保邮件完整性。 - [[Secrets-Manager]]:AWS 提供的凭证管理服务,用于安全地存储和检索 SES SMTP 的认证信息。 - [[SES-Sandbox-Mode]]:AWS SES 的默认限制状态,仅允许向已验证的地址发送少量邮件,需提交工单申请生产访问权限以提升发送限额。 ## Key Entities - [[AWS]]:Amazon Web Services,云服务提供商,SES(Simple Email Service)所属平台。 - [[Christian-Deckelmann]]:演讲者之一,分享 Micro Focus 在云转型中采用 SES SMTP 服务的背景与动机。 - [[Filos-Christolakis]]:演讲者之一,详细讲解 SES Terraform 模块的技术实现方案。 - [[Infoblox]]:公司内部使用的 DNS 管理系统,用于存放和管理验证域名所有权所需的 DNS 记录。 - [[VPC-Wrapper-Module]]:SES Terraform 模块所依赖的前置 VPC 配置模块,负责预先配置 SMTP VPC 终端节点。 ## Connections - [[VPC-Wrapper-Module]] ← depends_on ← [[ctp-topic-12-using-ses-smtp-service-terraform-module]] - [[ctp-topic-12-using-ses-smtp-service-terraform-module]] ← extends ← [[AWS]] - [[Terraform-And-Terragrunt-Best-Practices]] ← related_to ← [[ctp-topic-12-using-ses-smtp-service-terraform-module]](Terragrunt Pre-hook/Post-hook 用于处理手动 DNS 验证步骤) - [[ctp-topic-36-sendgrid-as-an-email-service]] ← alternative_to ← [[ctp-topic-12-using-ses-smtp-service-terraform-module]](SendGrid 被选定为新 Landing Zone 标准,SES 用于现有应用迁移) ## Contradictions - 与 [[ctp-topic-36-sendgrid-as-an-email-service]] 在邮件服务选型上的差异: - 冲突点:两门课程分别介绍了不同的云邮件服务方案——SendGrid 被选定为标准云端邮件服务,而 SES 则专注于服务现有应用通过 SMTP 协议迁移上云。 - 当前观点:SES 通过 Terraform 模块封装现有应用 SMTP 接入路径,实现平滑迁移,无需修改应用代码。 - 对方观点:SendGrid 作为新标准云邮件服务,提供更高上限(每封 1,000 收件人 vs SES 每封 50 收件人)、更简单的 API 集成和全球中继节点。