L.K*_*ong 2 cdn amazon-s3 amazon-web-services
我想将 CDN 连接到 AWS S3 存储桶,但AWS 文档指示存储桶名称必须与 CNAME 相同。因此,其他人很容易猜到真正的 s3 Bucket url。
例如,
- My domain: example.com
- My S3 Bucket name: image.example.com
- My CDN CNAME(image.example.com) will point to image.example.com.s3.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
之后,人们可以访问 CDN URL -> http://image.example.com来获取我的 S3 Bucket 中的资源。但是,在此限制下,人们可以轻松地从 CNAME (CNAME + s3.amazonaws.com) 猜出我的真实 S3 存储桶 url。
所以,我的问题是如何隐藏我真实的 s3 存储桶 url?因为我不想将我真实的 S3 url 暴露给任何人以防止任何攻击。
我不确定我是否理解您的要求或您想要做什么[隐藏您的存储桶并没有真正的帮助],但是我将尝试回答您有关“隐藏”您的存储桶名称的问题。在回答之前,我想先问两个问题:
您是正确的,S3 存储桶名称必须与您的 URL 相同。这不再是一个要求,因为您可以使用cloudfront屏蔽 S3 存储桶。如您所知,CloudFront 是 AWS 的 CDN。因此,存储桶名称可以是任何名称(随机字符串)。
您可以限制对存储桶的访问,以便只有 CloudFront 可以访问它。然后,存储桶中的数据被复制到边缘位置并从那里提供服务。即使知道 S3 URL,它也不会执行任何操作,因为对 s3 存储桶的访问受到限制,IAM 规则只授予 CloudFront 访问权限,而没有其他人。
访问限制是通过原始访问来完成的,虽然您可以使用存储桶策略手动配置此操作,但您也可以在 CloudFront 中设置一个标志来代表您执行此操作。更多信息请点击这里。
在 Route53 中使用 CloudFront 名称。不要使用 CNAME,而是使用 A 类型,并将其设置为别名。有关详细信息,请参阅此文档。
如果您使用不同的 DNS 提供商,AWS 别名自然将不可用。我建议将区域文件从其他提供商移动到 AWS。如果您无法执行此操作,您仍然可以使用 CNAME。再次参见此处了解更多信息。
我建议为 CloudFront 使用您自己的域名并设置 HTTPS。AWS 为 AWS 内的服务免费提供证书。您可以为您的域名注册一个证书,该证书可以通过 DNS 条目或电子邮件进行验证。要进行设置,请参阅此文档。
如果您想限制对 AWS 中特定文件的访问,可以使用签名 URL。此处提供了有关此内容的更多信息。
| 归档时间: |
|
| 查看次数: |
9855 次 |
| 最近记录: |