1

У меня есть собственный ведро s3. Я пытаюсь получить к нему доступ с авторизацией. Я могу это сделать, только создав предварительно подписанный URL для каждого объекта в ведре с помощью AWS-SDK, что совсем не практично. Также я попытался настроить политику ведра и дать предпущение только определенному диапазону ips, но это не сработает. Как я могу увидеть, что там не так? Как вы думаете, лучший подход к доступу к частному ведру? Я немного смущен.Доступ к личным файлам на s3

policy: 
{ 
    "Version": "2008-10-17", 
    "Id": "S3PolicyId1", 
    "Statement": [ 

     { 
      "Sid": "IPDeny", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::bucket/*", 
      "Condition": { 
       "NotIpAddress": { 
        "aws:SourceIp": "public/private IP of ec2 instance/32" 
       } 
      } 
     }, 
     { 
      "Sid": "IPDeny", 
      "Effect": "Deny", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:*", 
      "Resource": "arn:aws:s3:::bucket/*", 
      "Condition": { 
       "NotIpAddress": { 
        "aws:SourceIp": "myIPAddress/32" 
       } 
      } 
     } 
    ] 
} 
+1

* "Кроме того, я попытался настройки политики ведра и дайте предпущение только определенному диапазону ips, но это не сработает ». * Ну, это делает ** работает **. Возможно, было бы полезно, если бы вы показали нам политику, которую вы пытаетесь использовать, чтобы разрешить доступ по IP. –

ответ

6

Я думаю, что учетные записи по умолчанию не имеют доступа к S3, если только им не предоставлен доступ через политику. Однако S3 по умолчанию разрешен для доступа любого IP-адреса. Таким образом, чтобы блокировать IP-адрес, вы должны явно указывать опровержения в политике, а не разрешать.

Вам следует перевернуть политику, разрешая доступ только с моего IP-адреса, чтобы запретить доступ извне, что НЕ является моим IP-адресом.

Так что я думаю, вы могли бы использовать это:

{ 
"Id": "S3PolicyId1", 
"Statement": [ 
    { 
     "Sid": "IPAllow", 
     "Effect": "Allow", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:*", 
     "Resource": "arn:aws:s3::: bucketname", 
     "Condition": { 
      "IpAddress": { 
       "aws:SourceIp": "CIDR Of Allowed IP" 
      } 
     } 
    } 
] 

Вы должны попробовать это:

{ 
"Id": "S3PolicyId1", 
"Statement": [ 
    { 
     "Sid": "IPDeny", 
     "Effect": "Deny", 
     "Principal": { 
      "AWS": "*" 
     }, 
     "Action": "s3:*", 
     "Resource": "arn:aws:s3::: bucket name*", 
     "Condition": { 
      "NotIpAddress": { 
       "aws:SourceIp": "CIDR Of Allowed IP" 
      } 
     } 
    } 
] 

Я надеюсь, это поможет

+0

Я не знаю, как вам удалось выяснить, в чем дело, даже не зная, что я сделал! Спасибо! – Kratos

+0

Теперь я пытаюсь предоставить доступ к 3 различным IP-адресам, используя один и тот же оператор 3 раза. Но это, похоже, не позволяет доступ к любому ресурсу. – Kratos

+0

Можете ли вы, пожалуйста, показать код –