У нас есть много просматриваемых в Интернете баз данных MySQL и файлов изображений (xx TB), которые необходимо распространять среди наших пользователей.Чтобы избежать ошеломляющих счетов за передачу данных, мы разрешаем доступ к загрузке наших данных только из одного региона.
Как мы можем обеспечить это в политике сегмента S3?Мы придумали что-то вроде этого:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Same region access only",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::ourbucket"
],
"Condition": {
"IpAddress": {
"aws:SourceIp": ["18.208.0.0/13", "52.95.245.0/24", "54.196.0.0/15", ... ]
}
}
},
]
}
Отсюда и диапазоны IP-адресов: https://ip -ranges.amazonaws.com / ip-range.json
Однако существует слишком много диапазонов IP-адресов для любого конкретного региона AWS, поэтому добавить их в нашу политику сегментов является непростой задачей, которая уязвима для изменений, которые мы должны соблюдатьв будущем.
Есть ли лучший способ добиться этого, например, такой:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Permissions to foreign account 1",
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::ourbucket"
],
"Condition": {
"Source": {
"aws:Region": ["us-east-1", "eu-central-1", ... ]
}
}
},
]
}
Что было бы очень хорошо.Возможный?Или IP-диапазоны - единственный способ сделать это?