在 AWS S3 中禁止公共访问有多种方法,其中一种是使用存储桶策略。以下是一个示例存储桶策略,用于阻止匿名用户访问存储桶中的对象:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Principal": "*",
"Action": ["s3:GetObject"],
"Resource": ["arn:aws:s3:::your_bucket_name/*"],
"Condition": {
"IpAddress": {"aws:SourceIp": ["0.0.0.0/0"]}
}
}
]
}
其中,"Effect" 设置为 "Deny" 表示禁止访问。"Principal" 设置为 "" 表示对所有用户生效。"Action" 设置为 ["s3:GetObject"] 表示只针对获取对象时的操作。"Resource" 设置为 ["arn:aws:s3:::your_bucket_name/"] 表示对指定存储桶中所有对象生效。"Condition" 设置为 {"IpAddress": {"aws:SourceIp": ["0.0.0.0/0"]}} 表示只有在来源 IP 地址为 0.0.0.0/0 的请求会被拒绝访问。
在存储桶策略中设置好后,尝试使用匿名用户进行访问,将会得到 "Access Denied" 的错误提示。