备案 控制台
文档
产品文档

授权或限制用户访问OSS的常见Bucket Policy示例

更新时间:
一键部署
产品详情
相关技术圈
我的收藏

Bucket Policy是OSS提供的一种针对存储空间(Bucket)的授权策略,使您可以精细化地授权或限制有身份的访问者(阿里云账号、RAM用户、RAM角色)或匿名访问者对指定OSS资源的访问。例如,您可以为其他阿里云账号的RAM用户授予指定OSS资源的只读权限。

通用说明

与RAM Policy不同的是,Bucket Policy还包含了用于指定允许或拒绝访问资源的主体元素Principal。使用Principal,您可以精细化地授权或限制不同访问者对指定OSS资源的访问。在不需要对访问者做个性化区分的情况下,通过一种集中式的方式管理权限,避免重复对每个访问者进行授权或限制。例如,通过在Principal输入多个RAM用户的UID,来匹配指定的RAM用户;通过在Principal中输入通配符星号(*),来匹配所有访问者。

注意事项

  • 在Bucket Policy的策略语句中,如果Principal为通配符星号(*),且包含Condition,则策略语句会对包含Bucket Owner在内的所有访问者生效。即使是默认拥有所有访问权限的Bucket Owner,如果触发拒绝策略,其访问请求也会被拒绝。

  • 在Bucket Policy的策略语句中,如果Principal为通配符星号(*),但不包含Condition,则策略语句只会对除Bucket Owner以外的所有访问者生效。对于默认拥有所有访问权限的Bucket Owner,不会触发拒绝策略,其访问请求不会被拒绝。

示例一:授予指定RAM用户读写权限

当您希望允许自己团队的指定成员或合作方的指定成员上传、下载、管理存储空间中的文件时,您可以通过Bucket Policy在存储空间级别直接为这些成员对应的RAM用户授予权限,而无需为每个RAM用户单独设置访问策略。以下示例用于授予指定RAM用户(UID为27737962156157xxxx20214760404935xxxx)对目标存储空间(examplebucket)的读写权限。

重要

以下允许策略语句中,由于没有授予指定RAM用户列举存储空间的权限,因此指定RAM用户无法在阿里云控制台的Bucket列表页面查看所有的存储空间,找到目标的存储空间,然后点击进入。指定RAM用户可以通过添加收藏路径来访问目标存储空间,而无需拥有列举存储空间的权限。具体操作,请参见 访问路径。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:GetObject",
                "oss:PutObject",
                "oss:GetObjectAcl",
                "oss:PutObjectAcl",
                "oss:AbortMultipartUpload",
                "oss:ListParts",
                "oss:RestoreObject",
                "oss:GetVodPlaylist",
                "oss:PostVodPlaylist",
                "oss:PublishRtmpStream",
                "oss:ListObjectVersions",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl",
                "oss:RestoreObjectVersion"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ]
        },
        {
            "Effect":"Allow",
            "Action":[
                "oss:ListObjects"
            ],
            "Principal":[
                "27737962156157xxxx",
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "*"
                    ]
                }
            }
        }
    ]
}

示例二:授予指定RAM用户对指定目录的只读权限

当您需要保护存储空间中的特定项目文件不被篡改,但又希望允许相关的项目成员列举和读取这些文件时,您可以只为项目成员对应的RAM用户授予列举和读取特定项目文件的权限。以下示例用于授予指定RAM用户(UID为20214760404935xxxx)对目标存储空间(examplebucket)下指定目录(前缀为hangzhou/2020shanghai/2015)的只读权限。

重要

