创建云服务自定义策略
调试
您可以在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 |
内部服务错误。 |
错误码
无