阻止创建公共读或者公共读写的Bucket

鉴于公共读Bucket允许任何人(包括匿名访问者)对该Bucket中的文件进行读操作,公共读写Bucket允许任何人(包括匿名访问者)对该Bucket内文件进行读写操作。如果Bucket设置了公共读或者公共读写权限,会引发数据泄露以及增加数据安全风险。为保护您的数据安全,建议通过阻止公共访问或者配置RAM Policy的方式阻止用户创建公共读或公共读写权限的Bucket。

使用场景

限制类型

使用场景

阻止阿里云账号以及关联的所有RAM用户创建公共读或者公共读写的Bucket

  • 高度敏感数据存储:如果您的OSS需要存储高度敏感的数据,例如个人隐私信息、企业核心数据等,应严格限制所有形式的公共访问,需要从源头上阻止创建可公开访问的Bucket,以避免数据泄露。

  • 合规性要求:某些行业标准或法规可能要求对数据访问有严格的控制,不允许任何资源直接对外公开。

  • 多用户环境下的严格权限管理:当某个阿里云账号下有多个RAM用户且这些RAM用户负责不同项目或部门时,限制所有RAM用户创建公共Bucket可以避免因个人错误配置导致的安全风险。

阻止指定的RAM用户创建公共读或者公共读写的Bucket

  • 核心团队管理:如果阿里云账号由核心团队直接管理,并且团队成员对安全策略有深入理解,此时可以考虑仅阻止指定RAM用户创建公共读或者公共读写的Bucket。采用该限制方式,一方面保护了数据安全,另一方面为核心团队权限管理保留了灵活性。

  • 特定RAM用户权限管控:在一些场景下,可能只希望特定的RAM用户不能创建公共读或者公共读写的Bucket,而内部员工或高级管理员仍需此权限以应对特定需求。

阻止阿里云账号以及关联的所有RAM用户创建公共读或者公共读写的Bucket

您可以通过为OSS全局开启阻止公共访问的方式,阻止当前阿里云账号以及关联的所有RAM用户创建公共读以及公共读写的Bucket。具体步骤如下:

  1. 登录OSS管理控制台

  2. 在左侧导航栏,选择数据服务 > 阻止公共访问

  3. 阻止公共访问页面,开启阻止公共访问,然后按照页面指引完成开启操作。

重要

为OSS全局开启阻止公共访问后,不允许创建具有公共访问权限的新Bucket,且已有Bucket配置的公共访问权限也会被忽略。即无论是新创建还是已有的Bucket,Bucket内的数据均不允许公共访问。

阻止指定的RAM用户创建公共读或者公共读写的Bucket

您可以通过阿里云账号为指定的RAM用户配置RAM Policy的方式,阻止指定的RAM用户创建公共读以及公共读写的Bucket。具体步骤如下:

  1. 通过脚本编辑模式创建以下RAM Policy。具体步骤,请参见通过脚本编辑模式创建自定义权限策略

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Deny",
          "Action": [
            "oss:PutBucket"
          ],
          "Resource": [
            "acs:oss:*:*:*"
          ],
          "Condition": {
            "StringLike": {
              "oss:x-oss-acl": [
                "public-read",
                "public-read-write"
              ]
            }
          }
        },
        {
          "Effect": "Allow",
          "Action": [
            "oss:PutBucket"
          ],
          "Resource": [
            "acs:oss:*:*:*"
          ]
        }
      ]
    }
  2. 为RAM用户授予以上创建的RAM Policy。具体步骤,请参见为RAM用户授权

相关文档

  • 如需了解Bucket的读写权限类型,请参见Bucket ACL

  • 如需了解RAM Policy的语法结构和权限管控,请参见RAM Policy

  • 如需了解设置阻止公共访问后的效果,请参见阻止公共访问