以下允许策略语句中,由于没有授予指定RAM用户列举存储空间的权限,因此指定RAM用户无法在阿里云控制台的Bucket列表页面查看所有的存储空间,找到目标的存储空间,然后点击进入。指定RAM用户可以通过添加收藏路径来访问目标存储空间,而无需拥有列举存储空间的权限。具体操作,请参见 访问路径。

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:GetObject",
                "oss:GetObjectAcl",
                "oss:GetObjectVersion",
                "oss:GetObjectVersionAcl"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/hangzhou/2020/*",
                "acs:oss:*:174649585760xxxx:examplebucket/shanghai/2015/*"
            ]
        },
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Condition":{
                "StringLike":{
                    "oss:Prefix":[
                        "hangzhou/2020/*",
                        "shanghai/2015/*"
                    ]
                }
            },
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket"
            ]
        }
    ]
}

示例三:授予所有访问者列举所有文件的权限

当您的存储空间用于公共资源共享,需要让所有访问者都能查看文件名但不能访问文件的实际内容时,您可以设置Principal为通配符星号(*),并为其授予列举所有文件的权限。以下示例用于授予所有访问者列举目标存储空间(examplebucket)下所有文件的权限。

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket"
            ]
        }
    ]
}

示例四:授予指定RAM用户查看存储空间并列举文件的权限

当您希望允许自己团队的指定成员或合作方的指定成员查看存储空间的所有信息并列举其中的文件时,您可以通过Bucket Policy在存储空间级别直接为这些成员对应的RAM用户授予权限,而无需为每个RAM用户单独设置访问策略。以下示例用于授予指定RAM用户查看目标存储空间(examplebucket)的所有信息并列举其中的文件的权限。

重要

以下允许策略语句中,由于没有授予指定RAM用户列举存储空间的权限,因此指定RAM用户无法在阿里云控制台的Bucket列表页面查看所有的存储空间,找到目标的存储空间,然后点击进入。指定RAM用户可以通过添加收藏路径来访问目标存储空间,而无需拥有列举存储空间的权限。具体操作,请参见 访问路径。

{
    "Version":"1",
    "Statement":[
        {
            "Action":[
                "oss:Get*",
                "oss:ListObjects",
                "oss:ListObjectVersions"
            ],
            "Effect":"Allow",
            "Principal":[
                "20214760404935xxxx"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket"
            ]
        }
    ]
}

示例五:限制只能从指定VPC访问

当您的存储空间需要限制只能从指定VPC访问时,您可以使用acs:SourceVpc条件关键字创建一条拒绝策略语句并将其添加到Bucket Policy中,用于阻止来自其他VPC或公网的请求。对于来自其他VPC的请求,会被识别为不符合指定VPC ID条件,触发策略中的拒绝规则。对于来自公网的请求,由于从公网访问不包含VPC信息,因此也会被识别为不符合指定VPC ID条件,触发策略中的拒绝规则。以下示例用于拒绝除指定VPC(ID为t4nlw426y44rd3iq4xxxx)以外的所有访问者对目标存储空间(examplebucket)进行读取文件操作。

重要
  • 以下拒绝策略语句中,由于Principal为通配符星号(*),且包含Condition,因此该拒绝策略语句会对包含Bucket Owner在内的所有访问者生效。添加以下拒绝策略语句后,即使是默认拥有所有访问权限的Bucket Owner,如果不是从指定VPC访问,其访问请求也会被拒绝。

  • 以下拒绝策略语句仅用于限制访问,而不会授予任何访问权限。如果授权主体没有被授予过访问权限,您可以添加一条允许策略语句来授予其访问权限。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

示例六:限制只能从指定公网IP地址访问

当您的存储空间需要限制只能从指定公网IP地址访问时,您可以使用acs:SourceIp条件关键字创建一条拒绝策略语句并将其添加到Bucket Policy中,用于阻止来自其他公网IP地址或VPC的请求。对于来自其他公网IP地址的请求,会被识别为不符合指定IP条件,触发策略中的拒绝规则。对于来自VPC的请求,由于从VPC访问时使用私网IP地址,因此也会被识别为不符合指定IP地址条件,触发策略中的拒绝规则。以下示例用于拒绝除指定公网IP地址(IP地址为203.0.113.5)以外的所有访问者对目标存储空间(examplebucket)进行读取文件操作。

重要
  • 以下拒绝策略语句中,由于Principal为通配符星号(*),且包含Condition,因此该拒绝策略语句会对包含Bucket Owner在内的所有访问者生效。添加以下拒绝策略语句后,即使是默认拥有所有访问权限的Bucket Owner,如果不是从指定公网IP地址访问,其访问请求也会被拒绝。

  • 以下拒绝策略语句仅用于限制访问,而不会授予任何访问权限。如果授权主体没有被授予过访问权限,您可以添加一条允许策略语句来授予其访问权限。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "203.0.113.5"
                    ]
                }
            }
        }
    ]
}

示例七:限制只能从指定VPC的指定IP地址网段访问

当您的存储空间需要限制只能从指定VPC的指定IP地址访问时,您可以创建两条拒绝策略语句:

  • 使用acs:SourceVpc条件关键字创建一条拒绝策略语句,用于阻止来自其他VPC或公网的请求。对于来自其他VPC的请求,会被识别为不符合指定VPC ID条件,触发策略中的拒绝规则。对于来自公网的请求,由于公网访问不包含VPC信息,因此也会被识别为不符合指定VPC ID条件,触发策略中的拒绝规则。

  • 使用acs:SourceIp条件关键字和acs:SourceVpc条件关键字创建一条拒绝策略语句,用于阻止指定VPC网段之外的请求。

将以上两条拒绝策略语句添加到Bucket Policy后,两者之间的逻辑关系为或,即满足任一条件就会触发拒绝。以下示例用于拒绝除指定VPC(ID为t4nlw426y44rd3iq4xxxx)的指定IP地址网段(IP地址网段为192.168.0.0/16)以外的所有访问者对目标存储空间(examplebucket)进行读取文件操作。

重要
  • 以下拒绝策略语句中,由于Principal为通配符星号(*),且包含Condition,因此该拒绝策略语句会对包含Bucket Owner在内的所有访问者生效。添加以下拒绝策略语句后,即使是默认拥有所有访问权限的Bucket Owner,如果不是从指定VPC的指定IP地址网段访问,其访问请求也会被拒绝。

  • 以下拒绝策略语句仅用于限制访问,而不会授予任何访问权限。如果授权主体没有被授予过访问权限,您可以添加一条允许策略语句来授予其访问权限。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "StringEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "192.168.0.0/16"
                    ]
                }
            }
        }
    ]
}

示例八:限制只能从指定公网IP地址或指定VPC访问

当您的存储空间需要限制只能从指定公网IP地址或指定VPC访问时,您可以创建两条拒绝策略语句:

  • 使用acs:SourceIp条件关键字创建一条拒绝策略语句,用于阻止来自其他公网IP地址的请求。由于来自指定VPC的请求也存在IP地址,在阻止来自其他公网IP地址的请求时,还需要使用StringNotLike条件操作和acs:SourceVpc条件关键字来排除这些请求,以避免触发不满足指定IP地址条件而被错误拒绝。

  • 使用acs:SourceVpc条件关键字创建一条拒绝策略语句,用于阻止来自其他VPC的请求。由于来自指定公网IP地址的请求不包含VPC信息,也会被识别为不符合指定VPC ID条件,在阻止来自其他VPC的请求时,还需要使用StringLike条件操作和acs:SourceVpc关键字来排除这些请求,以避免触发不满足指定VPC ID条件而被错误拒绝。

将以上两条拒绝策略语句添加到Bucket Policy后,两者之间的逻辑关系为或,即满足任一条件就会触发拒绝。以下示例用于拒绝除指定公网IP地址(IP地址为203.0.113.5)或指定VPC(ID为t4nlw426y44rd3iq4xxxx)以外的所有访问者执行对目标存储空间(examplebucket)进行读取文件操作。

重要
  • 以下拒绝策略语句中,由于Principal为通配符星号(*),且包含Condition,因此该拒绝策略语句会对包含Bucket Owner在内的所有访问者生效。添加以下拒绝策略语句后,即使是默认拥有所有访问权限的Bucket Owner,如果不是从指定的公网IP地址或指定VPC访问,其访问请求也会被拒绝。

  • 以下拒绝策略语句仅用于限制访问,而不会授予任何访问权限。如果授权主体没有被授予过访问权限,您可以添加一条允许策略语句来授予其访问权限。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "StringNotLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "NotIpAddress":{
                    "acs:SourceIp":[
                        "203.0.113.5"
                    ]
                }
            }
        },
        {
            "Effect":"Deny",
            "Action":[
                "oss:GetObject"
            ],
            "Principal":[
                "*"
            ],
            "Resource":[
                "acs:oss:*:174649585760xxxx:examplebucket/*"
            ],
            "Condition":{
                "StringLike":{
                    "acs:SourceVpc":[
                        "vpc-*"
                    ]
                },
                "StringNotEquals":{
                    "acs:SourceVpc":[
                        "vpc-t4nlw426y44rd3iq4xxxx"
                    ]
                }
            }
        }
    ]
}

相关文档

  • 关于Bucket Policy的元素说明,请参见 RAM Policy。

  • 关于Bucket Policy的配置步骤,请参见 Bucket Policy。

  • 关于Bucket Policy的鉴权过程,请参见 OSS鉴权详解。

上一篇:Bucket Policy 下一篇:教程示例:通过VPC Policy与Bucket Policy控制数据访问安全
  • 本页导读 (1)

聚圣源带广字的公司起名起名字郑义孙氏男宝宝起名的globelink姓麦女宝宝起名睿字的起名火命的人起名带恒字的起名字男孩现在就想告诉哥哥我是妹妹互联网金融协会书店起什么名子给男孩子起名大全起名字义详解用诗词起队名八字起公司名字免费养殖牧场起名大全伪装学渣免费全文阅读未删减起名字之树安全技术服务公司起名排球论坛昵图网设计图库光明会网站电炉网工程部职责幸运的起名男孩起名姓江斗罗之我的徒弟是教皇你是我的心跳子与什么字搭配起名好1518公司起名打分结果淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化