通过Bucket Policy限制公网访问OSS

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

场景描述

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

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

操作方式

  1. 登录OSS管理控制台

  2. 单击Bucket 列表,然后单击examplebucket

  3. 在左侧导航栏,选择权限控制 > Bucket 授权策略

  4. Bucket 授权策略页面的按语法策略添加页签,单击编辑

  5. 在语法策略输入框中,输入以下Policy。

    以下授权策略中,137918634953xxxx为examplebucket拥有者的UID,Principal元素下包含的UID为RAM用户的UID。

    {
        "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": [            
                "26642223584287xxxx",
                "27658173539067xxxx",
                "24430533117653xxxx"
            ],
            "Resource": [            
                "acs:oss:*:137918634953xxxx:examplebucket/examplefolder/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }, {
            "Effect": "Deny",
            "Action": [
                "oss:ListObjects",
                "oss:GetObject"
            ],
            "Principal": [
                "26642223584287xxxx",
                "27658173539067xxxx",
                "24430533117653xxxx"
            ],
            "Resource": [
                "acs:oss:*:137918634953xxxx:examplebucket"
            ],
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "examplefolder/*"
                    ]
                },
                "StringNotLike": {
                    "acs:SourceVpc": [
                        "vpc-*"
                    ]
                }
            }
        }]
    }
  6. 单击保存后,在弹出的对话框,单击确定

相关文档

  • 企业不同部门或项目之间需要共享数据。如果您希望其他部门的用户可以下载本部分的共享数据,禁止写入和删除数据,以降低共享数据被误删、篡改的风险,请参见基于Bucket Policy实现跨部门数据共享的教程示例进行配置。

  • 如果您需要对同账号以及跨账号下的RAM用户,或者匿名用户等授予访问或管理Bucket资源的不同权限,例如只读、读写权限等,请参见Bucket Policy常见示例进行配置。