AWS CloudFront 未配置默认根对象导致 Bucket Name 泄露
AWS CloudFront 未配置默认根对象导致 Bucket Name 泄露

AWS CloudFront 未配置默认根对象导致 Bucket Name 泄露

根据 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 已经不再暴漏存储桶的对象信息了,这才是咱们预期的结果。