AWS Transfer for SFTP 只写存储桶访问?

AWS Transfer for SFTP write only bucket access?

是否可以授予 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) 我不能再放文件了。

我需要的是我得到的 SFTP 用户的只写存储桶策略。我错过了什么或者实际上是不可能的吗?

你没有遗漏任何东西。为了通过传输服务器将 object/file 放入 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/*

使用传输逻辑目录,您可以 hide/rename 存储桶和文件夹名称,甚至可以将用户限制到非常特定的路径。如果您将这些与 post 中概述的 S3 权限结合使用,您可以完全按照您的意愿限制客户端。

例如,您不能仅使用策略删除存储桶名称,但可以使用逻辑目录对其进行重命名。

示例: [{"Entry": "/client-visible-landing-directory", "Target": "/my bucket/writeonlyfolder"}]

因此,当客户端登录时,他们会执行“ls /”,客户端会看到一个名为 client-visible-landing-directory 的文件夹,但与该目录交互实际上会与 S3 uri my bucket/writeonlyfolder, 除了客户端永远不会看到任何实际的 S3 文件夹名称。

您可以定位任意数量的文件夹。将其与仅允许 PutObject 到该文件夹​​的 S3 策略相结合将创建一个只写传输用户。你可以有很多这样的逻辑映射,

您可以在逻辑目录博客中查看更多详细信息和示例 post:https://aws.amazon.com/blogs/storage/simplify-your-aws-sftp-structure-with-chroot-and-logical-directories/