--- title: "Edit policy" slug: "management-subaccount-updatepolicy" tags: ["Sub Account"] updated: 2026-10-08T04:24:07Z published: 2026-10-08T04:24:07Z canonical: "api.ncloud-docs.com/management-subaccount-updatepolicy" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Edit policy Available in Classic and VPC Edit User Created policy information. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | PUT | /api/v1/policies/{policyId} | ### Request headers For information about the request headers common to all Sub Account APIs, see [Sub Account request headers](/docs/en/management-subaccount#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94). ### Request path parameters You can use the following path parameters with your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `policyId` | String | Required | Policy ID - See [Get policy list](/docs/en/management-subaccount-getpolicies). | ### Request body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `description` | String | Optional | Description of the policy (byte) - 0-300 | | `permissions` | Array | Required | List of allowed permissions: [permissions](/docs/en/management-subaccount-updatepolicy#permissions) | #### `permissions` The following describes `permissions`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `effect` | String | Required | Whether to grant permissions - `Allow`/`Deny` (valid value) | | `targets` | Array | Required | Permission recipients: [targets](/docs/en/management-subaccount-updatepolicy#targets) | | `condition` | Object | Optional | Policy condition | | `condition.{operator}` | Object | Optional | See [Policy condition operator](https://guide.ncloud-docs.com/docs/en/subaccount-condition#condition-%EC%97%B0%EC%82%B0%EC%9E%90). | | `condition.{operator}.{key}` | Object | Optional | See [Policy condition key](https://guide.ncloud-docs.com/docs/en/subaccount-condition#condition-%EC%A1%B0%EA%B1%B4-%ED%82%A4%EA%B0%92). | | `condition.{operator}.{value}` | Array | Optional | See [Policy condition value](https://guide.ncloud-docs.com/docs/en/subaccount-condition#condition-%EC%A1%B0%EA%B1%B4-%ED%82%A4%EA%B0%92). | #### `targets` The following describes `targets`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `product` | String | Required | Allowable service code - See [Permission information by service](https://guide.ncloud-docs.com/docs/en/subaccount-servicelist). | | `actions` | Array | Required | Allowable action - See [Permission information by service](https://guide.ncloud-docs.com/docs/en/subaccount-servicelist) to apply as follows: - Detailed action unit: Enter the action name. - All query units: Enter `View*`. - All change units: Enter `Change*`. - Service unit: Enter an asterisk (*). | | `resourceNrns` | Array | Required | NAVER Cloud Platform resource identification value for the allowable target - Enter an asterisk (*) when not specifying. | ### Request example The request example is as follows: ``` curl --location --request PUT 'https://subaccount.apigw.ntruss.com/api/v1/policies/48ac3260-****-****-****-246e96591594' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "description": "mypolicy-test", "permissions": [ { "effect": "Allow", "targets": [ { "product": "AiTEMS", "actions": [ "View*", "Change*" ], "resourceNrns": [ "*" ] } ], "condition": { "StringEquals": { "ncp:principalName": [ "abc", "bcd" ] } } } ] }' ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `policyId` | String | - | Policy ID | | `policyName` | String | - | Policy name | | `description` | String | - | Policy description | | `validationResult` | Object | - | Validity check results | | `validationResult.details` | Array | - | Validity check detailed results: [details](/docs/en/management-subaccount-updatepolicy#details) | | `validationResult.success` | Boolean | - | Validity check results - `true` \| `false` - `true`: Valid - `false`: Invalid | #### `details` The following describes `details`. | Field | Type | Required | Description | | --- | --- | --- | --- | | `type` | String | - | Check result type - `INFO` \| `WARNING` \| `ERROR` - `ERROR` indicates a failed validity check. | | `code` | String | - | Detailed code | | `location` | String | - | Check location | | `message` | String | - | Check result message | ### Response status codes For information about the response status codes common to all Sub Account APIs, see [Sub Account response status codes](/docs/en/management-subaccount#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C). ### Response example The response example is as follows: ``` { "policyId": "ec5a5dd0-****-****-****-246e966ebeb4", "policyName": "mypolicy2", "description": "mypolicy-test", "validationResult": { "details": [], "success": true } } ```