【问题标题】:Renaming object from in aws s3 console, with IAM user使用 IAM 用户在 aws s3 控制台中重命名对象
【发布时间】:2017-03-23 18:37:30
【问题描述】:

创建了一个 IAM 用户,对特定 ARN(只有一个存储桶)具有 S3 完全访问权限 (S3:*)。上传和删除作品,但不能重命名或复制/粘贴。

这是我的 IAM 政策。

    {
        "Sid": "Stmt1490288788",
        "Effect": "Allow",
        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::bucket-name/*"
        ]
    }

【问题讨论】:

  • 您如何重命名/复制和粘贴?您是通过 S3 管理控制台进行的吗?使用上述策略,他们甚至无法使用控制台,因为它不授予列出存储桶的权限。
  • 是的,我是从 s3 管理控制台执行的。是的,你是对的,他们不允许列出存储桶,但我可以使用存储桶链接直接进入

标签: amazon-web-services amazon-s3


【解决方案1】:

我不知道这是否是正确的解决方案,但给予ListAllMyBuckets 权限对我有用。

我刚刚在前一个语句的基础上添加了另一个语句。

{
    "Sid": "Stmt1490288788",
    "Effect": "Allow",
    "Action": [
        "s3:*"
    ],
    "Resource": [
        "arn:aws:s3:::bucket-name/*"
    ]
}{
    "Sid": "Stmt1490289746001",
    "Effect": "Allow",
    "Action": [
       "s3:ListAllMyBuckets"
    ],
    "Resource": [
       "arn:aws:s3:::*"
    ]
}

因此,此策略列出了所有存储桶,但仅允许 put/delete/get 访问特定存储桶。仍然想知道重命名/复制和列出所有存储桶权限之间的关系是什么。

【讨论】:

    【解决方案2】:

    虽然 S3 本身实际上没有重命名功能,但某些接口可能会尝试通过在后台使用 S3 PUT 对象复制和 DELETE 操作来实现它。他们的实施可能需要其他存储桶级别的权限才能完成,这就是您的策略可能会失败的原因。试试这个:

    {
        "Sid": "Stmt1490288788",
        "Effect": "Allow",
        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::bucket-name",
            "arn:aws:s3:::bucket-name/*"
        ]
    }
    

    不同之处在于授予对存储桶本身(声明的第一个资源)以及存储桶中的对象(声明的第二个资源)执行的操作的权限。

    【讨论】:

    • 实际上我在 aws 控制台本身。不是访问 s3 的第三方工具。我在那里看到 s3 对象中的重命名选项。可能他们正在复制和删除。
    • 我已经有一个类似的存储桶策略。 {“Sid”:“Stmt1490288788”,“效果”:“允许”,“主体”:{“AWS”:“arn:aws:iam::768787887788:user/dsd-user”},“操作”:“s3 :*", "资源": "arn:aws:s3:::bucket-name/*" }
    • @RobinCSamuel “可能他们正在复制和删除”。正确的。控制台确实复制和删除,以模拟移动,因为 S3 实际上没有移动操作。
    • 添加上述语句没有任何作用。通过授予 list all buckets 权限,我可以从控制台重命名。
    猜你喜欢
    • 2013-02-27
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2015-12-06
    • 2023-02-25
    • 2019-07-10
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多