根据 AWS 官方文档,CloudFront 未配置默认根对象被定级为严重。
参考文档:https://docs.aws.amazon.com/zh_cn/AmazonCloudFront/latest/DeveloperGuide/DefaultRootObject.html
这里首先需要理解什么是默认根对象,如下图,在配置 CloudFront 时该项为可选项,表示默认访问 CloudFront 分配的域名时,指定访问的页面。
若该项不配置且 CloudFront 关联的 S3 具有 ListBucket 权限时,将导致泄露 Bucket name 和存储桶对象资源。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::security-20230530"
}
]
}
但是如果我们重新配置 CloudFront 的默认根对象为 index.html,再次访问域名,CloudFront 已经不再暴漏存储桶的对象信息了,这才是咱们预期的结果。