Как мне написать IAM, чтобы только определенный VPC мог отправлять почту через SES?
Я использую Redash на экземпляре EC2, и мне нужно отправлять приглашения через Amazon SES.
Я хотел бы добавить параметр, ограничивающий отправителя почты внутри определенного VPC, где находится экземпляр Redash.
Вот мой IAM для SES:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "ses:SendRawEmail",
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceVpce": "vpce-******"
},
"ForAnyValue:StringLike": {
"ses:Recipients": "*@mycompany.com"
}
}
}
]
}
Но я не могу отправлять письма. Я думаю, это потому, что я использую конечную точку VPC в приведенном выше коде. Это еще не доступно для SES.
Есть ли другой способ указать определенный VPC?
1 ответ
Это интересный вызов!
Интерфейс Amazon SES находится в Интернете, поэтому теоретически любой может получить к нему доступ. Обычно ограничения политики используют разрешения для пользователя IAM или роли, которая вызывает SES, чтобы определить, разрешены ли вызовы, а не от того, откуда был сделан вызов.
Я предполагаю, что вы делаете это, потому что вы хотите, чтобы ваша производственная система отправляла электронные письма, а не системы разработки / тестирования.
Тем не менее, это невозможно ограничить через VPC, потому что Amazon SES не имеет представления о концепции VPC. Он просто получает вызовы API через Интернет.
Если ваше приложение находится в частной подсети и отправляет запросы через NAT-шлюз, вы можете добавить политику для ограничения на основе IP -адреса NAT-шлюза.
Вы можете сделать это либо, установив ограничение на Allow
заявление или добавив Deny
заявление.
См. AWS: отказ в доступе к AWS на основе исходного IP -адреса - Управление идентификацией и доступом AWS