【问题标题】:Amazon S3 Write Only accessAmazon S3 只写访问
【发布时间】:2020-02-15 04:36:59
【问题描述】:

我将多个客户的文件直接备份到 Amazon S3 存储桶中 - 每个客户都备份到不同的文件夹。我每晚使用一次在 Windows 任务下运行的简单 .Net 客户端。为了允许写入存储桶,我的客户端需要 AWS 访问密钥和密钥(我创建了一个新密钥对)。

我的问题是:

  1. 我如何确保我的客户都不会使用这对来窥探存储桶和不是他自己的文件夹?我可以创建“只写”访问对吗?

  2. 我的方法是否正确?这应该通过 AWS 访问设置来解决,还是我应该在上传之前对客户机器上的文件(每个客户使用不同的密钥)进行客户端加密并避免上述交叉访问?

【问题讨论】:

    标签: permissions amazon-web-services amazon-s3


    【解决方案1】:

    我刚刚创建了一个像这样的只写策略,它似乎正在工作:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:PutObject"
                ],
                "Resource": [
                    "arn:aws:s3:::BUCKET_NAME/*"
                ]
            }
        ]
    }
    

    我认为创建这样的水滴是一个更简洁的解决方案。

    【讨论】:

      【解决方案2】:

      使用 IAM 为每个客户创建一个单独的用户(而不仅仅是一个额外的密钥对),然后让每个用户只访问他们的 S3 文件夹。例如,如果存储桶名为everybodysbucket,并且客户 A 的文件都以 userA/ 开头(客户 B 的文件以 userB/ 开头),那么您可以将权限授予客户 A 的用户 everybodysbucket/userA/*,并授予everybodysbucket/userB/* 客户 B。

      这将防止每个用户看到任何不属于他们自己的资源。

      Use 还可以控制每个用户可以访问的特定 S3 操作,而不仅仅是资源。所以是的,您可以根据需要向用户授予只写权限。

      【讨论】:

      • 这是否意味着我将为所有用户使用相同的密钥对,或者我将为每个 IAM 用户生成一个新密钥对?
      • 每个 IAM 用户都有不同的密钥对。
      • 我尝试了您的建议,创建了一个用户,将具有各种“S3::”操作的策略添加到资源“arn:aws:s3:::my_bucket/folder/user/*”和我收到“拒绝访问”错误。如果我将用户策略更改为“arn:aws:s3:::*”,它会起作用。我是否还需要设置存储桶策略以允许用户写入他的文件夹?
      • 我刚试了一下,效果很好。我的用户只有一个 S3 权限:PutObject,其 ARN 与上述类似。我能够在该文件夹中创建一个对象。您确定您在“my_bucket”中创建的对象名为“folder/user/somethingorother”吗?
      • 是的。但是我设法找到了问题 - 在代码的某个地方,某个天才决定使用 GetObject 检查目录结构是否存在,所以他基本上是在寻找父文件夹 - 用户没有权限。感谢您的回答 - 它解决了我的问题。
      【解决方案3】:

      作为Charles' answer 中推荐的方法的一种变体,您还可以通过 SFTP 在用户级别管理访问控制。这些用户都可以共享相同的全局 IAM 策略:

      • SFTP 确实支持用户特定的主目录(类似于“chroot”)。
      • SFTP 允许您通过服务管理的身份验证或您自己的身份验证提供程序来管理用户访问。我不确定服务管理的身份验证是否有用户限制。
      • 如果您希望允许用户使用客户端访问上传的文件,SFTP 提供的非常干净。

      【讨论】:

        猜你喜欢
        • 2012-05-22
        • 2012-10-28
        • 2014-04-11
        • 2020-10-08
        • 2015-10-19
        • 2017-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多