Bucket Policy是阿里云对象存储OSS推出的针对存储空间(Bucket)的授权策略,您可以通过Bucket Policy限制通过公网访问您指定的OSS资源。

场景描述

企业A在华东1(杭州)地域创建了名为examplebucket的存储空间,examplebucket的目录examplefolder下存放了大量的企业内部资料。企业A不希望指定的合作伙伴以RAM用户的方式通过公网访问examplefolder下的资源。

为满足企业A的以上需求,您可以通过策略语法的方式配置Bucket Policy。

操作方式

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击examplebucket
  3. 单击文件管理页签,然后单击授权
  4. 策略语法页面,单击编辑,然后输入以下Policy。
    {
        "Version": "1",
        "Statement": [{
            "Effect": "Deny",
            "Action": [
                "oss:RestoreObject",
                "oss:ListObjects",
                "oss:AbortMultipartUpload",
                "oss:PutObjectAcl",
                "oss:GetObjectAcl",
                "oss:ListParts",
                "oss:DeleteObject",
                "oss:PutObject",
                "oss:GetObject",
                "oss:GetVodPlaylist",
                "oss:PostVodPlaylist",
                "oss:PublishRtmpStream",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl",
                "oss:RestoreObjectVersion"
            ],
            "Principal": [
                <! --以下为RAM用户的UID。-->
                "26642223584287****",
                "27658173539067****",
                "24430533117653****"
            ],
            "Resource": [
                <! --137918634953****为examplebucket拥有者的UID。-->
                "acs:oss:*:137918634953****:examplebucket/examplefolder/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }, {
            "Effect": "Deny",
            "Action": [
                "oss:ListObjects",
                "oss:GetObject"
            ],
            "Principal": [
                "26642223584287****",
                "27658173539067****",
                "24430533117653****"
            ],
            "Resource": [
                "acs:oss:*:137918634953****:examplebucket"
            ],
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "examplefolder/*"
                    ]
                },
                "StringNotEquals": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }]
    }
  5. 单击保存

相关文档

  • 企业不同部门或项目之间需要共享数据。如果您希望其他部门的用户可以下载本部分的共享数据,禁止写入和删除数据,以降低共享数据被误删、篡改的风险,请参见基于Bucket Policy实现跨部门数据共享的教程示例
  • 如果您需要对同账号以及跨账号下的RAM用户,或者匿名用户等授予访问或管理Bucket资源的不同权限,例如只读、读写权限等,请参见Bucket Policy常见示例