对象存储STS访问控制
更新时间 2025-06-11 14:55:16
最近更新时间: 2025-06-11 14:55:16
第一步:创建角色
接口介绍
创建角色
接口约束
支持的线上资源池:上海7、西安5、温州、内蒙6、合肥2、昆明2、南京3、南京5、晋中1、成都4、杭州2、拉萨3、重庆2、雄安2、九江、北京5、海口2
URI
POST /v4/oss/create-role
请求参数
请求体 JSON Body 参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
regionID | 是 | String | 区域ID | 332232eb-63aa-465e-9028-52e5123866f0 |
roleName | 是 | String | 角色名称,在资源池区域内唯一 | role1 |
path | 是 | String | 角色地址,必须以/开始和结尾 | / |
assumeName | 是 | String | 被授权客户端,目前仅支持sts | sts |
policyDocument | 否 | String | JSON 文档形式的角色承接策略,默认:"{"Version": "2012-10-17", "Statement": {"Action": ["sts:AssumeRole"], "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam:::user/{oss_uid}"]}}}"。 | "{"Version": "2012-10-17", "Statement": {"Action": ["sts:AssumeRole"], "Effect": "Allow", "Resource": "arn:aws:s3:::bucket-name/*", "Principal": {"AWS": ["arn:aws:iam:::user/logservice-user"]}}}" |
note | 否 | String | 备注 | some notes |
maxSessionDuration | 否 | Integer | 最大会话时间,默认 3600 | 3600 |
表 policyDocument
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
Version | 是 | String | 当前支持"2012-10-17" | 2012-10-17 |
Id | 否 | String | 存储空间策略ID,存储空间策略的唯一标识 | policy1 |
Statement | 是 | Array of Objects | 存储空间策略描述,定义完整的权限控制。每条存储空间策略的Statement可由多条描述组成,每条描述是一个dict,每条描述可包含以下字段: Sid Effect Principal Action ReSource Condition | 见下级对象 |
表 Statement
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
Sid | 否 | String | 本条存储空间策略描述的ID | S3PolicyId1 |
Effect | 是 | String | 存储空间策略的效果,即指定本条存储空间策略描述的权限是接受请求还是拒绝请求。 接受请求:配置为“Allow”, 拒绝请求:配置为“Deny” | Deny |
Principal | 是 | Object or String | 被授权人,即指定本条存储空间策略描述所作用的用户,支持通配符“*”,表示所有用户。当对某个user进行授权时,Principal 格式为"AWS": "arn:aws:s3:::userId" | * |
Action | 是 | String or Array of string | 操作,即指定本条存储空间策略描述所作用的oss操作。以列表形式表示,可配置多条操作,以逗号间隔。支持通配符”“,表示该资源能进行的所有操作。常用的Action有"s3:GetObject","s3:PutObject","s3:"等 | s3:* |
Condition | 否 | Object | 条件语句,指定本条存储空间策略所限制的条件。可以通过Condition对oss资源各种策略 | {"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}} |
Resource | 否 | String or Array of string | 此条策略所作用的资源,如存储空间、对象等 | ["arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"] |
响应参数
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
statusCode | Integer | 返回码 取值范围:800 成功 | 800 |
message | String | 状态描述 | SUCCESS |
returnObj | Object | 响应对象 | 见下级对象 |
description | String | 状态描述,一般为中文 | 成功 |
errorCode | String | 业务细分码(仅失败时具有此参数),为product.module.code三段式码 | openapi.userPermission.accessFailed |
表 returnObj
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
arn | String | 角色arn | arn:aws:iam::123456789012:role/Test-Role |
请求示例
{
"regionID": "332232eb-63aa-465e-9028-52e5123866f0",
"roleName": "role1",
"path": "/",
"assumeName": "sts",
"policyDocument": "{\"Version\": \"2012-10-17\", \"Statement\": {\"Action\": [\"sts:AssumeRole\"], \"Effect\": \"Allow\", \"Principal\": {\"AWS\": [\"arn:aws:iam:::user/logservice-user\"]}}}"
}
响应示例
{
"message": "SUCCESS",
"description": "成功",
"statusCode": 800,
"returnObj": {"arn": "arn:aws:iam:::role/Test-Role"}
}
状态码
状态码 | 描述 |
---|---|
800 | 表示请求成功。 |
900 | 表示请求失败。 |
第二步:创建角色策略
接口介绍
创建角色策略
URI
POST /v4/oss/create-policy
请求参数
请求体 JSON Body 参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
regionID | 是 | String | 区域ID | 332232eb-63aa-465e-9028-52e5123866f0 |
policyName | 是 | String | 策略名称 | policy1 |
policyDocument | 是 | String | JSON 文档形式的策略 | "{"Version": "2012-10-17", "Statement": {"Action": ["s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:RestoreObject"], "Resource": "arn:aws:s3:::bucket-name/*", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam:::user/logservice-user"]}}}" |
note | 否 | String | 备注 | some notes |
表 policyDocument
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
Version | 是 | String | 当前支持"2012-10-17" | 2012-10-17 |
Id | 否 | String | 存储空间策略ID,存储空间策略的唯一标识 | policy1 |
Statement | 是 | Array of Objects | 存储空间策略描述,定义完整的权限控制。每条存储空间策略的Statement可由多条描述组成,每条描述是一个dict,每条描述可包含以下字段: Sid Effect Principal Action ReSource Condition | 见下级对象 |
表 Statement
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
Sid | 否 | String | 本条存储空间策略描述的ID | S3PolicyId1 |
Effect | 是 | String | 存储空间策略的效果,即指定本条存储空间策略描述的权限是接受请求还是拒绝请求。 接受请求:配置为“Allow”, 拒绝请求:配置为“Deny” | Deny |
Principal | 否 | Object or String | 被授权人,即指定本条存储空间策略描述所作用的用户,支持通配符“*”,表示所有用户。当对某个user进行授权时,Principal 格式为"AWS": "arn:aws:s3:::userId" | * |
Action | 是 | String or Array of string | 操作,即指定本条存储空间策略描述所作用的oss操作。以列表形式表示,可配置多条操作,以逗号间隔。支持通配符”“,表示该资源能进行的所有操作。常用的Action有"s3:GetObject","s3:PutObject","s3:"等 | s3:* |
Condition | 否 | Object | 条件语句,指定本条存储空间策略所限制的条件。可以通过Condition对oss资源各种策略。 | {"NotIpAddress": {"aws:SourceIp": "54.240.143.0/24"}} |
Resource | 是 | String or Array of string | 此条策略所作用的资源,如存储空间、对象等 | ["arn:aws:s3:::DOC-EXAMPLE-BUCKET", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"] |
响应参数
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
statusCode | Integer | 返回码 取值范围:800 成功 | 800 |
message | String | 状态描述 | SUCCESS |
returnObj | Object | 响应对象 | 见下级对象 |
description | String | 状态描述,一般为中文 | 成功 |
errorCode | String | 业务细分码(仅失败时具有此参数),为product.module.code三段式码 | openapi.userPermission.accessFailed |
请求示例
{
"regionID": "332232eb-63aa-465e-9028-52e5123866f0",
"policyName": "policy1",
"policyDocument": "{\"Version\": \"2012-10-17\", \"Statement\": {\"Action\": [\"s3:GetObject\", \"s3:PutObject\", \"s3:AbortMultipartUpload\", \"s3:DeleteObject\", \"s3:DeleteObjectVersion\", \"s3:RestoreObject\"], \"Resource\": \"arn:aws:s3:::bucket-name/*\", \"Effect\": \"Allow\"}}"
}
响应示例
{
"message": "SUCCESS",
"description": "成功",
"statusCode": 800
}
状态码
状态码 | 描述 |
---|---|
800 | 表示请求成功。 |
900 | 表示请求失败。 |
第三步:绑定角色策略
接口介绍
绑定角色和策略
URI
POST /v4/oss/bind-role-policy
请求参数
请求体 JSON Body 参数
参数 | 是否必填 | 参数类型 | 说明 | 示例 |
---|---|---|---|---|
regionID | 是 | String | 区域ID | 332232eb-63aa-465e-9028-52e5123866f0 |
roleName | 是 | String | 角色名称 | role1 |
policyName | 是 | String | 策略名称 | policy1 |
响应参数
参数 | 参数类型 | 说明 | 示例 |
---|---|---|---|
statusCode | Integer | 返回码 取值范围:800 成功 | 800 |
message | String | 状态描述 | SUCCESS |
returnObj | Object | 响应对象 | 见下级对象 |
description | String | 状态描述,一般为中文 | 成功 |
errorCode | String | 业务细分码(仅失败时具有此参数),为product.module.code三段式码 | openapi.userPermission.accessFailed |
请求示例
{
"regionID": "332232eb-63aa-465e-9028-52e5123866f0",
"roleName": "role1",
"policyName": "policy1"
}
响应示例
{
"message": "SUCCESS",
"description": "成功",
"statusCode": 800
}
状态码
状态码 | 描述 |
---|---|
800 | 表示请求成功。 |
900 | 表示请求失败。 |