OSS内容安全最佳实践

更新时间:
复制为 MD 格式

若您存储在阿里云对象存储OSS(Object Storage Service)中的 ACL 设置为公共读或公共读写权限,请注意根据《网络安全法》《网络信息内容生态治理规定》等法律法规要求,确保存储内容合法合规。若因公开传播导致违法不良信息扩散,阿里云将依据违规严重程度采取数据冻结、账户功能限制等处置措施,极端情况下可能终止服务并追究法律责任。建议您合理设置访问权限,非必要不设置为公共读或公共读写权限,并定期使用内容安全工具自检并配置自动化清理策略,切实防范因违法有害内容引发的安全风险。

合理设置访问权限

默认情况下BucketObject的访问权限为私有,但部分用户为便利性将Bucket改为公共读或者公共读写权限(Object默认继承Bucket的访问权限),此类操作存在显著风险

  • 公共读Object可通过URL被任意访问,导致数据泄露与非法传播。

  • 公共读写权限可能导致数据被非法篡改或传播,建议仅在评估无安全风险的临时场景下使用。

  • 部分场景(如静态网站托管)要求Bucket为公共读权限,需结合业务需求权衡安全性与可用性。

  • 可能被黑产利用进行流量盗刷及恶意爬取。

您可以通过以下步骤合理设置访问权限。

  1. Bucket ACL设置为私有

  2. (可选)通过RAM策略细化权限。

    如果需要实现更细致的权限控制,例如向指定的RAM用户授予访问Bucket内某个目录下所有文件的读取权限,您可以创建RAM Policy并将该策略绑定至目标RAM用户、RAM用户组或RAM角色。这样,您就可以灵活地控制哪些用户能够访问哪些指定的资源。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "oss:GetObject"
                ],
                "Resource": [
                    "acs:oss:*:*:mybucket/hangzhou/2014/*",
                    "acs:oss:*:*:mybucket/hangzhou/2015/*"
                ]
            }
        ]
    }
  3. 验证权限效果。

    使用不同账号或匿名访问测试Bucket,确认权限是否符合预期。例如公共读权限下,可通过文件URL直接访问资源;私有权限下,需通过预签名URLRAM授权访问。

使用内容安全检测工具自检

若您因业务需求需开放Bucket的公共读权限,请务必同步开启内容审核服务以规避潜在风险。通过内容审核功能,可对数据进行智能检测,并针对敏感内容实施自动冻结,有效阻断违规数据的传播。您可以通过OSS创建内容安全检测规则,配置审核范围(全量、目录或文件前缀),并选择预设或自定义策略,结合智能后缀识别,精准、高效地检测多种违规内容。

限制HTTPS访问

HTTPS通过SSL/TLS协议对数据进行加密传输,防止数据在传输过程中被窃取和篡改,同时验证服务器身份,防止中间人攻击,从而有效提升内容的安全性和完整性。

OSS服务提供的自有域名默认支持HTTPS方式访问。如果您希望通过HTTPS 方式使用自定义域名或 CDN 加速域名访问 OSS,需要为该域名绑定SSL证书

  1. 限制HTTPS访问。

    强制匿名用户对某个Bucket内资源的所有请求访问方式为HTTPS,需要配置以下Bucket Policy:

    {
      "Version": "1",
      "Statement": [{
          "Effect": "Deny",
          "Action": [
            "oss:*"
          ],
          "Principal": [
            "*"
          ],
          "Resource": [
            "acs:oss:*:*:examplebucket",
            "acs:oss:*:*:examplebucket/*"
          ],
          "Condition": {
            "Bool": {
              "acs:SecureTransport": [
                "false"
              ]
            }
          }
        }
          ]
      }
    重要

    强制HTTPS可能导致部分客户端(如未支持HTTPSSDK或浏览器)无法访问,需提前测试。

  2. 验证HTTPS访问。

    通过浏览器或工具(如curl)使用HTTPS访问(如 https://<bucket-name>.oss-regionid.aliyuncs.com),返回状态码为200。如果使用HTTP访问(如 http://<bucket-name>.oss-regionid.aliyuncs.com),返回状态码400。

绑定自定义域名

绑定自定义域名至Bucket默认域名后,通过自定义域名访问OSS资源时,实际请求不会直接暴露OSS默认域名和底层存储地址,避免OSS默认域名被拦截,确保资源正常访问。