Есть ли способ ограничить доступ к файлу, хранящемуся в Amazon S3, на основе IP-адреса клиента?
У меня есть файл, который хранится там, к которому должен быть доступ только определенный IP-адрес. Как это сделать?
Есть ли способ ограничить доступ к файлу, хранящемуся в Amazon S3, на основе IP-адреса клиента?
У меня есть файл, который хранится там, к которому должен быть доступ только определенный IP-адрес. Как это сделать?
Да, есть, хотя я сам этого не использовал.
S3 поддерживает гранулированный контроль над ведрами и объектами в них с помощью "Язык политики доступа". Существуют специальные списки белого и черного списка IP. Вам придется писать заявления APL и загружать их, однако.
http://docs.amazonwebservices.com/AmazonS3/latest/dev/AccessPolicyLanguage.html
Здесь 2 примера раздела условий:
белый список
"Condition" : {
"IpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
}
Черный список
"Condition" : {
"NotIpAddress" : {
"aws:SourceIp" : ["192.168.176.0/24","192.168.143.0/24"]
}
}
Amazon описывает это в своих документах S3 в разделе "Примеры политики Bucket", Ограничение доступа к определенным IP-адресам:
Условие в этом операторе идентифицирует диапазон разрешенных IP-адресов 54.240.143. *, за одним исключением: 54.240.143.188.
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": ["54.240.143.0/24", "1.2.3.4/32" ]},
"NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}
}
}
]
}
Вы можете добавить что-то подобное в консоли AWS S3. Выберите свой ковш, откройте вкладку "Свойства", затем "Разрешения". Нажмите "Добавить политику ведра" и вставьте его в форму диалога всплывающих окон.
Я изменил пример Amazon, чтобы показать, как несколько IP-диапазонов могут быть включены в политику, предоставляя массив JSON вместо строки. Запись "aws: SourceIp" в "1.2.3.4/32" означает, что доступ к одному IP-адресу, 1.2.3.4, также предоставляется.