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/

Другие вопросы по тегам