我使用电子邮件地址的端点订阅了 SNS 主题。
昨晚我收到了取消订阅该主题的通知,我询问了所有可以访问收件箱的人,没有人点击取消订阅链接。
我重新创建了订阅,今天早上它再次取消订阅。
怎么可能呢?我怎样才能防止这种情况再次发生?我在 CloudTrail 中查找,但取消订阅操作不会被记录,除非它们是在控制台中或通过 API 进行的。
任何指标都会有帮助,谢谢。
订阅将处于“已删除状态”,因为订阅者可能会因单击电子邮件通知中的取消订阅 URL 而取消订阅电子邮件订阅。
建议我们订阅邮件端点,手动复制订阅URL并粘贴到SNS控制台中。这样,订阅只能由 SNS 主题所有者删除/移除,而不能通过单击电子邮件中的取消订阅 URL 来删除/移除。
一旦我们手动将链接复制到 SNS 控制台并确认订阅,我们就可以控制该订阅,并在 CloudTrail 中生成用于审核目的的跟踪。
发生这种情况的原因有多种:
它可能确实是 gmail 自动垃圾邮件过滤器,但由于没有可用的日志,因此很难验证。
从AWS文档我看到您可以启用删除身份验证。这应该可以防止它被 Gmail 删除。
删除订阅。如果订阅需要身份验证 对于删除,仅限订阅所有者或主题所有者 可以取消订阅,并且需要 AWS 签名。如果取消订阅 调用不需要身份验证,并且请求者不是 订阅所有者,最终取消消息将发送至 端点,以便端点所有者可以轻松地重新订阅 如果取消订阅请求是无意的。
要更改此权限,请转到您的 SNS 主题概述并选择您想要的主题。单击编辑主题策略。如果您单击“高级”视图,请确保添加类似的内容:
"Action": [
"SNS:Unsubscribe"
],
"Resource": "arn:aws:sns:<AWS_REGION>:<AWS_ACCOUNT_ID>:<SNS_TOPIC>",
"Condition": {
"StringEquals": {
"AWS:SourceOwner": "<AWS_ACCOUNT_ID>"
}
}
这将确保只有帐户所有者才能取消订阅,而不是所有人。根据您的需要更改 <> 之间的变量。
将您的 sns 格式更改为 email-json 而不是电子邮件?