AWS SES 策略 - 限制特定用户 + 电子邮件地址 + 每日发送限制

问题描述 投票:0回答:2

我希望尽可能锁定我用来发送电子邮件的 IAM 账户,其中包括以下限制:

  1. 仅从 1 个特定电子邮件地址发送电子邮件 [完成]
  2. 仅限制从 2 个特定 IAM 账户分发电子邮件
  3. 设置每个 IAM 账户每天发送 100 封电子邮件的限制

#1 已经实现,但 #2 似乎不可能,因为根据 AWS 策略生成器,

PRINCIPAL
在同一策略中不支持
IDENTITY_POLICY

对于#3,我很好奇如何解决这个问题,以及是否真的可以通过 AWS 策略来做到这一点?如果用户发送的电子邮件超过 100 封,是否有通过 Cloudwatch 的替代方法来标记/电子邮件提醒我?

这是我目前的政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Resource": "arn:aws:ses:eu-west-1:123456789012:identity/domain.com",
            "Action": [
                "ses:SendEmail",
                "ses:SendRawEmail"
            ],
            "Condition": {
                "StringEquals": {
                    "ses:FromAddress": "[email protected]"
                }
            }
        }
    ]
}
amazon-web-services amazon-ses
2个回答
1
投票

2人份: 简单的 IAM 策略和角色难道不能满足您的需求吗?只有具有所需角色的人员才能使用 SES,默认情况下会阻止所有其他访问。然后,您只允许这 2 个帐户承担该角色,解决方案就完成了,并且可以在将来轻松扩展到任何其他帐户(并且它也类似于在 AWS 中解决类似问题的所有其他方法)。

3人份: 说实话,我会以不同的方式和更通用的方式实现它。有一种东西叫做配置集。您可以指定想要在给定 SQS 队列上获取哪种类型的事件。在这里,您可能对 SEND 事件感兴趣。发送电子邮件时,您将在 SQS 队列上收到一条消息,其中包含所有必要信息(包括发件人电子邮件地址)。基于此,您可以将其拆分到不同的队列(基于发件人地址)并单独计数,或者仅对一个队列中的消息进行计数。之后,使用 cloudwatch,我只需针对队列大小创建一个警报,无论队列大小是否大于 100(可能在某些时间跨度内),并将处理程序设置为 SNS 主题(包含电子邮件处理的具体信息)。 我想说这个解决方案更通用,因为您实际上可以将电子邮件发送的主队列拆分为仅两个发件人,并且如果发生任何不同的情况,您甚至可以为其余电子邮件设置第三个队列(以防万一第二个不起作用)并在弹出任何内容时创建警报,然后它也会使用类似的 SNS 主题以您喜欢的任何方式提醒您。


0
投票

根据#3,您无法指定硬限制,但您可以跟踪使用情况并触发警报(您实际上可以根据此警报自动禁用 IAM,只是变得复杂)。

您无法通过 IAM 指定发送限制,但您可以跟踪 CloudWatch 上的账户设置了多少电子邮件并设置使用警报。

在这里您可以找到如何设置:

https://repost.aws/knowledge-center/ses-iam-user-sent-email

总结一下:

  • 创建配置集,如链接中所述。
  • 将此配置集关联到所有身份(链接中未说明)。
  • 在 Cloudwatch 上构建图表和警报,这非常灵活,可以设置任何内容来满足您的需求。
© www.soinside.com 2019 - 2024. All rights reserved.