2014-11-30 4 views
0

Группа друзей из нас делает проект в уменьшении карты и работает над общим набором данных. Мой друг прислал данные на s3 ведро, используя свой аккаунт AWS и установить политику s3 ведро с этим:Доступ к общественному AWS s3 bucket

{ 
    "Version": "2008-10-17", 
    "Id": "Policy1417380373111", 
    "Statement": [ 
     { 
      "Sid": "Stmt1417380310953", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::<bucket-name>/*" 
     }, 
     { 
      "Sid": "Stmt1417380367754", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:PutObject", 
      "Resource": "arn:aws:s3:::<bucket-name>/*" 
     } 
    ] 
} 

Примечание: в вышеуказанной политике устанавливается на имя ведра.

Теперь как смонтировать это общедоступное ведро как один из кодов s3 в моей учетной записи aws?

ответ

0

Отображаемая политика ведра позволит любому пользователю загрузить (PutObject) и загрузить (GetObject) с указанного ведра Amazon S3.

Однако он не позволит перечислять ведро, которое, скорее всего, требуется для операций по сокращению карты. Таким образом, я хотел бы также рекомендовать предоставление ListBucket разрешения на самом ведре:

{ 
    "Id": "SomeID", 
    "Statement": [ 
    { 
     "Sid": "SomeID", 
     "Action": [ 
     "s3:GetObject", 
     "s3:ListBucket", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource": [ 
     "arn:aws:s3:::<bucket-name>", 
     "arn:aws:s3:::<bucket-name>/*" 
     ], 
     "Principal": { 
     "AWS": [ 
      "123456789012" 
     ] 
     } 
    } 
    ] 
} 

Кроме того, не рекомендуется, чтобы предоставить доступ общественности к вашему ведру. Вместо этого ваш друг должен ввести свой номер счета в поле Principal, чтобы вы могли получить доступ к данным, но никто не может получить к нему доступ.

Все это сделает ваш ковш доступным, но он не появится на вашей консоли управления Amazon S3 и не сможет «установить» ведро в вашу собственную учетную запись. Тем не менее, вы сможете перечислить, получить и поместить объекты.

Вы можете проверить это с помощью интерфейса командной строки AWS (CLI). Попробуйте указать содержимое общего хранилища или скопируйте файл в него:

$ aws s3 ls s3://<bucket-name> 
$ aws s3 cp file.txt s3://<bucket-name>/file.txt 
Смежные вопросы