繁体   English   中英

使用 root 访问密钥和密钥时的 S3 策略

[英]S3 policy when using root access key and secret key

所以,我最近创建了一个新的 AWS 账户来使用 S3 存储。 我目前只有我的 root 用户帐户。 我正在使用 java aws-sdk 上传文件。 S3Client object 是使用我的根帐户密钥和访问密钥设置的。 此外,只需使用 aws-sdk 内置的 putObject() 方法进行上传。 这里没有什么花哨的。

现在,我尝试将策略附加到我的存储桶以限制存储桶上的上传和下载功能。 首先,我已将所有 S3object 权限授予我的存储桶,并且可以通过代码成功上传。 然后我尝试在我的策略中仅附加 getObject、putObject、getObjectAcl、putObjectAcl,并且可以再次成功上传。

在此之后,我删除了 putObject 和 putObjectAcl,只有 getObject 权限,但令人惊讶的是仍然可以使用我的代码上传文件。 我相信删除上传权限会给我 403 Access Denied。 是因为我正在使用我的 root 用户访问密钥和密钥,这提供了一些额外的权限吗? 还是我在这里缺少一些基本的东西?

未经上传许可的我的政策:

{
  "Id": "PolicyXXXXXXX",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "StmtXXXXXX",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectAcl",
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::bucket-name/*",
      "Principal": {
        "AWS": [
          "arn:aws:iam::11111111111:root"
        ]
      }
    }
  ]
}

您正在使用其访问密钥和密钥的用户应该具有 putObject 权限。

如果基于资源的策略和基于身份的策略都适用于请求,则 AWS 会检查所有策略中的至少一个Allow 政策评估逻辑请参考这里

如果基于身份的策略、基于资源的策略或两者都允许某个操作,则 AWS 允许该操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM