AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 583084
Accepted
Znarkus
Znarkus
Asked: 2014-03-20 02:53:22 +0800 CST2014-03-20 02:53:22 +0800 CST 2014-03-20 02:53:22 +0800 CST

如何让用户将文件上传到 S3 存储桶,但不覆盖或删除?

  • 772

我对用户有以下 IAM 政策

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1395161912000",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:PutObject",
        "s3:*"
      ],
      "Resource": [
        "arn:aws:s3:::bucketname"
      ]
    },
    {
      "Sid": "list",
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Resource": [
        "arn:aws:s3:::*"
      ]
    }
  ]
}

目标是让用户将文件上传到存储桶,但不能覆盖或删除。是用来备份的。我从ListBucketand开始PutObject,但*由于它不起作用而添加。甚至*不让用户上传文件,只是获取Access Denied.

当我尝试模拟器时,它返回Denied - Implicitly denied (no matching statements found).for ListBucket,这似乎很奇怪,因为我已经隐含地允许这样做。

我已经尝试过 Cyber​​duck 和 3Hub 作为 S3 客户端。

知道有什么问题吗?

amazon-s3
  • 1 1 个回答
  • 18203 Views

1 个回答

  • Voted
  1. Best Answer
    Steffen Opel
    2014-03-20T03:58:53+08:002014-03-20T03:58:53+08:00

    在为Amazon S3制定Amazon IAM策略时,您需要了解服务上的操作(例如ListAllMyBuckets)、桶上的操作(例如ListBucket)和对象上的操作(例如GetObject)之间的区别。

    特别是,Resource您的策略规范需要根据以下模式处理适当的目标实体(例如,请参阅Amazon S3 的各种示例策略):

    • 服务运营——arn:aws:s3:::*
    • 对桶的操作 -arn:aws:s3:::<bucket>
    • 对对象的操作 -arn:aws:s3:::<bucket>/<object>

    解决方案

    您遇到Access Denied,因为您为 指定了存储桶级资源PutObject,这需要对象级资源规范,例如arn:aws:s3:::<bucket>/*- 因此,以下策略应涵盖您的示例用例:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "s3:ListAllMyBuckets"
          ],
          "Resource": [
            "arn:aws:s3:::*"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:ListBucket"
          ],
          "Resource": [
            "arn:aws:s3:::bucketname"
          ]
        },
        {
          "Effect": "Allow",
          "Action": [
            "s3:PutObject"
          ],
          "Resource": [
            "arn:aws:s3:::bucketname/*"
          ]
        }
      ]
    }
    
    • 27

相关问题

  • 如何将 Symantec Backup Exec 与 S3 Amazon 存储结合使用?

  • Amazon S3 是否对您的数据做出任何形式的保证?

  • Amazon S3 存储如何计费?[关闭]

  • 使用亚马逊 S3 时的注意事项

  • 用于备份等的 S3 接口 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve