Reu*_*ine 2 amazon-s3 amazon-web-services
我想允许公共读取访问我的 S3 存储桶(2 个文件夹除外)。
在 2 个文件夹中,我只想允许来自特定网络的访问者访问。
有没有办法定义这个?
有多种不同的方法可以授予对 Amazon S3 中存储的数据的访问权限:
您的用例适合存储桶策略。
您可以使用如下策略授予对整个 Amazon S3 存储桶的访问权限:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::examplebucket/*"]
}
]
}
Run Code Online (Sandbox Code Playgroud)
您可以根据 IP 地址范围授予访问权限,如下所示:
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"},
"NotIpAddress": {"aws:SourceIp": "54.240.143.188/32"}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
您希望“允许公共读取访问我的 S3 存储桶(2 个文件夹除外)”的情况稍微困难一些,因为它是“除 之外的所有内容”用例。
选项 1:特定文件夹
例如:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource":["arn:aws:s3:::examplebucket/folder1/*",
"arn:aws:s3:::examplebucket/folder2/*"]
},
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": ["arn:aws:s3:::examplebucket/folder3/*",
"arn:aws:s3:::examplebucket/folder4/*"],
"Condition": {
"IpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是,这要求您专门列出每个文件夹。
选项 2:除...之外的所有选项
在此规则中,您授予公共访问权限,但如果某些文件夹不是来自正确的 IP 范围,则拒绝这些文件夹:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddPerm",
"Effect":"Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource":["arn:aws:s3:::examplebucket/*"]
},
{
"Sid": "IPAllow",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": ["arn:aws:s3:::examplebucket/folder3/*",
"arn:aws:s3:::examplebucket/folder4/*"],
"Condition": {
"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}
}
]
}
Run Code Online (Sandbox Code Playgroud)
Deny
请注意with的使用NotIpAddress
,它表示如果请求不是来自定义的 IP 地址范围,则拒绝访问。
然而,DENY
overrides ALLOW
,因此这也意味着您将无法访问受限存储桶,除非您来自该 IP 地址范围 - 即使您的 IAM 用户已被明确授予ALLOW
这样做的权限。例如,如果您是在 S3 中拥有所有权限的管理员,但如果您来自给定的 IP 范围,您仍然会被拒绝访问受限文件夹。因此,它对您来说可能限制太多,因为它会影响所有使用,即使通过控制台/API 访问也是如此。
归档时间: |
|
查看次数: |
2873 次 |
最近记录: |