--- title: "정책 생성" slug: "drm-policy-create" updated: 2026-09-17T09:16:50Z published: 2026-09-17T09:16:50Z canonical: "api.ncloud-docs.com/drm-policy-create" --- > ## 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. # 정책 생성 Classic/VPC 환경에서 이용 가능합니다. DRM 정책을 생성합니다. 정책 상세 설정을 통해 DRM 타입별 재생 및 보안 레벨을 설정하고 라이선스 유효 기간, Persistent 여부(저장 여부) 등 재생과 관련된 정책을 정의할 수 있습니다. 참고 정책 생성 시 다음 내용을 참고해 주십시오. - 해상도별 트랙이 나누어진 콘텐츠의 경우, 플레이백 정책은 모든 트랙에 동일하게 적용됩니다. - One Click Multi DRM 서비스는 싱글키 라이선스만 지원하며, 멀티 트랙별 라이선스는 추후 지원 예정입니다. - One Click Multi DRM 서비스의 DRM 정책 상세 설정은 DoveRunner(구 PallyCon) DRM의 옵션을 동일하게 지원합니다. - 재생 정책 옵션: [DoveRunner(구 PallyCon) Playback policy 상세 옵션](https://doverunner.com/docs/content-security/multi-drm/license/license-token/#playback_policy) 참조 - 보안 정책 옵션: [DoveRunner(구 PallyCon) Security policy 상세 옵션](https://doverunner.com/docs/content-security/multi-drm/license/license-token/#security_policy) 참조 - DRM 타입별 상세 지원 단말 보안 레벨은 개별 단말 기기 지원 현황을 확인해 주십시오. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /api/v1/policy | ### 요청 헤더 One Click Multi DRM API에서 공통으로 사용하는 헤더에 대한 정보는 [One Click Multi DRM 요청 헤더](/docs/one-click-multi-drm-api-overview#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오. ### 요청 바디 요청 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `policyName` | String | Required | 정책 이름 - 영문자, 숫자, 특수 문자 '_'를 조합하여 3~20자 이내로 입력 | | `persistent` | Boolean | Required | 오프라인용 라이선스 저장 여부 - `true` \| `false` (기본값) - `true`: 라이선스 유지 - `false`: 재생 후 라이선스 제거(스트리밍) - `rentalDuration`(오프라인 렌탈 시나리오)을 사용하는 경우, `true`로 필수 입력 | | `rentalDuration` | Integer | Required | 오프라인 라이선스 획득 후 콘텐츠를 최초 재생해야 하는 유효 기간(초) - 0~2,147,483,647 (기본값: 0) - 오프라인 렌탈 시나리오 사용 시 설정 | | `playbackDuration` | Integer | Required | 콘텐츠 최초 재생 시작 시점부터의 라이선스 유효 기간(초) - 0~2,147,483,647 (기본값: 0) | | `drmPolicyConfig` | Object | Required | DRM 타입별 정책 설정 | | `drmPolicyConfig.widevine` | Object | Required | Widevine 타입 정책 | | `drmPolicyConfig.widevine.useYn` | Boolean | Required | Widevine 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `drmPolicyConfig.widevine.securityLevel` | Integer | Optional | Widevine 보안 레벨 값 - `1` (기본값) \| `2` \| `3` \| `4` \| `5` - `1`: SW_SECURE_CRYPTO - `2`: SW_SECURE_DECODE - `3`: HW_SECURE_CRYPTO - `4`: HW_SECURE_DECODE - `5`: HW_SECURE_ALL (Widevine L1 기기만 재생 가능) - 숫자가 높을수록 보안 수준이 높음 | | `drmPolicyConfig.widevine.hdcp` | String | Optional | 디지털 출력에 대한 보안(HDCP) 레벨 - `HDCP_NONE` (기본값) \| `HDCP_V1` \| `HDCP_V2` \| `HDCP_V2_1` \| `HDCP_V2_2` \| `HDCP_NO_DIGITAL_OUTPUT` - 버전이 높을수록 보안 수준이 높음 | | `drmPolicyConfig.widevine.cgms` | String | Optional | 아날로그 출력에 대한 보안(CGMS-A) 레벨 - `CGMS_NONE` (기본값) \| `COPY_FREE` \| `COPY_ONCE` \| `COPY_NEVER` | | `drmPolicyConfig.widevine.disableAnalogOutputYn` | Boolean | Optional | 아날로그 출력 차단 여부 - `true` \| `false` (기본값) - `true`: 차단 - `false`: 허용 | | `drmPolicyConfig.widevine.hdcpSrmRule` | String | Optional | HDCP 기기가 SRM (System Renewability Message)을 처리하지 못하는 경우의 콘텐츠 재생 여부 - `HDCP_SRM_RULE_NONE` (기본값) \| `CURRENT_SRM` - `HDCP_SRM_RULE_NONE`: 해당 트랙 재생 - `CURRENT_SRM`: 해당 트랙 재생 불가 | | `drmPolicyConfig.widevine.deviceRevocation` | Boolean | Optional | Revoke (Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 - `true` \| `false` (기본값) - `true`: 허용 - `false`: 허용 안 함 | | `drmPolicyConfig.playready` | Object | Required | PlayReady 타입 정책 | | `drmPolicyConfig.playready.useYn` | Boolean | Required | PlayReady 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `drmPolicyConfig.playready.securityLevel` | Integer | Optional | PlayReady 보안 레벨 값 - `150` (기본값) \| `2000` \| `3000` - 하드웨어 DRM 적용 시 `3000`으로 설정 - 숫자가 높을수록 보안 수준이 높음 | | `drmPolicyConfig.playready.digitalVideoProtectionLevel` | Integer | Optional | 디지털 비디오 출력에 대한 보안 레벨 - `100` (기본값) \| `250` \| `270` \| `300` \| `301` - 숫자가 높을수록 보안 수준이 높음 | | `drmPolicyConfig.playready.analogVideoProtectionLevel` | Integer | Optional | 아날로그 비디오 출력에 대한 보안 레벨 - `100` (기본값) \| `150` \| `200` \| `201` - 숫자가 높을수록 보안 수준이 높음 | | `drmPolicyConfig.playready.digitalAudioProtectionLevel` | Integer | Optional | 디지털 오디오 출력에 대한 보안 레벨 - `100` (기본값) \| `250` \| `300` \| `301` - 숫자가 높을수록 보안 수준이 높음 | | `drmPolicyConfig.playready.hdcpUseYn` | Boolean | Optional | OPL(출력 보호 수준) 설정에 따라 HDCP가 적용될 때, Type 1 (HDCP 2.2 이상) 필요 여부 - `true` \| `false` (기본값) - `true`: Type 1 (HDCP 2.2 이상) 필요 - `false`: HDCP 필요 없음 - `true` 설정 시 HDCP 2.2 이상을 지원하는 기기만 콘텐츠 재생 가능 | | `drmPolicyConfig.fairplay` | Object | Required | FairPlay Streaming 타입 정책 | | `drmPolicyConfig.fairplay.useYn` | Boolean | Required | FairPlay Streaming 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `drmPolicyConfig.fairplay.hdcpEnforcement` | String | Optional | HDCP 적용 여부 및 버전 - `-1` (기본값) \| `0` \| `1` - `-1`: HDCP 미적용 - `0`: HDCP Type 0 (버전 무관) - `1`: HDCP Type 1 (2.2 이상 필요) | | `drmPolicyConfig.fairplay.allowAirPlay` | Boolean | Optional | AirPlay 허용 여부 - `true` (기본값) \| `false` - `true`: 허용 - `false`: 허용 안 함 | | `drmPolicyConfig.fairplay.allowAvAdaptor` | Boolean | Optional | 디지털 AV 어댑터를 통한 출력 허용 여부 - `true` (기본값) \| `false` - `true`: 허용 - `false`: 허용 안 함 | ### 요청 예시 요청 예시는 다음과 같습니다. ``` curl --location --request POST 'https://multi-drm.apigw.ntruss.com/api/v1/policy' \ --header 'x-ncp-apigw-timestamp: {Timestamp}' \ --header 'x-ncp-iam-access-key: {Access Key}' \ --header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \ --header 'Content-Type: application/json' \ --header 'x-ncp-region_code: KR' \ --data '{ "policyName": "mySamplePolicy", "persistent": false, "rentalDuration": 0, "playbackDuration": 0, "drmPolicyConfig": { "wideVine": { "useYn": true, "securityLevel": 1, "hdcp": "HDCP_NONE", "cgms": "CGMS_NONE", "disableAnalogOutputYn": true, "hdcpSrmRule": "HDCP_SRM_RULE_NONE", "deviceRevocation": true }, "playReady": { "useYn": true, "securityLevel": 150, "digitalVideoProtectionLevel": 100, "analogVideoProtectionLevel": 100, "digitalAudioProtectionLevel": 100, "hdcpUseYn": true }, "fairPlay": { "useYn": true, "hdcpEnforcement": -1, "allowAirPlay": true, "allowAvAdaptor": true } } }' ``` ## 응답 응답 형식을 설명합니다. ### 응답 바디 응답 바디에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `success` | Boolean | - | API 처리 결과 - `true` \| `false` - `true`: 성공 - `false`: 실패 | | `content` | Object | - | 정책 정보 | | `content.disabled` | Boolean | - | Sub Account 비활성화 여부 - `true` \| `false` - `true`: 비활성 - `false`: 활성 | | `content.policyId` | Integer | - | DRM 정책 아이디 - `0`: Basic | | `content.policyName` | String | - | 정책 이름 | | `content.policyStatus` | String | - | 정책 상태 - `CREATED` \| `CREATING` \| `READY` \| `DELETED` \| `UPDATING` - `CREATED`: 생성 완료 - `CREATING`: 생성 중 - `READY`: 사용 가능 - `DELETED`: 삭제 완료 - `UPDATING`: 업데이트 중 | | `content.policyCreatedTime` | Integer | - | 정책 생성 일시(밀리초) - Unix Timestamp 형식 | | `content.policyUpdateTime` | Integer | - | 정책 수정 일시(밀리초) - Unix Timestamp 형식 | | `content.persistent` | Boolean | - | 오프라인용 라이선스 저장 여부 - `true` \| `false` - `true`: 라이선스 유지 - `false`: 재생 후 라이선스 제거(스트리밍) | | `content.rentalDuration` | Integer | - | 오프라인 라이선스 획득 후, 콘텐츠를 최초 재생해야 하는 유효 기간(초) | | `content.playbackDuration` | Integer | - | 콘텐츠 최초 재생 시작 시점부터의 라이선스 유효 기간(초) | | `content.drmPolicyConfig` | Object | - | DRM 타입별 정책 설정 | | `content.drmPolicyConfig.wideVine` | Object | - | Widevine 타입 정책 | | `content.drmPolicyConfig.wideVine.useYn` | Boolean | - | Widevine 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `content.drmPolicyConfig.wideVine.securityLevel` | Integer | - | Widevine 보안 레벨 값 - `1` \| `2` \| `3` \| `4` \| `5` - `1`: SW_SECURE_CRYPTO - `2`: SW_SECURE_DECODE - `3`: HW_SECURE_CRYPTO - `4`: HW_SECURE_DECODE - `5`: HW_SECURE_ALL (Widevine L1 기기만 재생 가능) - 숫자가 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.wideVine.hdcp` | String | - | 디지털 출력에 대한 보안(HDCP) 레벨 - `HDCP_NONE` \| `HDCP_V1` \| `HDCP_V2` \| `HDCP_V2_1` \| `HDCP_V2_2` \| `HDCP_NO_DIGITAL_OUTPUT` - 버전이 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.wideVine.cgms` | String | - | 아날로그 출력에 대한 보안(CGMS-A) 레벨 - `CGMS_NONE` \| `COPY_FREE` \| `COPY_ONCE` \| `COPY_NEVER` | | `content.drmPolicyConfig.wideVine.disableAnalogOutputYn` | Boolean | - | 아날로그 출력 차단 여부 - `true` \| `false` - `true`: 차단 - `false`: 허용 | | `content.drmPolicyConfig.wideVine.hdcpSrmRule` | String | - | HDCP 기기가 SRM (System Renewability Message)을 처리하지 못하는 경우의 콘텐츠 재생 여부 - `HDCP_SRM_RULE_NONE` \| `CURRENT_SRM` - `HDCP_SRM_RULE_NONE`: 해당 트랙 재생 - `CURRENT_SRM`: 해당 트랙 재생 불가 | | `content.drmPolicyConfig.wideVine.deviceRevocation` | Boolean | - | Revoke (Widevine 지원 대상에서 철회)된 안드로이드 기기에 대한 라이선스 발급 허용 여부 - `true` \| `false` - `true`: 허용 - `false`: 허용 안 함 | | `content.drmPolicyConfig.playReady` | Object | - | PlayReady 타입 정책 | | `content.drmPolicyConfig.playReady.useYn` | Boolean | - | PlayReady 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `content.drmPolicyConfig.playReady.securityLevel` | Integer | - | PlayReady 보안 레벨 값 - `150` \| `2000` \| `3000` - 하드웨어 DRM 적용 시 `3000`으로 설정 - 숫자가 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.playReady.digitalVideoProtectionLevel` | Integer | - | 디지털 비디오 출력에 대한 보안 레벨 - `100` \| `250` \| `270` \| `300` \| `301` - 숫자가 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.playReady.analogVideoProtectionLevel` | Integer | - | 아날로그 비디오 출력에 대한 보안 레벨 - `100` \| `150` \| `200` \| `201` - 숫자가 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.playReady.digitalAudioProtectionLevel` | Integer | - | 디지털 오디오 출력에 대한 보안 레벨 - `100` \| `250` \| `300` \| `301` - 숫자가 높을수록 보안 수준이 높음 | | `content.drmPolicyConfig.playReady.hdcpUseYn` | Boolean | - | OPL (출력 보호 수준) 설정에 따라 HDCP가 적용될 때, Type 1 (HDCP 2.2 이상) 필요 여부 - `true` \| `false` - `true`: Type 1 (HDCP 2.2 이상) 필요 - `false`: HDCP 필요 없음 - `true` 설정 시 HDCP 2.2 이상을 지원하는 기기만 콘텐츠 재생 가능 | | `content.drmPolicyConfig.fairPlay` | Object | - | FairPlay Streaming 타입 정책 | | `content.drmPolicyConfig.fairPlay.useYn` | Boolean | - | FairPlay Streaming 정책 사용 여부 - `true` \| `false` - `true`: 사용 - `false`: 미사용 | | `content.drmPolicyConfig.fairPlay.hdcpEnforcement` | String | - | HDCP 적용 여부 및 버전 - `-1` \| `0` \| `1` - `-1`: HDCP 미적용 - `0`: HDCP Type 0 (버전 무관) - `1`: HDCP Type 1 (2.2 이상 필요) | | `content.drmPolicyConfig.fairPlay.allowAirPlay` | Boolean | - | AirPlay 허용 여부 - `true` \| `false` - `true`: 허용 - `false`: 허용 안 함 | | `content.drmPolicyConfig.fairPlay.allowAvAdaptor` | Boolean | - | 디지털 AV 어댑터를 통한 출력 허용 여부 - `true` \| `false` - `true`: 허용 - `false`: 허용 안 함 | ### 응답 상태 코드 One Click Multi DRM API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [One Click Multi DRM 응답 상태 코드](/docs/one-click-multi-drm-api-overview#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. ### 응답 예시 응답 예시는 다음과 같습니다. ``` { "success": true, "content": { "disabled": false, "policyId": 81, "policyName": "mySamplePolicy", "policyStatus": "CREATED", "policyCreatedTime": 1756968701258, "policyUpdateTime": 1756968701264, "persistent": false, "rentalDuration": 0, "playbackDuration": 0, "drmPolicyConfig": { "wideVine": { "useYn": true, "securityLevel": 1, "hdcp": "HDCP_NONE", "cgms": "CGMS_NONE", "disableAnalogOutputYn": true, "hdcpSrmRule": "HDCP_SRM_RULE_NONE", "deviceRevocation": true }, "playReady": { "useYn": true, "securityLevel": 150, "digitalVideoProtectionLevel": 100, "analogVideoProtectionLevel": 100, "digitalAudioProtectionLevel": 100, "hdcpUseYn": true }, "fairPlay": { "useYn": true, "hdcpEnforcement": -1, "allowAirPlay": true, "allowAvAdaptor": true } } } } ```