AWS S3 Bucket有许多策略选项,其中包括 “Block public access” 和空白 Bucket policy 文件。它们的区别在于Block public access是一项全局设置,而仅将policy设置为空并不会阻止公共访问。
下面给出AWS CLI示例代码:
aws s3api put-public-access-block --bucket example-bucket --public-access-block-configuration "BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true"
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPublicRead", "Effect": "Deny", "Principal": "", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::example-bucket/" ], "Condition": { "IpAddress": { "aws:SourceIp": [ "1.2.3.4/32" ] } } } ] }
在这个 Bucket policy 配置文件中,“Effect”设置为“Deny”,这意味着所有公开访问都将被拒绝。这在Resource部分中指定,特定允许“aws:SourceIp”(即IP地址为1.2.3.4)的请求。对于不允许阅读的对象,它们需要进一步具体指定。
下一篇:AWSS3策略大小限制