AWS Transfer для доступа к сегменту только для записи по SFTP?
Можно ли предоставить пользователю SFTP доступ только для записи к корзине?
- Sid: AllowListingOfUserFolder
Action:
- s3:ListBucket
Effect: Allow
Resource:
- arn:aws:s3:::mybucket
- Sid: HomeDirObjectAccess
Action:
- s3:PutObject*
Effect: Allow
Resource: arn:aws:s3:::mybucket/*
У меня есть эта политика для моей роли пользователя SFTP прямо сейчас, и она позволяет мне видеть содержимое корзины и помещать новые файлы. Но когда я удаляюAllowListingOfUserFolder (s3:ListBucket)
Больше не могу складывать файлы. И это в основном то, что мне нужно. Что мне здесь не хватает?
2 ответа
Вы ничего не упускаете. Чтобы поместить объект / файл в ведро s3 через сервер передачи, вам необходимо предоставить пользователю доступ к ведру списка, тогда только пользователь может поместить объект в ваш каталог s3.
Однако вы можете прикрепить к пользователю следующую политику, чтобы разрешить конкретным Amazon S3 размещать разрешения на уровне папки (например, mybucket / in / *).
Example:-
- Sid: AllowListingOfUserFolder
Action:
- s3:ListBucket
Effect: Allow
Resource:
- arn:aws:s3:::mybucket
- Sid: HomeDirObjectAccess
Action:
- s3:PutObject*
Effect: Allow
Resource: arn:aws:s3:::mybucket/in/*
Используя передачу логических каталогов, вы можете скрывать / переименовывать сегменты и имена папок и даже ограничивать пользователей очень конкретными путями. Если вы объедините их с разрешениями S3, описанными в вашем сообщении, вы можете ограничить клиентов именно так, как вы хотите.
Например, вы не можете удалить имя сегмента, используя только политику, но вы можете переименовать его с помощью логических каталогов.
Пример:[{"Entry": "/client-visible-landing-directory", "Target": "/my bucket / writeonlyfolder"}]
Таким образом, когда клиент вошел в систему, он бы и выполнил 'ls /', клиент увидит папку с именем client-visible-landing-directory, но взаимодействие с этим каталогом фактически будет взаимодействовать с S3 uri my bucket / writeonlyfolder, за исключением того, что клиент никогда не видит любые фактические имена папок S3.
Вы можете настроить таргетинг на любое количество папок. Объединение этого с политикой S3, которая разрешает использовать только PutObject в этой папке, приведет к созданию пользователя Transfer только для записи. У вас может быть много таких логических отображений, там
Вы можете увидеть более подробную информацию и примеры в сообщении блога о логических каталогах: https://aws.amazon.com/blogs/storage/simplify-your-aws-sftp-structure-with-chroot-and-logical-directories/