Bucket Policy是阿里云对象存储OSS推出的针对存储空间(Bucket)的授权策略,您可以通过Bucket Policy禁止指定的RAM用户通过公网访问您指定的OSS资源。
场景描述
企业A在华东1(杭州)地域创建了名为examplebucket的存储空间,examplebucket的目录examplefolder下存放了大量的企业内部资料。企业A不希望指定的合作伙伴以RAM用户的方式通过公网访问examplefolder下的资源。
为满足企业A的以上需求,您可以通过策略语法的方式配置Bucket Policy。
操作方式
登录OSS管理控制台。
单击Bucket 列表,然后单击examplebucket。
在左侧导航栏,选择 。
在Bucket 授权策略页面的按语法策略添加页签,单击编辑。
在语法策略输入框中,输入以下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-*" ] } } }] }
单击保存后,在弹出的对话框,单击确定。
相关文档
企业不同部门或项目之间需要共享数据。如果您希望其他部门的用户可以下载本部分的共享数据,禁止写入和删除数据,以降低共享数据被误删、篡改的风险,请参见基于Bucket Policy实现跨部门数据共享的教程示例进行配置。
如果您需要对同账号以及跨账号下的RAM用户,或者匿名用户等授予访问或管理Bucket资源的不同权限,例如只读、读写权限等,请参见Bucket Policy常见示例进行配置。