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
버튼을 클릭합니다. -
RoleName을
MediaConvert-role
로 설정 후create role
버튼을 눌러 생성합니다.
MediaConvert 작업 생성 및 IAM 권한 설정
- AWS Console에서 MediaConvert 서비스를 선택합니다.
- Jobs 탭의
create job
버튼을 눌러 job 생성을 시작합니다. - Job settings 화면의 IAM role 설정 부분에 이전 단계에서 생성한
MediaConvert-role
을 선택합니다.
MediaConvert Input 설정
- Input 항목에 s3에 있는 패키징할 콘텐츠 경로를 입력합니다.
MediaConvert Output groups 설정
-
Output groups 에 Add 버튼을 눌러 ouptput을 추가합니다. (PlayReady와 Widevine의 경우는 DASH ISO, FairPlay 또는 NCG-HLS의 경우는 Apple HLS를 선택)
-
Custom group name에는 사용자가 구분하기 편한 이름을 입력합니다.
-
Destination 항목에 패키징이 완료된 파일이 들어갈 s3상의 경로를 입력합니다.
-
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
-
Outputs 를 설정후 Create 버튼을 클릭합니다.
- 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
SPEKE v2 멀티키 패키징 지원
MediaConvert 서비스는 오디오를 포함한 모든 출력 트랙을 하나의 키로 암호화(싱글키 패키징)하는 SPEKE v1
과 멀티키 패키징을 지원하는 SPEKE API v2를 모두 지원합니다.
멀티키 패키징은 DRM 암호화 적용 시 출력되는 비디오와 오디오 트랙을 서로 다른 키로 암호화하는 기능이며, PlayReady SL3000 또는 Widevine L1 등의 하드웨어 DRM을 적용하기 위해서는 반드시 필요합니다.
MediaConvert 작업의 Apple-HLS
, DASH-ISO
또는 CMAF
출력 그룹 설정에서 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
MediaPackage 연동
AWS MediaPackage 서비스는 라이브 또는 VOD 콘텐츠에 대한 실시간 패키징 및 암호화를 지원합니다.
MediaPackage 튜토리얼 비디오
AWS Elemental MediaPackage를 통한 라이브 콘텐츠 DRM 패키징 연동 방법을 설명하는 영상입니다.
MediaPackage IAM 권한 생성
-
MediaConvert IAM 권한 생성 과 동일하게 생성하며 Role Name만 SPEKEAccess 로 생성합니다.
-
Roles 탭에서 SPEKEAccess role을 선택 후 Trust relationships 탭의 Edit trust relationship 버튼을 클릭합니다.
-
Principal.Service의 값을 mediapackage.amazonaws.com 으로 변경 후 Update 버튼을 클릭합니다.
MediaPackage Channel 생성
-
AWS Console에서 MediaPackage 서비스를 선택합니다.
-
Channel을 생성합니다.
-
endpoints 에서 Add 버튼을 눌러 endpoint 설정을 합니다.
-
endpoint name, packager settings 부분 등 원하는 콘텐츠 스펙에 맞게 설정 합니다.
-
MediaConvert Output groups 설정의 4번 과 동일한 방식으로 Encryption과 Output을 설정합니다.
-
Role ARN에 생성한 SPEKEAccess Role을 입력합니다.
-
Save 버튼을 클릭합니다.
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
MediaPackage Live v2
MediaPackage Live v2
는 2023년 5월에 출시된 새 버전의 AWS MediaPackage 서비스입니다. 해당 버전은 기존의 v1 보다 개선된 기능과 UI를 제공하며, 특히 저지연 방식의 HLS(LL-HLS)를 지원하여 라이브 스포츠 이벤트 등 실시간성이 중요한 서비스에 적합합니다.
AWS MediaPackage Live v2와 PallyCon 멀티 DRM 서비스 연동 시에는 다음과 같은 사항을 유의하시기 바랍니다.
컨테이너 유형
기존의 MediaPackage Live v1
채널에서는 출력용 엔드포인트에 DASH-ISO
, Apple HLS
, Smooth Streaming
, CMAF
등의 패키징 유형
을 선택할 수 있었습니다.
MediaPackage Live v2 서비스 채널의 엔드포인트에는 패키징 유형 대신 다음과 같은 컨테이너 유형
을 선택하도록 되어 있습니다.
TS
: MPEG-TS 컨테이너 적용. AES-128(클리어키 암호화) 또는 Sample AES(FairPlay DRM) 지원CMAF
: fMP4 컨테이너 적용. CENC(PlayReady, Widevine) 또는 CBCS(PlayReady, Widevine, FairPlay) 지원
기존의 패키징 유형
옵션에 해당되는 스트리밍 프로토콜의 경우, v2에서는 DASH
, HLS
또는 LL-HLS
프로토콜 형태의 출력을 생성 가능합니다.
TS 컨테이너 선택 시 PlayReady와 Widevine DRM 적용이 불가능하므로, 하나의 엔드포인트로 다양한 클라이언트 환경에 DRM을 적용하려는 경우에는 CMAF 컨테이너와 CBCS 암호화를 선택해야 합니다.
또한 CMAF CBCS 미지원 클라이언트에 대한 지원이 필요한 경우에는 하나의 입력 소스에 대해 두 개의 엔드포인트(CMAF CENC + TS Sample AES, 또는 CMAF CENC + CMAF CBCS)를 생성하는 방식도 고려할 수 있습니다.
키 로테이션 설정
MediaPackage Live v1과 마찬가지로, v2 채널의 엔드포인트에 DRM 암호화 적용 시 추가 설정(Additional configuration) 항목에서 키 로테이션 주기를 설정할 수 있습니다. (0
이상 주기 설정 시 키 로테이션 적용)
이때 다음과 같은 사항을 유의하시기 바랍니다.
- Key server URL에 키 로테이션 관련 파라미터 추가 필요
Encryption
옵션의Key server URL
에 입력하는 PallyCon KMS SPEKE v2 URL에key-rotation=true
파라미터를 추가 (enc-token
과key-rotation
두 개의 파라미터 입력)- 예시:
https://kms.pallycon.com/v2/cpix/getKey?key-rotation=true&enc-token=YOUR-KMS-TOKEN
key-rotation
파라미터의 기본 값은 false
로, 해당 파라미터 생략 시 키 로테이션 미적용으로 처리됩니다. MediaPackage Live v2의 Key rotation interval
설정과 KMS URL 파라미터 값이 서로 맞지 않으면 해당 스트림 재생 시 오류가 발생할 수 있습니다.
- DRM 라이선스 요청 시 토큰 정책에 키 로테이션 활성화 적용
- 키 로테이션이 적용된 콘텐츠에 대한 라이선스 토큰 생성 시, 토큰 JSON 규격의
key_rotation
항목을true
로 설정해야 합니다.
- 키 로테이션이 적용된 콘텐츠에 대한 라이선스 토큰 생성 시, 토큰 JSON 규격의
- PallyCon 멀티 DRM 서비스 계정에 키 로테이션 이용 권환 활성화
- 키 로테이션이 적용된 콘텐츠에 대한 DRM 라이선스 발급을 위해서는 해당 사이트의 PallyCon 서비스 계정에 키 로테이션 이용 권한이 활성화 되어야 합니다. (PallyCon 콘솔 > 멀티 DRM > DRM 세팅 화면에서 확인 가능)
- 키 로테이션 활성화 요청과 추가 요금 발생에 대한 문의는 헬프데스크 또는 사업팀에 연락해 주시기 바랍니다.
DRM 키 로테이션 기능의 특성 상, 로테이션 주기마다 해당 스트림을 재생 중인 모든 클라이언트에 대해 새로운 라이선스 발급이 필요합니다. 따라서 많은 사용자가 동시 재생하는 스트림에 키 로테이션을 적용하면 과다한 트래픽으로 인해 라이선스 발급 지연 또는 오류가 발생할 수 있습니다.
라이브 키 로테이션 적용을 고려하는 고객사는 사전에 헬프데스크 또는 사업팀을 통해 상담을 받아주시기 바랍니다.