10

我的 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 存储桶策略中的显式拒绝应该覆盖 IAM 策略中的允许,对吗?但是当我以 testuser 身份登录时,我仍然可以访问该存储桶中的所有内容 - 我什至可以更改或删除该存储桶(以及所有其他存储桶)的存储桶策略。为什么我的明确否认没有做任何事情?

4

1 回答 1

10

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

"Principal": {
  "AWS":["arn:aws:iam::accountid:user/testuser"]
}
于 2012-07-21T23:03:34.390 回答