CDN回源OSS报错时,如何隐藏OSS报错信息中的Bucket域名?

更新时间:
复制 MD 格式

通过阿里云CDN或其他CDN回源OSS报错时,OSS会返回报错信息。OSS的报错信息中包含了敏感信息Bucket域名。如果Bucket域名被暴露,会增加您的OSS Bucket被攻击的风险。

问题原因

默认配置下,CDN在回源请求OSS内容时,请求Header中的Host值是OSS Bucket域名。OSS在收到错误的请求并返回错误信息时,会返回请求Header中的Host信息。

CDN控制台的默认回源HOST配置中,默认回源HOST类型源站域名默认回源HOST地址为对应的OSS Bucket域名(如{Bucket名称}.oss-cn-beijing.aliyuncs.com)。

问题示例

例如,如果访问一个不存在的文件,OSS会触发404错误。在返回的错误信息中,会包含Bucket域名。无论是4xx、5xx等其他类型的错误,OSS都会在返回的错误信息中包含Bucket域名。

<Error>
  <Code>NoSuchKey</Code>
  <Message>The specified key does not exist.</Message>
  <RequestId>6567EA8FF80D0134381DA6CC</RequestId>
  <HostId>xxx.oss-cn-beijing.aliyuncs.com</HostId>
  <Key>notexist.jpg</Key>
  <EC>0026-00000001</EC>
  <RecommendDoc>https://api.aliyun.com/troubleshoot?q=0026-00000001</RecommendDoc>
</Error>

解决方案

警告

如果您还未将CDN加速域名与OSS Bucket完成绑定,就修改回源Host,OSS将无法正确处理这个未知Host的请求,从而导致回源失败并无法获取所需内容。因此,在修改回源Host之前,请确保已经成功将CDN加速域名与OSS Bucket完成绑定,并测试成功CDN可以正确地回源到OSS获取内容。具体操作,请参见绑定CDN加速域名

CDN的回源Host配置为加速域名,OSS的报错信息将显示加速域名而不是Bucket域名,从而隐藏Bucket域名。

具体操作,请参见配置默认回源HOST

默认回源HOST状态为已开启,默认回源HOST类型加速域名默认回源HOST地址显示为对应的CDN加速域名。OSS报错信息示例如下。

<Error>
    <Code>NoSuchKey</Code>
    <Message>The specified key does not exist.</Message>
    <RequestId>6567FBA71253C53034165E24</RequestId>
    <HostId>cdn.xxx.xxx.com</HostId>
    <Key>notexist.jpg</Key>
    <EC>0026-00000001</EC>
    <RecommendDoc>https://api.aliyun.com/troubleshoot?q=0026-00000001</RecommendDoc>
</Error>

相关文档

配置回源Host的方法也适用于其他需要隐藏Bucket域名的场景,例如Nginx反向代理。详情请参见使用ECS实例反向代理OSS