Подтвердить что ты не робот

Политика доступа к файлам Amazon S3 на основе IP-адреса

Есть ли способ ограничить доступ к файлу, хранящемуся в Amazon S3, на основе IP-адреса клиента?

У меня есть файл, который хранится там, к которому должен быть доступ только определенный IP-адрес. Как это сделать?

4b9b3361

Ответ 1

Да, есть, хотя я сам этого не использовал.

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"]
      }
}

Ответ 2

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, также предоставляется.