對象存儲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 | 表示請求失敗。 |