AWS Elemental 연동 가이드
개요
PallyCon KMS는 AWS Elemental MediaConvert와 MediaPackage 서비스에 멀티 DRM 패키징에 필요한 키를 발급해주는 SPEKE (Secure Packager and Encoder Key Exchange) API를 지원합니다.
PallyCon KMS URL을 DRM encryption 설정 항목의 URL에 세팅하면 SPEKE API를 통해 간단하게 연동이 완료됩니다. 이 가이드는 AWS Elemental MediaConvert 또는 MediaPackage 서비스와 PallyCon 멀티DRM을 연동하는 방법을 설명합니다.
MediaConvert 연동
MediaConvert 튜토리얼 비디오
AWS Elemental MediaConvert를 통한 VOD 콘텐츠 DRM 패키징 연동 방법을 설명하는 영상입니다.
MediaConvert IAM 권한 생성
IAM 설정 AWS Guide 문서를 참조해 아래와 같은 작업을 진행합니다.
-
AWS Console에서 IAM 서비스를 선택합니다.
-
Roles
탭에 들어가create role
을 선택합니다. -
MediaConvert
를 선택 후Next: permission
버튼을 클릭합니다. -
S3접근 권한과 APIGateway 접근 권한이 가능한 부분을 확인하고
Next: Review
버튼을 클릭합니다.IAM role -
RoleName을
MediaConvert-role
로 설정 후create role
버튼을 눌러 생성합니다.Create role
MediaConvert 작업 생성 및 IAM 권한 설정
- AWS Console에서 MediaConvert 서비스를 선택합니다.
- Jobs 탭의
create job
버튼을 눌러 job 생성을 시작합니다. - Job settings 화면의 IAM role 설정 부분에 이전 단계에서 생성한
MediaConvert-role
을 선택합니다.MediaConvert role
MediaConvert Input 설정
- Input 항목에 s3에 있는 패키징할 컨텐츠 경로를 입력합니다.
MediaConvert input
MediaConvert Output groups 설정
-
Output groups 에 Add 버튼을 눌러 ouptput을 추가합니다. (PlayReady와 Widevine의 경우는 DASH ISO, FairPlay 또는 NCG-HLS의 경우는 Apple HLS를 선택)
MediaConvert output -
Custom group name에는 사용자가 구분하기 편한 이름을 입력합니다.
-
Destination 항목에 패키징이 완료된 파일이 들어갈 s3상의 경로를 입력합니다.
MediaConvert output -
DRM encryption 옵션을 선택 후 Resource ID, System ID, URL을 입력합니다.
- Resource ID: DRM 라이선스 토큰 가이드에 나온 연동 규격에서 CID(content id)에 해당 하는 값입니다.
- System ID: Dash System ID에 규정된 DRM 별 system id 값 입니다. DASH 출력에는 아래 화면과 같이 Widevine과 PlayReady ID를 입력하고, HLS 출력은 아래 별도 항목을 참고해 설정합니다.
- PlayReady:
9a04f079-9840-4286-ab92-e65be0885f95
- Widevine:
edef8ba9-79d6-4ace-a3c8-27dcd51d21ed
- PlayReady:
- 키 공급자 URL: 다음과 같은 KMS 연동 URL을 입력합니다. 마지막 부분의
KMS token
은 PallyCon 서비스 가입 시 생성되는 API 인증 토큰으로, PallyCon 콘솔 사이트에서 확인할 수 있습니다.- KMS URL 형식:
https://kms.pallycon.com/v1/cpix/getKey?enc-token=YOUR-KMS-TOKEN
- KMS URL 형식:
- 인증서 ARN: 빈칸으로 둡니다.
- 재생 디바이스 호환성: CENC v1
DRM encryption
-
Outputs 를 설정후 Create 버튼을 클릭합니다.
- DASH output의 경우, 비디오와 오디오가 하나의 output으로 출력되면 일부 Widevine 환경에서 재생이 안 되므로 비디오와 오디오 트랙을 나눠서 생성해야 합니다. (‘Add output’ 버튼 클릭)
MediaConvert output 1 MediaConvert output 2
- DASH output의 경우, 비디오와 오디오가 하나의 output으로 출력되면 일부 Widevine 환경에서 재생이 안 되므로 비디오와 오디오 트랙을 나눠서 생성해야 합니다. (‘Add output’ 버튼 클릭)
-
s3 상에 생성된 파일을 재생할 수 있도록 make public 또는 사용권한 설정을 해줍니다.
HLS 출력에 FairPlay 설정
애플 기기와 다른 플랫폼을 모두 지원하려면 하나의 입력에 대해서 DASH ISO
와 Apple HLS
두 개의 출력 그룹을 생성해야 합니다. Apple HLS
출력 그룹에 FairPlay DRM을 적용하려면 암호화 옵션을 아래와 같이 설정합니다.
- 암호화 방법:
샘플 AES
- 키 공급자 유형:
SPEKE
- Resource ID: DASH 출력 그룹과 동일한 콘텐츠 ID 입력
- System ID: FairPlay DRM system ID (
94ce86fb-07ff-4f43-adb8-93d2fa968ca2
) - 키 공급자 URL: DASH 출력 그룹과 동일한 PallyCon KMS URL
- 그 외 항목: 기본값 그대로 사용
HLS 출력에 NCG-HLS 설정
Apple HLS
출력 그룹을 이용해 FairPlay DRM 대신 PallyCon 독자 DRM인 NCG가 적용된 HLS 콘텐츠를 패키징할 수도 있습니다. NCG-HLS
패키징을 위해서는 Apple HLS
출력 그룹을 생성하고 아래와 같이 DRM 암호화 옵션을 설정합니다.
- 암호화 방법:
AES128
- 키 공급자 유형:
SPEKE
- Resource ID: DASH 출력 그룹과 동일한 콘텐츠 ID 입력
- System ID: NCG HLS system ID (
81376844-f976-481e-a84e-cc25d39b0b33
) - 키 공급자 URL: DASH 출력 그룹과 동일한 PallyCon KMS URL
- 그 외 항목: 기본값 그대로 사용
NCG-HLS
패키징은 클리어 키 방식의 보안 취약성을 보완하기 위해 AES128 키 파일을 NCG DRM으로 추가 암호화하는 방식입니다. NCG-HLS
콘텐츠를 재생하기 위해서는 Android, iOS, Windows 등 OS 별로 제공되는 NCG Client SDK가 필요하며, 웹 브라우저에서는 NCG HLS 콘텐츠를 재생할 수 없습니다.
CMAF 패키징 관련 유의 사항
DASH-ISO
와 Apple HLS
외에도 SPEKE 연동을 통해 CMAF
(Common Media Application Format) 방식의 출력을 생성할 수도 있습니다.
애플 기기를 포함해 최대한 많은 클라이언트 환경에서 CMAF 콘텐츠가 지원되게 하려면 DRM 암호화
설정의 암호화 방법을 AES-CBC 하위 샘플
로 설정해야 합니다. 또한 키 공급자 URL
항목에 입력하는 KMS URL은 기본 SPEKE v1 URL 대신 CBCS 암호화를 지원하는 아래 URL을 사용해야 합니다.
https://kms.pallycon.com/v1/cpix/cbcs/getKey?enc-token=YOUR-KMS-TOKEN
멀티키 패키징 지원 관련
MediaConvert 서비스는 SPEKE v1
기반의 DRM 암호화 기능을 지원합니다. 멀티키 패키징을 지원하는 SPEKE API v2와 달리 v1은 오디오를 포함한 모든 출력 트랙을 하나의 키로 암호화(싱글키 패키징) 합니다. 따라서 MediaConvert로 패키징한 DASH 또는 CMAF 콘텐츠는 오디오와 비디오 트랙을 별도의 키로 암호화해야 하는 하드웨어 DRM을 적용할 수 없습니다.
MediaPackage 연동
HLS upload가 가능한 AWS MediaLive 같은 서비스와 연동하여 실시간으로 컨텐츠를 암호화 할 수 있습니다.
주의: MediaPackage에서 DRM 패키징 연동을 수행하려면 MediaLive의 Output Group에서는 Encryption 설정을 해제해야 합니다.
MediaPackage 튜토리얼 비디오
AWS Elemental MediaPackage를 통한 라이브 콘텐츠 DRM 패키징 연동 방법을 설명하는 영상입니다.
MediaPackage IAM 권한 생성
-
MediaConvert IAM 권한 생성 과 동일하게 생성하며 Role Name만 SPEKEAccess 로 생성합니다.
-
Roles 탭에서 SPEKEAccess role을 선택 후 Trust relationships 탭의 Edit trust relationship 버튼을 클릭합니다.
SPEKEAccess role -
Principal.Service의 값을 mediapackage.amazonaws.com 으로 변경 후 Update 버튼을 클릭합니다.
Update role
MediaPackage Channel 생성
-
AWS Console에서 MediaPackage 서비스를 선택합니다.
-
Channel을 생성합니다.
Create channel -
endpoints 에서 Add 버튼을 눌러 endpoint 설정을 합니다.
-
endpoint name, packager settings 부분 등 원하는 컨텐츠 스펙에 맞게 설정 합니다.
-
MediaConvert Output groups 설정의 4번 과 동일한 방식으로 Encryption과 Output을 설정합니다.
-
Role ARN에 생성한 SPEKEAccess Role을 입력합니다.
-
Save 버튼을 클릭합니다.
MediaPackage options
MediaConvert 연동
가이드의 내용을 참고하시기 바랍니다.
SPEKE v2를 통한 멀티키 패키징
MediaPackage 서비스는 라이브 DASH 또는 CMAF 출력에 대해서 SPEKE API v2 기반의 멀티키 패키징을 지원합니다. 멀티키 패키징은 DRM 암호화 적용 시 출력되는 비디오와 오디오 트랙을 서로 다른 키로 암호화하는 기능이며, PlayReady SL3000 또는 Widevine L1 등의 하드웨어 DRM을 적용하기 위해서는 반드시 필요합니다.
MediaPackage 라이브 채널의 DASH 또는 CMAF Endpoint 설정에서 SPEKE Version 2.0
을 선택하면 다음과 같은 옵션을 통해 멀티키 패키징을 적용할 수 있습니다.

SPEKE v2 선택 시 KMS 연동 URL은 다음과 같은 v2 URL을 사용해야 합니다. KMS Token
값은 PallyCon 콘솔 사이트에서 확인할 수 있습니다. (멀티DRM > DRM 세팅 > 멀티 DRM 설정)
SPEKE v2 KMS URL 형식: https://kms.pallycon.com/v2/cpix/getKey?enc-token=YOUR-KMS-TOKEN