本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
获取亚马逊SESSMTP凭证
您需要亚马逊SESSMTP凭证才能访问该SESSMTP界面。
您用于通过SESSMTP界面发送电子邮件的凭证在每个 AWS 地区都是唯一的。如果您使用该SESSMTP界面在多个区域发送电子邮件,则必须为计划使用的每个区域生成一组SMTP证书。
您的SMTP密码与您的 AWS 私有访问密钥不同。有关凭证的更多信息,请参阅Amazon SES 凭证的类型。
注意
SMTP非洲(开普敦)、亚太地区(雅加达)、欧洲(米兰)、以色列(特拉维夫)和中东(巴林)目前不提供终端节点。
使用SES控制台获取SESSMTP证书
要求
IAM用户可以创建SESSMTP证书,但用户的策略必须授予他们使用IAM自己的权限,因为SESSMTP凭证是通过使用创建的IAM。您的IAM策略必须允许您执行以下IAM操作:iam:ListUsers
、iam:CreateUser
iam:CreateAccessKey
、和iam:PutUserPolicy
。如果您尝试使用控制台创建SESSMTP证书,但您的IAM用户没有这些权限,则会看到一条错误消息,指出您的账户 “无权执行 iam:” ListUsers。
创建您的SMTP凭证
-
登录 AWS Management Console 并打开 Amazon SES 控制台,网址为https://console.aws.amazon.com/ses/
。 -
在左侧导航窗格中选择SMTP设置-这将打开简单邮件传输协议 (SMTP) 设置页面。
-
选择右上角的 “创建SMTP凭据”-IAM 控制台将打开。
-
(可选)如果您需要查看、编辑或删除已创建的SMTP用户,请选择右下角的 “管理我的现有SMTP凭证”,IAM控制台将打开。按照以下步骤提供了管理SMTP凭证的详细信息。
-
在 “为创建用户” 中SMTP,在 “SMTP用户名” 字段中键入用户的名称。或者,您可以使用此字段中提供的默认值。完成后,选择右下角的创建用户。
-
选择 “在SMTP密码下方显示”-屏幕上会显示您的SMTP凭据。
-
通过选择下载 .csv 文件以下载这些凭证,或将其复制并存储在安全的位置,因为您在关闭此对话框之后无法查看或保存凭证。
-
选择 “返回SES主机”。
您可以在IAM控制台的访问管理下使用此过程查看您创建的SMTP凭证列表,然后选择用户,然后使用搜索栏查找您分配了SMTP凭据的所有用户。
您也可以使用IAM控制台删除现有SMTP用户。要了解有关删除用户的更多信息,请参阅《IAM入门指南》中的管理IAM用户。
如果要更改SMTP密码,请在IAM控制台中删除现有SMTP用户。然后,要生成一组新的SMTP凭证,请完成前面的步骤。
通过转换现有SESSMTP证书获取 AWS 证书
如果您有使用IAM界面设置的用户,则可以从其SESSMTP凭据中获取该用户的 AWS 证书。
重要
不要使用临时 AWS 证书来派生SMTP证书。该SESSMTP接口不支持从临时安全SMTP证书生成的证书。
使用IAM户能够使用SESSMTP界面发送电子邮件
-
按照以下步骤,使用本节中提供的算法,从其 AWS 凭证中派生出用户的凭证。SMTP
由于您是从 AWS 凭据开始的,因此SMTP用户名与 AWS 访问密钥 ID 相同,因此您只需要生成SMTP密码即可。
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在访问管理下,选择策略,然后选择创建策略。
-
在策略编辑器中,选择JSON并删除编辑器中的任何示例代码。
-
将以下权限策略粘贴到编辑器中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }
-
选择 “下一步”,然后在 “策略名称” 字段
AmazonSesSendingAccess
中输入,然后输入 “创建策略”。 -
在访问管理下,选择用户组,然后选择创建群组。
-
在 “用户组名” 字段
AWSSESSendingGroupDoNotRename
中输入。 -
从 “向组中添加SMTP用户” 表格中选择用户,即可将用户添加到群组。
-
附加之前创建的
AmazonSesSendingAccess
策略,方法是从 “附加权限策略” 表中选择该策略,然后选择 “创建用户组”。
有关SES与一起使用的更多信息IAM,请参阅Amazon SES 中的 Identity and Access Management。
注意
尽管您可以为任何IAM用户生成SESSMTP证书,但我们建议您在生成SMTP凭证时创建一个单独的IAM用户。有关为特定目的创建用户是最佳做法的信息,请访问IAM最佳实践。
以下伪代码显示了将私有访问 AWS 密钥转换为密码的算法。SES SMTP
// Modify this variable to include your AWS secret access key key = "
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
"; // Modify this variable to refer to the AWS Region that you want to use to send email. region = "us-west-2
"; // The values of the following variables should always stay the same. date = "11111111"; service = "ses"; terminal = "aws4_request"; message = "SendRawEmail"; version = 0x04; kDate = HmacSha256(date, "AWS4" + key); kRegion = HmacSha256(region, kDate); kService = HmacSha256(service, kRegion); kTerminal = HmacSha256(terminal, kService); kMessage = HmacSha256(message, kTerminal); signatureAndVersion = Concatenate(version, kMessage); smtpPassword = Base64(signatureAndVersion);
某些编程语言包含可用于将IAM私有访问密钥转换为SMTP密码的库。本节包含一个代码示例,您可以使用该示例使用 Python 将私有访问 AWS 密钥转换为SESSMTP密码。
注意
以下示例使用 Python 3.6 中推出的 f-string;如果使用较旧的版本,那么它们无法工作。
目前,PythonSDK(Boto3)正式支持 2.7 和 3.6(或更高版本)。然而,2.7 支持已被弃用,并且将在 2021 年 7 月 15 日删除,因此您需要至少升级到 3.6 版本。
将SMTP用户从现有内联策略迁移到组策略(安全建议)
重要
如果您在 2024 年 9 月 6 日之前创建了SESSMTP凭证,则已向您的SMTP用户附加了内联策略和标签。SES正在摆脱内联策略,并鼓励你像安全建议一样这样做。
在将SMTP用户从现有内联策略迁移到组策略之前,必须先使用SES权限策略创建一个IAM用户组来取代内联策略。如果您已经创建了此IAM用户组,或者它是为从 2024 年 9 月 6 日起创建的SMTP凭据自动创建的,则可以直接跳到以下过程中的第 10 步。
从现有内联策略迁移到托管组
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在访问管理下,选择策略,然后选择创建策略。
-
在策略编辑器中,选择JSON并删除编辑器中的任何示例代码。
-
将以下权限策略粘贴到编辑器中:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ses:SendRawEmail", "Resource": "*" } ] }
-
选择 “下一步”,然后在 “策略名称” 字段
AmazonSesSendingAccess
中输入,然后输入 “创建策略”。 -
在访问管理下,选择用户组,然后选择创建群组。
-
在 “用户组名” 字段
AWSSESSendingGroupDoNotRename
中输入。 -
从 “向组中添加SMTP用户” 表格中选择用户,即可将用户添加到群组。
-
附加之前创建的
AmazonSesSendingAccess
策略,方法是从 “附加权限策略” 表中选择该策略,然后选择 “创建用户组”。现在,您已经使用SES权限策略创建了IAM用户组,您可以按照其余步骤中的说明将SMTP用户从其当前的内联策略迁移到该组策略。
-
在 “访问管理” 下,选择 “用户”,然后选择要迁移的SMTP用户。
-
选择 “群组” 选项卡,然后选择 “将用户添加到群组”。
-
选择群
AWSSESSendingGroupDoNotRename
组,然后选择将用户添加到群组。 -
选择 “权限” 选项卡,确认在 “策略名称” 列中列出了两行,一行是内联的,另一行是群组
AWSSESSendingGroupDoNotRename
列在 “附加方式” 列中。AmazonSesSendingAccess
-
仅选择 “策略名称” 列
AmazonSesSendingAccess
中包含的行,在 “附加方式” 列中选择 “内联”,然后选择 “移除”,然后使用移除策略进行确认。验证 “附加方式” 列
AWSSESSendingGroupDoNotRename
中带有 “群组” 的行仍然存在。 -
选择 “标签” 选项卡,然后选择 “管理标签”。
-
选择 “键” 列和 SESConsole“值” 列InvokedBy中包含的行旁边的 “删除”,然后选择 “保存更改”。
重要
该AmazonSesSendingAccess
策略(无论是作为内联策略还是群组策略,或者两者兼而有之)必须与SMTP用户保持关联,以确保他们的发送不受影响。只有在将组策略附加到您的用户之后,才会移除内联策略。