--- title: "Check policy validity" slug: "management-subaccount-validatepolicy" tags: ["Sub Account"] updated: 2026-10-08T04:24:10Z published: 2026-10-08T04:24:10Z canonical: "api.ncloud-docs.com/management-subaccount-validatepolicy" --- > ## 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. # Check policy validity Available in Classic and VPC Check the validity of the policy details before creating a policy. ## Request This section describes the request format. The method and URI are as follows: | Method | URI | | --- | --- | | POST | /api/v1/policy/validation | ### 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 body You can include the following data in the body of your request: | Field | Type | Required | Description | | --- | --- | --- | --- | | `policyName` | String | Required | Policy name - Enter 3-30 characters by combining Korean letters, lowercase/uppercase English letters, numbers, Japanese letters, and special characters "-", "_", and ".". - First letter must be a Korean letter, lowercase/uppercase English letter, or Japanese letter. | | `description` | String | Optional | Description of the policy (byte) - 0-300 | | `permissions` | Array | Required | List of allowed permissions: [permissions](/docs/en/management-subaccount-validatepolicy#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-validatepolicy#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 POST 'https://subaccount.apigw.ntruss.com/api/v1/policy/48ac3260-****-****-****-246e96591594?withPermissions=true' \ --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 '{ "policyName": "policy", "description": "Testing", "permissions": [ { "effect": "Allow", "targets": [ { "product": "Server", "actions": [ "View*" ], "resourceNrns": [ "*" ] } ] } ] } ``` ## Response This section describes the response format. ### Response body The response body includes the following data: | Field | Type | Required | Description | | --- | --- | --- | --- | | `details` | Array | - | Validity check detailed results: [details](/docs/en/management-subaccount-validatepolicy#details) | | `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: #### If the check results in a valid policy The following is a sample response if the check results in a valid policy. ``` { "success": true } ``` #### If the check results in an invalid policy The following is a sample response if the check results in an invalid policy. ``` { "details": [ { "type": "WARNING", "code": "iam.policy.missingRelatedAction", "location": "", "message": "An associated action is missing. {Server=[View/getInitScriptList, Change/changeInitScript, View/getRootPasswordServerInstanceList, Change/setDetailedMonitoring]}" } ], "success": false } ```