Creating a Custom Policy for Cloud Services
Function
This API is provided for the administrator to create a custom policy for cloud services.
The API can be called using both the global endpoint and region-specific endpoints. For IAM endpoints, see Regions and Endpoints.
URI
POST /v3.0/OS-ROLE/roles
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Content-Type | Yes | String | Fill application/json;charset=utf8 in this field. |
| X-Auth-Token | Yes | String | Token with Security Administrator permissions. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Yes | Object | Custom policy information. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| display_name | Yes | String | Display name of the custom policy. |
| type | Yes | String | Display mode. NOTE:
|
| description | Yes | String | Description of the custom policy. |
| description_cn | No | String | Description of the custom policy in Chinese. |
| Yes | Object | Content of the custom policy. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Version | Yes | String | Policy version. When creating a custom policy, set this parameter to 1.1. NOTE:
|
| Yes | Array of objects | Statement of the policy. A policy can contain a maximum of eight statements. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Action | Yes | Array of strings | Specific operation permission on a resource. A maximum of 100 actions are allowed. NOTE:
|
| Effect | Yes | String | Effect of the permission. The value can be Allow or Deny. If both Allow and Deny statements are found in a policy, the authentication starts from the Deny statements. Options:
|
| Condition | No | Map<String,Map<String,Array<String>>> | Conditions for the permission to take effect. A maximum of 10 conditions are allowed. For details about the condition parameters, see Creating a Custom Policy. NOTE: Take the condition in the sample request as an example, the values of the condition key (obs:prefix) and string (public) must be equal (StringEquals). "Condition": {
"StringEquals": {
"obs:prefix": [
"public"
]
}
} |
| Resource | No | Array of strings | Cloud resource. The array can contain a maximum of 10 resource strings, and each string cannot exceed 128 characters. NOTE:
|
Response Parameters
| Parameter | Type | Description |
|---|---|---|
| Object | Custom policy information. |
| Parameter | Type | Description |
|---|---|---|
| catalog | String | Service catalog. |
| display_name | String | Display name of the custom policy. |
| description | String | Description of the custom policy. |
| Object | Resource link of the custom policy. | |
| Object | Content of the custom policy. | |
| description_cn | String | Description of the custom policy in Chinese. |
| domain_id | String | Account ID. |
| type | String | Display mode. NOTE:
|
| id | String | Custom policy ID. |
| name | String | Name of the custom policy. |
| updated_time | String | Time when the custom policy was last updated. |
| created_time | String | Time when the custom policy was created. |
| references | String | Number of references. |
| Parameter | Type | Description |
|---|---|---|
| Version | String | Policy version. NOTE:
|
| Array of objects | Statement of the policy. A policy can contain a maximum of eight statements. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Action | Yes | Array of strings | Specific operation permission on a resource. A maximum of 100 actions are allowed. NOTE:
|
| Effect | Yes | String | Effect of the permission. The value can be Allow or Deny. If both Allow and Deny statements are found in a policy, the authentication starts from the Deny statements. Options:
|
| Condition | No | Map<String,Map<String,Array<String>>> | Conditions for the permission to take effect. A maximum of 10 conditions are allowed. For details about the condition parameters, see Creating a Custom Policy. NOTE: Take the condition in the sample request as an example, the values of the condition key (obs:prefix) and string (public) must be equal (StringEquals). "Condition": {
"StringEquals": {
"obs:prefix": [
"public"
]
}
} |
| Resource | No | Array of strings | Cloud resource. The array can contain a maximum of 10 resource strings, and each string cannot exceed 128 characters. NOTE:
|
Example Request
POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
{
"role": {
"display_name": "IAMCloudServicePolicy",
"type": "AX",
"description": "IAMDescription",
"description_cn": "Description in Chinese",
"policy": {
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"obs:bucket:GetBucketAcl"
],
"Condition": {
"StringStartWith": {
"g:ProjectName": [
"cn-north-1"
]
}
},
"Resource": [
"obs:*:*:bucket:*"
]
}
]
}
}
} Example Response
Status code: 201
The custom policy is created successfully.
{
"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": "Description in Chinese",
"domain_id": "d78cbac186b744899480f25bd...",
"type": "AX",
"id": "93879fd90f1046f69e6e0b31c9...",
"name": "custom_d78cbac186b744899480f25bd022f468_1"
}
} Status Codes
| Status Code | Description |
|---|---|
| 201 | The custom policy is created successfully. |
| 400 | Invalid parameters. |
| 401 | Authentication failed. |
| 403 | Access denied. |
| 500 | Internal server error. |
Error Codes
None
Last Article: Querying Custom Policy Details
Next Article: Creating a Custom Policy for Agencies
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.