如何解决拒绝所有用户的访问权限,只有一个用户无法访问S3存储桶中的私有文件夹 时段政策用户政策
我有一个公共S3存储桶,其中有2个文件夹public-folder
和private-folder
我希望每个人都可以通过编程方式访问public-folder
,并且我只希望user1
可以访问private-folder
。
在S3存储桶中,我添加了以下策略:
{
"Version": "2012-10-17","Id": "Policy1568654876568","Statement": [
{
"Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "arn:aws:s3:::my-bucket/*"
},{
"Effect": "Deny","NotPrincipal": {
"AWS": [
"arn-of-user1"
]
},"Resource": "arn:aws:s3:::my-bucket/private-folder/*"
}
]
}
我已从IAM中为user1
创建了一个策略,使其能够访问存储桶:
{
"Version": "2012-10-17","Statement": [
{
"Action": [
"s3:ListBucket"
],"Effect": "Allow","Resource": "arn:aws:s3:::my-bucket"
},{
"Action": [
"s3:DeleteObject","s3:GetObject","s3:PutObject"
],"Resource": "arn:aws:s3:::my-bucket/*"
}
]
}
是否有更好的方法来实现这一目标?是否可以拒绝所有人使用S3策略访问private-folder
,然后使用我为user1
定义的IAM策略覆盖它?
解决方法
如果您拥有public-folder
和private-folder
,以下操作将不会变得更加容易和自然。以下内容基于以下事实:存储桶及其对象默认为私有。
时段政策
它允许公众访问public-folder
:
{
"Version": "2012-10-17","Id": "Policy1568654876568","Statement": [
{
"Effect": "Allow","Principal": "*","Action": "s3:GetObject","Resource": "arn:aws:s3:::my-bucket/public-folder/*"
}
]
}
用户政策
它允许放置,获取和删除private-folder
中的对象,以及列出存储桶。
{
"Version": "2012-10-17","Statement": [
{
"Action": [
"s3:ListBucket"
],"Effect": "Allow","Resource": "arn:aws:s3:::my-bucket"
},{
"Action": [
"s3:DeleteObject","s3:GetObject","s3:PutObject"
],"Resource": "arn:aws:s3:::my-bucket/private-folder/*"
}
]
}
是否可以拒绝所有人使用S3策略访问私有文件夹,然后使用我为user1定义的IAM策略覆盖该私有文件夹?
明确拒绝会覆盖所有允许。因此,如果您拒绝所有人访问,则不能使用任何IAM策略来允许访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。