【问题标题】:Granting permissions to an Amazon S3 bucket向 Amazon S3 存储桶授予权限
【发布时间】:2015-12-27 06:10:51
【问题描述】:

我是 AWS 的新手,我正在尝试授予用户访问 S3 存储桶的权限。 我创建了一个 IAM 用户,并拥有与该用户关联的访问密钥和秘密访问密钥 ID,但我正在努力弄清楚如何授予该用户对 S3 存储桶的权限。我想授予他们对存储桶的写访问权限(但不是读权限),但我会从所有访问权限开始,看看我是否可以获得权限。

我尝试通过策略创建工具创建策略,然后将策略附加到用户,但是当我尝试通过策略模拟器访问存储桶时,我收到错误“隐式拒绝没有匹配的语句”

这是策略生成器创建的策略:

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "Stmt1451195578000",
        "Effect": "Allow",
        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::techp.websitebackup/*"
        ]
    }
]

}

我认为尝试将此策略附加到 S3 中的存储桶,但出现错误:语句缺少必需元素 - 语句“Stmt1451195578​​000”缺少“主体”元素

我想我可能误解了 AWS 上的权限是如何工作的,你能提供一些指导吗?

谢谢 v

【问题讨论】:

  • 我假设您使用非 root 帐户将策略附加到存储桶。
  • 离你不远了。委托人是作为策略主体的实体(在本例中为用户)。如果这是存储桶策略,您需要指定它适用的用户。如果您将此用作用户策略(在 IAM 中),则隐含委托人。此外,从授予所有特权开始是您的好主意。授予您认为自己需要的东西,却没有意识到所有这些东西可能是什么,这是一个常见的错误。
  • 完美,谢谢 Michael - 这很有意义,也很有意义,为什么我在将策略附加到用户时不会出错,但在附加到存储桶时会出错(因为它需要委托人)

标签: amazon-web-services amazon-s3


【解决方案1】:

将您的政策与用户相关联是正确的做法。您的政策文件也是正确的。

在模拟器中,不要提供 * 作为资源的 ARN,而是提供限定名称。例如arn:aws:s3:::techp.websitebackup/* 或arn:aws:s3:::techp.websitebackup/foo/bar(因为用户对您帐户中的每个存储桶都没有权限)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 2016-09-05
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多