Modifying a Custom Policy for Cloud Services

Function

This API is provided for the administrator to modify a custom policy for cloud services.

The API can be called using both the global endpoint and region-specific endpoints.

URI

PATCH /v3.0/OS-ROLE/roles/{role_id}

Table 1 URI parameters

Parameter

Mandatory

Type

Description

role_id

Yes

String

Custom policy ID. For details about how to obtain a custom policy ID, see Custom Policy ID.

Request Parameters

Table 2 Parameters in the request header

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.

Table 3 Parameters in the request body

Parameter

Mandatory

Type

Description

role

Yes

Object

Custom policy information.

Table 4 role

Parameter

Mandatory

Type

Description

display_name

Yes

String

Display name of the custom policy.

type

Yes

String

Display mode.

Note

  • AX: Account level.

  • XA: Project level.

  • The display mode of a custom policy can only be AX or XA. A custom policy must be displayed at either of the two levels.

description

Yes

String

Description of the custom policy.

description_cn

No

String

Description of the custom policy.

policy

Yes

Object

Content of custom policy.

Table 5 role.policy

Parameter

Mandatory

Type

Description

Version

Yes

String

Policy version. When creating a custom policy, set this parameter to 1.1.

Note

  • 1.0: System-defined role. Only a limited number of service-level roles are provided for authorization.

  • 1.1: Policy. A policy defines the permissions required to perform operations on a specific cloud resource under certain conditions.

Statement

Yes

Array of objects

Statement of the policy. A policy can contain a maximum of eight statements.

Table 6 role.policy.Statement

Parameter

Mandatory

Type

Description

Action

Yes

Array of strings

Specific operation permission on a resource. A maximum of 100 actions are allowed.

Note

  • The value format is Service name:Resource type:Operation, for example, vpc:ports:create.

  • Service name: indicates the product name, such as ecs, evs, or vpc. Only lowercase letters are allowed. Resource types and operations are not case-sensitive. You can use an asterisk (*) to represent all operations.

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:

  • Allow

  • Deny

Condition

No

Object

Conditions for the permission to take effect. A maximum of 10 conditions are allowed.

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

  • Format: ::::. For example, obs:::bucket:*. Asterisks are allowed.

  • The region segment can be * or a region accessible to the user. The specified resource must belong to the corresponding service that actually exists.

Table 7 role.policy.Statement.Condition

Parameter

Mandatory

Type

Description

<operator>

No

Object

Operator, for example, Bool and StringEquals.

  • The parameter type is custom object.

Table 8 role.policy.Statement.Condition.<operator>

Parameter

Mandatory

Type

Description

<attribute>

No

Array of strings

Condition key. The condition key must correspond to the specified operator. A maximum of 10 condition keys are allowed.

  • The parameter type is custom character string array.

Response Parameters

Table 9 Parameters in the response body

Parameter

Type

Description

role

Object

Custom policy information.

Table 10 role

Parameter

Type

Description

catalog

String

Service catalog.

display_name

String

Display name of the custom policy.

description

String

Description of the custom policy.

links

Object

Resource link of the custom policy.

policy

Object

Content of custom policy.

description_cn

String

Description of the custom policy.

domain_id

String

Domain ID.

type

String

Display mode.

Note

  • AX: Account level.

  • XA: Project level.

  • The display mode of a custom policy can only be AX or XA. A custom policy must be displayed at either of the two levels.

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.

Table 11 role.links

Parameter

Type

Description

self

String

Resource link.

Table 12 role.policy

Parameter

Type

Description

Version

String

Policy version.

Note

  • 1.0: System-defined role. Only a limited number of service-level roles are provided for authorization.

  • 1.1: Policy. A policy defines the permissions required to perform operations on a specific cloud resource under certain conditions.

Statement

Array of objects

Statement of the policy. A policy can contain a maximum of eight statements.

Table 13 role.policy.Statement

Parameter

Type

Description

Action

Array of strings

Specific operation permission on a resource. A maximum of 100 actions are allowed.

Note

  • The value format is Service name:Resource type:Operation, for example, vpc:ports:create.

  • Service name: indicates the product name, such as ecs, evs, or vpc. Only lowercase letters are allowed. Resource types and operations are not case-sensitive. You can use an asterisk (*) to represent all operations.

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:

  • Allow

  • Deny

Condition

Object

Conditions for the permission to take effect. A maximum of 10 conditions are allowed.

Resource

Array of strings

Cloud resource. The array can contain a maximum of 10 resource strings, and each string cannot exceed 128 characters.

Note

  • Format: ::::. For example, obs:::bucket:*. Asterisks are allowed.

  • The region segment can be * or a region accessible to the user. The specified resource must belong to the corresponding service that actually exists.

Table 14 role.policy.Statement.Condition

Parameter

Type

Description

operator

Object

Operator, for example, Bool and StringEquals.

  • The parameter type is custom object.

Table 15 role.policy.Statement.Condition.operator

Parameter

Type

Description

attribute

Array of strings

Condition key. The condition key must correspond to the specified operator. A maximum of 10 condition keys are allowed.

  • The parameter type is custom character string array.

Example Request

PATCH https:///v3.0/OS-ROLE/roles/{role_id}
{
    "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": [
                                ""
                            ]
                        }
                    },
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ]
                }
            ]
        }
    }
}

Example Response

Status code: 200

The request is successful.

{
    "role": {
        "catalog": "CUSTOMED",
        "display_name": "IAMCloudServicePolicy",
        "description": "IAMDescription",
        "links": {
            "self": "https:///v3/roles/93879fd90f1046f69e6e0b31c94d2615"
        },
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ],
                    "Effect": "Allow",
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                ""
                            ]
                        }
                    }
                }
            ]
        },
        "description_cn": "Policy description",
        "domain_id": "d78cbac186b744899480f25bd0...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c94d2615",
        "name": "custom_d78cbac186b744899480f25bd022f468_1"
    }
}

Status Codes

Status Code

Description

200

The request is successful.

400

The server failed to process the request.

401

Authentication failed.

403

Access denied.

404

The requested resource cannot be found.

500

Internal server error.

Error Codes

None