最近更新时间:2024.02.01 18:53:19
首次发布时间:2022.03.17 10:33:29
本文列举了桶策略支持的授权动作、授权模板及授权参数说明。
动作 | 说明 |
---|---|
* | 通配符,表示该资源能进行的所有动作。 |
Get* | 表示该资源能进行的所有获取动作。 |
Put* | 表示该资源能进行的所有设置动作。 注意 该动作为风险操作,请您谨慎配置。 |
List* | 表示该资源能进行的所有列举动作。 |
类别 | 动作 | 说明 |
---|---|---|
桶操作 | ListBucket | 列举桶内对象。 |
HeadBucket | 判断桶是否存在,获取桶元数据。 | |
DeleteBucket | 删除桶。 注意 该动作为风险操作,请您谨慎配置。 | |
桶 ACL | GetBucketACL | 获取桶 ACL 的相关信息。 |
PutBucketACL | 设置桶 ACL。 注意 该动作为风险操作,请您谨慎配置。 | |
桶策略 | GetBucketPolicy | 获取桶策略。 |
PutBucketPolicy | 设置桶策略,拥有此权限的用户可以任意更改桶策略,并可以通过此权限获取其他权限。 注意 该动作为风险操作,请您谨慎配置。 | |
DeleteBucketPolicy | 删除桶策略。 注意 该动作为风险操作,请您谨慎配置。 | |
生命周期规则 | GetLifecycleConfiguration | 获取桶生命周期规则。 |
PutLifecycleConfiguration | 设置桶生命周期规则。 | |
桶版本 | GetBucketVersioning | 获取桶多版本的相关信息。 |
PutBucketVersioning | 设置多版本。 | |
ListBucketVersions | 列举桶内多版本对象。 | |
跨域访问 CORS 规则 | GetBucketCORS | 获取桶 CORS 配置的相关信息。 |
PutBucketCORS | 设置桶 CORS。 | |
消息通知 | PutBucketNotification | 设置桶事件通知。 |
GetBucketNotification | 获取桶事件通知。 | |
图片样式 | PutBucketImageStyle | 设置桶图片样式。 |
GetBucketImageStyle | 获取桶图片样式。 | |
ListBucketImageStyle | 列举桶图片样式。 | |
DeleteBucketImageStyle | 删除桶图片样式。 注意 该动作为风险操作,请您谨慎配置。 | |
桶存储策略 | PutBucketStoragePolicy | 设置桶默认存储类别。 |
其他 | ListBucketMultipartUploads | 列举多段上传任务。 |
类别 | 动作 | 说明 |
---|---|---|
对象操作 | GetObject | 可用作于获取对象内容,获取对象元数据。 |
PutObject | 可用作于 PUT 上传,上传段,初始化上传段任务,合并段。 | |
DeleteObject | 删除对象。 注意 该动作为风险操作,请您谨慎配置。 | |
RestoreObject | 恢复归档、冷归档和深度冷归档存储对象。 | |
对象 ACL | GetObjectAcl | 获取对象 ACL 的相关信息。 |
PutObjectAcl | 设置对象 ACL。 注意 该动作为风险操作,请您谨慎配置。 | |
对象版本 | GetObjectVersion | 可用作于获取指定版本对象内容,获取指定版本对象元数据。 |
DeleteObjectVersion | 删除对象(针对特定版本的对象)。 注意 该动作为风险操作,请您谨慎配置。 | |
对象标签 | GetObjectTagging | 获取对象标签。 |
PutObjectTagging | 设置对象标签。 | |
DeleteObjectTagging | 删除对象标签。 注意 该动作为风险操作,请您谨慎配置。 | |
其他 | AbortMultipartUpload | 取消多段上传任务。 |
ListMultipartUploadParts | 列举已上传段。 |
TOS 控制台预置了七种常用典型场景的桶策略模板,您可以使用模板创建桶策略,快速完成桶策略配置。
选择使用模板创建时,部分模板需要指定被授权用户或资源范围,您也可以在原模板基础上修改被授权用户、资源范围、模板动作以及增加桶策略执行的条件。
注意
公共只读和公共读写权限的存储桶直接暴露在公网,任何人均可对桶内文件进行读取,同时产生流量费用,存在财产损失和数据泄露风险。
模板名称 | 被授权用户 | 资源范围 | 模板动作 |
---|---|---|---|
桶只读 | 待指定:需指定授权用户 | 包含当前桶和桶内所有对象 | 允许指定用户对当前桶和桶内所有对象执行以下动作:
|
桶读写 | 待指定:需指定授权用户 | 包含当前桶和桶内所有对象 | 允许指定用户对当前桶和桶内所有对象执行以下动作:
|
文件夹只读 | 待指定:需指定授权用户 | 待指定:需指定对象前缀 | 允许指定用户对当前桶和桶内指定资源执行以下动作:
|
文件夹读写 | 待指定:需指定授权用户 | 待指定:需指定对象前缀 | 允许指定用户对当前桶和桶内指定资源执行以下动作:
|
公共只读(包含 ListBucket 操作) | 所有用户:表示所有互联网用户 | 包含当前桶和桶内所有对象 | 允许所有用户:所有互联网用户对当前桶和桶内所有对象执行以下动作:
|
公共只读(不包含 ListBucket 操作) | 所有用户:表示所有互联网用户 | 包含当前桶和桶内所有对象 | 允许所有用户:所有互联网用户对当前桶和桶内所有对象执行以下动作:
|
公共读写 | 所有用户:表示所有互联网用户 | 包含当前桶和桶内所有对象 | 允许所有用户:所有互联网用户对当前桶和桶内所有对象执行以下动作:
|
Statement 是主要策略元素的容器,可以在一个策略中包含多个语句,每个 Statement 包含以下参数。
参数 | 是否必选 | 说明 | 示例 |
---|---|---|---|
Sid | 可选 | 策略名称,以区分不同的策略。 说明 在同一个桶内,策略名称不能重复。 |
|
Effect | 必填 | 指示策略是允许还是拒绝访问,取值范围为:
|
|
Principal | 可选 说明 当 | 指定需要授权的用户。
|
|
NotPrincipal | 可选 | 该参数必须和 说明
|
|
Action | 可选 说明 当 | 指定策略允许或拒绝的操作列表,TOS 支持的操作列表请参见动作说明。
|
|
NotAction | 可选 | 该参数必须和 说明
|
|
Resource | 可选 说明 当 | 指定策略作用的资源范围,设置规则说明如下:
|
|
NotResource | 可选 | 该参数必须和
说明 不支持单独使用通配符 |
|
Condition | 可选 | 指定策略在哪些情况下授予权限。关于条件的详细说明,请参见条件说明。 |
|
{ "Statement": [ { "Sid": "IPtest", "Effect": "Allow", "Principal":["*"], "Action": [ "tos:Get*", "tos:List*", "tos:HeadBucket" ], "Resource": [ "trn:tos:::bucketname", "trn:tos:::bucketname/*" ], "Condition": { "IpAddress": {"SourceIp": "192.168.0.0"} } } ] }
桶策略支持指定相应条件,条件由键、条件运算符及值组成,决定桶策略生效的要求。条件运算符、键及支持的动作之间存在限制关系。TOS 支持的条件及说明如下所示。
键 | 类型 | 是否通用 | 键说明 | 值说明 |
---|---|---|---|---|
prefix | String | 否 | 列举对象时,用于指定前缀,仅以下动作支持设置:
| 输入具体的前缀和通配符(*),例如 |
delimiter | String | 否 | 列举对象时,对 Object 名字进行分组的字符,仅以下动作支持设置:
| 输入常见的分隔符,例如 |
max-keys | String | 否 | 列举对象时,返回对象的最大数量,仅以下动作支持设置:
| 输入数字,有效范围为 [1-1000]。 |
versionid | String | 否 | 指定对象版本,仅以下动作支持设置:
| 输入对象的具体版本号。 |
x-tos-acl | String | 否 | 上传对象或者设置 ACL 时,用于在头域中声明对象的 ACL,仅以下动作支持设置:
| 输入有效的 ACL,取值范围为:
|
x-tos-copy-source | String | 否 | 复制对象时,用来指定源桶名和源对象名,仅以下动作支持设置:
| 输入有效的源对象的路径,例如 |
x-tos-metadata-directive | String | 否 | 指定是从源对象复制元数据还是使用请求中提供的元数据替换元数据,仅以下动作支持设置:
| 输入元数据复制策略,取值
|
x-tos-server-side-encryption-kms-key-id | String | 否 | 指定 SSE-KMS 加密对象使用的主密钥 ID,仅 PutObject 动作支持设置该键。 | 输入 KMS 的密钥 ID,例如 |
CurrentTime | Date | 是 | 服务器接收请求的时间,UTC 时间,格式必须为 ISO 8601,基本格式为 yyyy-MM-ddTHH:mmZ(UTC 时间)。 | 输入 ISO 8601 格式的日期,例如 |
EpochTime | Numeric | 是 | 自 1970 年 1 月 1 日(UTC/GMT 午夜)来经过的秒数,不包括闰秒。 | 输入秒数,例如 |
SecureTransport | Boolean | 是 | 请求是否使用 SSL 加密。 | 输入
|
SourceIp | String | 是 | 请求发起的源 IP。 | 输入 IP 地址或者 IP 段,如有多个 IP 请以英文逗号分隔。例如 |
UserAgent | String | 是 | 请求的客户端代理程序。 | 输入 Agent 详细信息和通配符(*),例如 |
Referer | String | 是 | 请求发起的链接。 | 输入 URL,例如 |
SourceVpc | String | 是 | 请求所在的 VPC。 | 输入 VPC ID,例如 |
rolename | String | 是 | 角色名称,用于指定其他云服务或 TOS 内部请求。 | 输入角色名称,例如 |
NetPlane | String | 是 | 请求来源的网络平面。 | 仅支持配置 |
授权策略中不同的条件对应了不同的运算符,详细说明如下所示。
适用条件 | 运算符说明 |
---|---|
|
|
|
|
SourceIp |
|
SecureTransport | 布尔值,取值说明如下:
|
注意
/
转义。