У меня есть ведро my_super_bucket
со следующим утверждением:
"Statement": [
{
"Sid": "Stmt4214214",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_super_bucket/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"my_super_ip_1",
"my_super_ip_2"
]
}
}
}
]
Ранее у корзины было общедоступное разрешение для объектов списка, поэтому, поскольку я хочу разрешить только эти два IP-адреса, я удалил эту привилегию. Тем не менее, я все еще могу получить доступ к любому файлу в этом сегменте с другого IP. Для дальнейшего устранения неполадок я предпринял следующие три шага:
- Я подумал, что это может быть из-за кеша CloudFront, поэтому попытался получить доступ к файлу напрямую с помощью URL-адреса S3, но все же мог его скачать.
- Добавил
"NotIpAddress": { "aws:SourceIp": "*"}
к условиям, но все еще мог получить доступ к файлам.
- Убрано разрешение на чтение объекта для каждого файла. Теперь я не могу получить доступ к файлу, независимо от SourceIP.
Итак, как я могу достичь своей цели - разрешить определенным IP-адресам доступ к любому файлу определенного сегмента? В IRC парень сказал мне, что эти политики применимы только к CLI AWS, но должен быть способ ограничить доступ и через URL, верно?