我有一个存储桶,我只想允许root用户使用(因此,IAM用户和角色都不能访问它,只有root用户可以访问它)。我最终制定了似乎可行的政策:
{
"Version": "2012-10-17",
"Id": "Policy1544958708832",
"Statement": [
{
"Sid": "Stmt1544958705029",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::<accountid>:root"
},
"Action": [
"s3:Get*",
"s3:List*"
],
"Resource": "arn:aws:s3:::<bucket>/*"
}
]
}
我已确认我无法以管理员用户身份访问存储桶中的对象,但是在以root用户身份登录后可以访问它们。
但是我不明白为什么会起作用。我认为:root
是整个帐户,而不仅仅是root用户(ref),因此它应该允许其他用户访问对象。但我看到不是。
那是为什么?