为什么我的 AWS S3 存储桶策略不覆盖我的 IAM 策略?



我的IAM帐户中有一个名为"testuser"的用户,他拥有管理员权限,如下所示:

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "*",
      "Resource": "*"
    }
  ]
}

然后我在S3存储桶上有一个策略,拒绝这个用户访问,就像这样:

{
  "Statement": [
    {
  "Effect": "Deny",
  "Principal": {
    "AWS": "my-account-id:user/testuser"
  },
  "Action": "s3:*",
  "Resource": "arn:aws:s3:::my-bucket-name/*"
    }
  ]
}

那么,S3 bucket策略中的显式拒绝应该覆盖IAM策略中的允许,对吗?但当我以测试用户身份登录时,我仍然可以访问该bucket中的所有内容——我甚至可以更改或删除该bucket(以及其他所有bucket)的bucket策略。为什么我不明确否认做了什么?

尝试对bucket策略中的用户ID使用完整的ARN表单:

"Principal": {
  "AWS":["arn:aws:iam::accountid:user/testuser"]
}

相关内容

  • 没有找到相关文章