我没有收到来自我的 Amazon Simple Notification Service(Amazon SNS)主题的电子邮件通知。
解决方法
验证您的电子邮件端点是否处于已确认状态
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新的 Amazon CLI 版本。
使用 AWS 管理控制台或 AWS CLI 来验证您的电子邮件端点的状态。
AWS 管理控制台
- 打开 Amazon SNS 控制台。
- 在导航窗格上,选择主题,然后选择您的主题。
- 在主题页面的订阅部分中,在端点列中找到您的电子邮件端点。
- 在订阅的状态列中,确认状态为已确认。成功订阅电子邮件端点后,状态即得到确认。
- 在 Amazon SNS 控制台中手动确认订阅。如果您无法收到确认电子邮件,请完成以下部分中的步骤。
- 要重新请求确认电子邮件,请使用您的端点选择订阅,然后选择请求确认。
AWS CLI
运行 list-subscriptions-by-topic AWS CLI 命令。
注意:如果端点列中没有电子邮件端点,则该端点已被删除。
检查电子邮件地址是否可以接收来自外部联系人的电子邮件
要检查问题是否仅限于 Amazon SNS,请将外部提供商的测试电子邮件发送到您的目标电子邮件地址。这可以帮助您评估允许来自外部来源的流量类型。组织内的邮箱通常仅限于内部流量。
如果邮箱正常运行且没有问题,则完成检查防火墙、垃圾邮件筛选器、阻止程序或筛选策略部分中的步骤。
检查防火墙、垃圾邮件筛选器、阻止程序或筛选策略
完成以下故障排除步骤:
- 请咨询电子邮件管理员,查看 no-reply@sns.amazonaws.com 地址是否被防火墙或垃圾邮件筛选器筛选掉。
**提示:最佳做法是将 no-reply@sns.amazonaws.com 地址添加到您的邮箱允许列表中。有关详细信息,请参阅问题: 订阅者是否需要专门配置其电子邮件设置才能接收来自 Amazon SNS 的通知?**条目(位于 Amazon SNS 常见问题解答中)。
- 如果您的电子邮件仍被筛选为垃圾邮件,请查看邮箱规则中是否存在阻止您的 SNS 主题电子邮件的明确拒绝。您还可以检查电子邮件是否已路由到邮箱中的特定文件夹。
- 要防止个人取消订阅您的 SNS 主题电子邮件的所有收件人,请设置身份验证以取消订阅。
**注意:**您必须具有所需的权限才能取消订阅您的电子邮件终端节点。您可以在 Amazon SNS 控制台中或使用 AWS CLI 向经过身份验证的用户确认订阅。
查看订阅的筛选策略:
- 打开 Amazon SNS 控制台。
- 在导航窗格中,选择订阅。
- 在搜索框中,输入电子邮件端点订阅的电子邮件地址或 SNS 主题,然后在结果中选择您的订阅。
- 对于您的电子邮件端点,选择订阅筛选策略选项卡,然后在订阅筛选策略部分中查找有关订阅的筛选策略。
**注意:**向端点发送消息时,Amazon SNS 会将消息属性与筛选策略中的属性进行比较。如果消息属性和筛选策略属性不一致,则不会在电子邮件端点上接收消息。
确认您没有使用默认 AWS KMS 密钥设置
Amazon SNS 允许对主题进行静态加密。如果使用默认 AWS Key Management Service(AWS KMS)密钥进行加密,则服务(例如 Amazon CloudWatch)无法向 SNS 主题发布消息。Amazon SNS 的默认 AWS KMS 密钥的密钥策略不允许这些服务执行 kms:Decrypt 和 kms:GenerateDataKey API 调用。由于此密钥由 AWS 托管,因此您无法手动编辑策略。
如果您要加密您的 Amazon SNS 主题,请使用客户自主管理型密钥。客户自主管理型密钥必须包含密钥策略“语句”部分下方的以下权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "service.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}
]
}
这些权限允许服务向加密的 SNS 主题发布消息。