如果加速域名的源站使用的是阿里云对象存储OSS,并且OSS的Bucket被配置为私有模式(可以起到访问鉴权的作用,避免非授权的请求盗刷流量),该情况下建议您给加速域名开启OSS私有Bucket回源功能(也可以由客户端携带鉴权信息来回源访问OSS私有Bucket)。本文为您介绍如何开启和关闭私有Bucket回源。
背景信息
您可以配合使用阿里云CDN提供的Referer防盗链功能、URL鉴权功能,来更有效地保护您的资源不被盗刷,更多信息,请参见配置Referer防盗链和配置URL鉴权。
重要
- 首次使用该功能时,必须要授予CDN产品对您同账号下OSS产品的所有Bucket的只读访问权限(不支持通过该功能对OSS Bucket进行PUT等写入或删除操作)。
- 授权成功并开启了加速域名的私有Bucket回源功能之后,您可以通过该加速域名访问您的私有Bucket内的所有资源。因此,开启该功能前,请根据您的实际业务情况谨慎决策。如果您授权的私有Bucket内容并不适合作为CDN加速的回源内容,请勿授权或开启此功能。
- 如果您的网站有被攻击的风险,请购买高防服务,同时谨慎授权或开启私有Bucket回源授权功能。
- CDN回源OSS私有Bucket功能与OSS的静态网站托管功能的默认首页配置存在冲突,两个功能需要同时使用的情况下,请参见说明文档。
- 开启了私有Bucket回源功能之后,CDN节点将会在回源请求中添加一个名称为“Authorization”的Header,其值为OSS私有Bucket鉴权签名信息。需要注意,回源OSS的单个请求不能同时在Header以及URL请求参数中均携带签名,如果在回源请求中携带了Authorization请求头的同时,又在URL中携带了用于签名认证的参数(通常由客户端生成),例如
Expires
、Signature
、OSSAccessKeyId
等,那么将会导致OSS鉴权失败。
开启私有Bucket回源
- 登录CDN控制台。
- 在左侧导航栏,单击域名管理。
- 在域名管理页面,单击目标域名对应的管理。
- 在指定域名的左侧导航栏,单击回源配置。
- 可选:您首次使用该功能时,需要执行授权操作。在阿里云OSS私有Bucket回源区域,单击点击授权,继续单击同意授权。
- 在阿里云OSS私有Bucket回源区域,打开阿里云OSS私有Bucket回源开关。说明 当CDN回源OSS私有Bucket访问非加密文件时,完成以上配置即可正常访问文件。如果您在OSS上对文件进行了KMS加密,此时将无法直接访问,需要为AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess权限才能正常访问文件。
- 在弹出的阿里云OSS私有Bucket回源对话框中,选择回源类型,单击确定。
参数 说明 回源类型 - 同账号回源:系统会自动配置STS安全令牌,配置更简单,但仅支持CDN域名回源到同一个阿里云账号下的OSS私有Bucket。
- 跨账号回源或同账号回源:需要配置永久安全令牌,除了支持CDN域名回源到同一个阿里云账号下的OSS私有Bucket,还支持CDN域名回源到另外一个阿里云账号下的OSS私有Bucket。
AccessKey ID 回源目标OSS私有Bucket所属阿里云账号的AccessKey ID,具体请参见创建AccessKey。 AccessKey Secret 回源目标OSS私有Bucket所属阿里云账号的AccessKey Secret。 - 可选:为AliyunCDNAccessingPrivateOSSRole角色添加AliyunKMSCryptoUserAccess权限。
- 登录RAM控制台。
- 在左侧导航栏,选择 。
- 在角色名称列表下,找到AliyunCDNAccessingPrivateOSSRole角色。
- 单击添加权限,被授权主体会自动填入。
- 在系统策略下搜索AliyunKMSCryptoUserAccess,并单击AliyunKMSCryptoUserAccess,会添加到已选择列表。
- 单击确定,显示授权成功。
- 单击完成。
关闭CDN回源OSS私有Bucket的权限
如果您不希望加速域名能够访问您同账号下的私有Bucket内资源,您可以通过访问控制RAM(Resource Access Management)控制台,取消对应角色名称的授权,关闭CDN回源OSS私有Bucket的权限。
- 登录RAM控制台。
- 在左侧导航栏,单击 。
- 在角色名称列表下,单击AliyunCDNAccessingPrivateOSSRole角色。
- 移除角色AliyunCDNAccessingPrivateOSSRole中的所有权限。
- 单击权限对应的解除授权。
- 在移除权限的确认对话框中,单击解除授权。
- 返回AliyunCDNAccessingPrivateOSSRole角色。 页面,删除
- 单击AliyunCDNAccessingPrivateOSSRole角色对应的删除。
- 在删除角色的确认对话框中,单击确定。