Amazon web services 限制S3子文件夹级别关于私有和公共的存储桶策略
我们有很多信息,我们可以通过存储桶级别将存储桶公开和私有。但我很好奇,我们可以将bucket策略设置为文件夹级别,甚至子文件夹。下面是我当前S3存储桶中的文件夹结构Amazon web services 限制S3子文件夹级别关于私有和公共的存储桶策略,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我们有很多信息,我们可以通过存储桶级别将存储桶公开和私有。但我很好奇,我们可以将bucket策略设置为文件夹级别,甚至子文件夹。下面是我当前S3存储桶中的文件夹结构 companies/aa-company/public-folder companies/aa-company/private-folder companies/bb-company/public-folder companies/bb-company/private-folder 我想知道的是,我想在bucket策略中对公用文件
companies/aa-company/public-folder
companies/aa-company/private-folder
companies/bb-company/public-folder
companies/bb-company/private-folder
我想知道的是,我想在bucket策略中对公用文件夹进行公共读取访问。有可能吗?是的,绝对有可能。您可以使用来实现这一点
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::<bucket-name>/companies/aa-company/public-folder*",
"arn:aws:s3:::<bucket-name>/companies/bb-company/public-folder*"
]
}
]
}
{
“版本”:“2012-10-17”,
“声明”:[
{
“效果”:“允许”,
“委托人”:“*”,
“操作”:“s3:GetObject”,
“资源”:[
“arn:aws:s3::/companys/aa company/public folder*”,
“arn:aws:s3::/companys/bb company/public folder*”
]
}
]
}
是的,您可以通过以下方式:
您可以将通配符用作资源ARN的一部分。您可以在任何ARN段(由冒号分隔的部分)内使用通配符(*和?)。星号(*)表示零个或多个字符的任意组合,问号(?)表示任意单个字符。您可以使用多个*或?每个段中包含个字符,但通配符不能跨越段
示例策略可以如下所示(基于):
您还需要禁用bucket上的block公共访问设置
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::test-bucket-342-d/*/public-folder/*"
}
]
}