0

是否可以为 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 用户的只写存储桶策略。我错过了什么还是实际上不可能?

4

2 回答 2

1

你没有错过任何东西。为了通过传输服务器将对象/文件放入 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/*
于 2021-02-11T01:11:43.340 回答
0

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

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

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

因此,当客户端登录并执行“ls /”时,客户端会看到一个名为 client-visible-landing-directory 的文件夹,但与该目录交互实际上会与我的存储桶/writeonly 文件夹的 S3 uri 交互,除非客户端永远不会看到任何实际的 S3 文件夹名称。

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

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

于 2021-06-13T16:25:21.507 回答