创建云服务自定义策略
调试
您可以在API Explorer中调试该接口。
URI
POST /v3.0/OS-ROLE/roles
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Content-Type |
是 |
String |
该字段内容填为“application/json;charset=utf8”。 |
|
X-Auth-Token |
是 |
String |
访问令牌,承载用户的身份、权限等信息。 token所需权限请参见授权项。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
是 |
Object |
自定义策略信息。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
display_name |
是 |
String |
自定义策略展示名。 |
|
type |
是 |
String |
自定义策略的作用范围。
自定义策略的显示模式只能为AX或者XA,不能同时在全局服务和区域级项目生效(AA),或者在全局服务和区域级项目都不生效(XX)。
说明:
|
|
description |
是 |
String |
自定义策略的描述信息。 |
|
description_cn |
否 |
String |
自定义策略的中文描述信息。 |
|
是 |
Object |
自定义策略的具体内容。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Version |
是 |
String |
权限版本号,创建自定义策略时,该字段值填为“1.1”。
说明:
|
|
是 |
Array of objects |
授权语句,描述自定义策略的具体内容。 |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Action |
是 |
Array of strings |
授权项,指对资源的具体操作权限。支持的授权项请参考各云服务《API参考》中“权限和授权项”章节。
说明:
|
|
Effect |
是 |
String |
作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围:
|
|
Condition |
否 |
Map<String,Map<String,Array<String>>> |
限制条件。了解更多相关参数,请参考:配置自定义策略。
说明:
以请求示例中的Condition为例:条件键(obs:prefix)和字符串(public)需相等(StringEquals)。 "Condition": {
"StringEquals": {
"obs:prefix": [
"public"
]
}
}
|
|
Resource |
否 |
Array of strings |
资源。规则如下:
说明:
|
响应参数
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
Object |
自定义策略信息。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
catalog |
String |
自定义策略所在目录。 |
|
display_name |
String |
自定义策略展示名。 |
|
description |
String |
自定义策略的描述信息。 |
|
Object |
自定义策略的资源链接信息。 |
|
|
Object |
自定义策略的具体内容。 |
|
|
description_cn |
String |
自定义策略的中文描述信息,仅在请求中传入了description_cn参数,响应体中才会返回此字段。 |
|
domain_id |
String |
自定义策略所属账号ID。 |
|
type |
String |
自定义策略的显示模式。
说明:
|
|
id |
String |
自定义策略ID。 |
|
name |
String |
自定义策略名。 |
|
updated_time |
String |
自定义策略更新时间。
说明:
UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 |
|
created_time |
String |
自定义策略创建时间。
说明:
UNIX时间戳格式,单位是毫秒,时间戳格式如:1687913793000。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
Version |
String |
权限版本号。
说明:
|
|
Array of objects |
授权语句,描述自定义策略的具体内容,不超过8个。 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
Action |
Array of strings |
授权项,指对资源的具体操作权限。 |
|
Effect |
String |
作用。包含两种:允许(Allow)和拒绝(Deny),既有Allow又有Deny的授权语句时,遵循Deny优先的原则。 取值范围:
|
|
Condition |
Map<String,Map<String,Array<String>>> |
限制条件,如果请求中未传入此字段,则返回结果中也无此字段。 |
|
Resource |
Array of strings |
资源,如果请求中未传入此字段,则返回结果中也无此字段。规则如下:
说明:
|
请求示例
创建一个名为“IAMCloudServicePolicy”的自定义策略。策略表示仅允许以项目名称为“cn-north-1”开头的请求获取所有桶ACL的相关信息。
POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
{
"role": {
"display_name": "IAMCloudServicePolicy",
"type": "AX",
"description": "IAMDescription",
"description_cn": "中文描述",
"policy": {
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"obs:bucket:GetBucketAcl"
],
"Condition": {
"StringStartWith": {
"g:ProjectName": [
"cn-north-1"
]
}
},
"Resource": [
"obs:*:*:bucket:*"
]
}
]
}
}
}
响应示例
状态码为 201 时:
创建成功。
{
"role": {
"catalog": "CUSTOMED",
"display_name": "IAMCloudServicePolicy",
"description": "IAMDescription",
"links": {
"self": "https://iam.myhuaweicloud.com/v3/roles/93879fd90f1046f69e6e0b31c94d2615"
},
"policy": {
"Version": "1.1",
"Statement": [
{
"Action": [
"obs:bucket:GetBucketAcl"
],
"Resource": [
"obs:*:*:bucket:*"
],
"Effect": "Allow",
"Condition": {
"StringStartWith": {
"g:ProjectName": [
"cn-north-1"
]
}
}
}
]
},
"description_cn": "中文描述",
"domain_id": "d78cbac186b744899480f25bd...",
"type": "AX",
"id": "93879fd90f1046f69e6e0b31c9...",
"name": "custom_d78cbac186b744899480f25bd022f468_1"
}
}
返回值
|
返回值 |
描述 |
|---|---|
|
201 |
创建成功。 |
|
400 |
参数无效。 |
|
401 |
认证失败。 |
|
403 |
没有操作权限。 |
|
500 |
内部服务错误。 |
错误码
无