Reviewed-by: Kabai, Zoltán Gábor <zoltan-gabor.kabai@t-systems.com> Co-authored-by: Wei, Hongmin <weihongmin1@huawei.com> Co-committed-by: Wei, Hongmin <weihongmin1@huawei.com>
56 KiB
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.
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. |
Yes |
Object |
Content of 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 |
Object |
Conditions for the permission to take effect. A maximum of 10 conditions are allowed. NOTE:
Take the condition in the sample request as an example, the condition key (obs:prefix) and the 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 custom policy. |
|
description_cn |
String |
Description of the custom policy. |
domain_id |
String |
Domain ID. |
type |
String |
Display mode. NOTE:
|
id |
String |
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 |
Type |
Description |
---|---|---|
Action |
Array of strings |
Specific operation permission on a resource. A maximum of 100 actions are allowed. NOTE:
|
Effect |
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 |
Map<String,Map<String,Array<String>>> |
Conditions for the permission to take effect. A maximum of 10 conditions are allowed. NOTE:
Take the condition in the sample request as an example, the condition key (obs:prefix) and the string (public) must be equal (StringEquals). "Condition": { "StringEquals": { "obs:prefix": [ "public" ] } } |
Resource |
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.eu-de.otc.t-systems.com/v3.0/OS-ROLE/roles
{ "role": { "display_name": "IAMCloudServicePolicy", "type": "AX", "description": "IAMDescription", "description_cn": "Policy description", "policy": { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:bucket:GetBucketAcl" ], "Condition": { "StringStartWith": { "g:ProjectName": [ "eu-de" ] } }, } ] } } }
Example Response
Status code: 201
The request is successful.
{ "role": { "catalog": "CUSTOMED", "display_name": "IAMCloudServicePolicy", "description": "IAMDescription", "links": { "self": "https://iam.eu-de.otc.t-systems.com/v3/roles/93879fd90f1046f69e6e0b31c94d2..." }, "policy": { "Version": "1.1", "Statement": [ { "Action": [ "obs:bucket:GetBucketAcl" ], "Resource": [ "obs:*:*:bucket:*" ], "Effect": "Allow", "Condition": { "StringStartWith": { "g:ProjectName": [ "eu-de" ] } } } ] }, "description_cn": "Policy description", "domain_id": "d78cbac186b744899480f25bd...", "type": "AX", "id": "93879fd90f1046f69e6e0b31c9...", "name": "custom_d78cbac186b744899480f25bd022f468_1" } }
Status Codes
Status Code |
Description |
---|---|
201 |
The request is successful. |
400 |
The server failed to process the request. |
401 |
Authentication failed. |
403 |
Access denied. |
500 |
Internal server error. |
Error Codes
None