2013-02-25 2 views
3

Я создаю резервные копии файлов от нескольких клиентов непосредственно в ведро Amazon S3 - каждый клиент в другую папку. Я использую простой .Net-клиент, запускаемый под задачей Windows один раз в сутки. Чтобы разрешить запись в ведро, моему клиенту требуется как ключ доступа AWS, так и секретный ключ (я создал новую пару).Amazon S3 Write Only access

Моей проблема:

  1. Как убедиться, что ни один из моих клиентов не мог потенциально использовать пару, чтобы заглянуть в ведре и в папке не его? Могу ли я создать пару «только для записи»?

  2. Я подхожу к этому правильно? Должно ли это быть разрешено с помощью настроек доступа AWS или я должен на клиентской стороне шифровать файлы на машине клиента (каждый клиент с другим ключом) перед загрузкой и избегать вышеупомянутого перекрестного доступа?

ответ

3

Используйте IAM для создания отдельного пользователя для каждого клиента (а не только дополнительной пары ключей), а затем предоставить каждому пользователю доступ только к своей папке S3. Например, если ведро называется everybodysbucket и файлы клиента по всем начать с userA/ (и клиентом B с userB/), то вы можете предоставить разрешение everybodysbucket/userA/* пользователя для клиента A и everybodysbucket/userB/* для клиента B.

Это не позволит каждому пользователю видеть какие-либо ресурсы, а не их собственные.

Использование также может контролировать определенные операции S3, а не только ресурсы, к которым каждый пользователь может получить доступ. Так что да, вы можете предоставить разрешение на запись только пользователям, если хотите.

+0

Значит ли это, что я буду использовать одну и ту же пару ключей для всех пользователей, или я создам новую пару для каждого пользователя IAM? –

+0

Каждый пользователь IAM будет иметь другую пару ключей. –

+0

Я попробовал то, что вы предложили, создал пользователя, добавил политику с различными действиями «S3 ::» к ресурсу «arn: aws: s3 ::: my_bucket/folder/user/*», и я получаю ошибки «отказались» , Если я изменю политику пользователя на «arn: aws: s3 ::: *», она будет работать. Нужно ли также устанавливать политику ведра, чтобы пользователь мог писать в свою папку? –