【问题标题】:S3: The bucket can not be accessed by its root account?S3:bucket的root账户不能访问?
【发布时间】:2016-04-29 02:33:13
【问题描述】:

S3 的权限授予比较复杂。据我了解,root 帐户(使用电子邮件登录的帐户)应该可以访问任何内容,但存储桶中不属于它的对象除外(事实并非如此)。

我的设置:

> a root account, called: myroot a IAM user, called myiam, whose parent
> account is myroot

myiam 创建一个存储桶,名为 mybucket。如果没有授予权限,myroot 将无法访问它。

我查阅了aws文档(http://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-overview.html),认为不应该是这样的

默认情况下,所有 Amazon S3 资源都是私有的。只有资源所有者才能访问该资源。资源所有者是指创建资源的 AWS 账户。例如:

您用于创建存储桶和对象的 AWS 账户拥有这些 资源。如果您创建 AWS Identity and Access Management (IAM) 您的 AWS 账户中的用户,您的 AWS 账户是父所有者。如果 IAM 用户上传一个对象,即父账户,用户可以将其上传到该对象 属于,拥有该对象。

【问题讨论】:

  • 您遇到什么错误? 403 被拒绝?
  • @Tom 不确定。我用控制台。它说“对不起!您无权查看此存储桶”
  • 看看你是否对存储桶本身拥有正确的权限,也许你有一个像 S3 存储桶一样的东西,上面有一个明确的“拒绝”。请参阅我对以下链接的回答,其中我描述了对 S3 存储桶的访问,也许这是要检查的东西:stackoverflow.com/questions/31730317/…
  • @Tom 感谢您的回复。但是根帐户可以访问其帐户下的任何存储桶,不是吗?
  • 如果您在 S3 存储桶上设置了具有明确拒绝的存储桶策略,那么即使根也无法描述该存储桶。例如:“效果”:“拒绝”、“主体”:“*”、“动作”:“s3:ListBucket”、“资源”:“arn:aws:s3:::your-bucket-name”

标签: amazon-web-services amazon-s3


【解决方案1】:

它应该可以正常工作。

我做了以下测试来测试你的情况:

  • 以 IAM 用户身份登录(使用帐户、用户名、密码)
  • 在控制台中创建了一个存储桶
  • 上传了一个对象(默认保持私有)
  • 以 root 帐户登录(使用电子邮件地址、密码、MFA)
  • 我能够在控制台中查看存储桶的内容
  • 我能够查看上传对象的内容(使用Actions -> Open 生成签名 URL)

【讨论】:

  • 确实如此,因为在创建存储桶后,默认被授权者设置为 root 帐户,所有者也是 root 帐户。但是,如果您删除此默认被授权者,则只有存储桶的创建者(在这种情况下为您的 IAM 用户)可以访问它,甚至不能访问它,即使是作为根账户的所有者。这就是让我困惑的地方
  • 啊!现在我明白了。是的......虽然删除“被授予者”选项将阻止根帐户访问,但根帐户可以再次添加访问权限,因此可以访问存储桶。没有办法阻止 root 帐户添加自己的访问权限。
猜你喜欢
  • 2021-06-21
  • 2018-12-20
  • 2021-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多