Amazon Elastic Transcoder에서 AWS KMS 사용 방법 - AWS Key Management Service

Amazon Elastic Transcoder에서 AWS KMS 사용 방법

Amazon Elastic Transcoder를 이용해 Amazon S3 버킷에 저장된 미디어 파일을 소비자 재생 디바이스에 필요한 형식으로 변환할 수 있습니다. 입력 및 출력 파일을 모두 암호화하고 해독할 수 있습니다. 다음 섹션에서는 두 프로세스에 AWS KMS가 사용되는 방식을 논의합니다.

입력 파일 암호화

Elastic Transcoder를 사용하기 전에 Amazon S3 버킷을 생성하고 거기에 미디어 파일을 업로드해야 합니다. AES 클라이언트 측 암호화를 사용해 업로드하기 전 또는 Amazon S3 서버 측 암호화를 사용해 업로드하기 전에 파일을 암호화해야 합니다.

AES를 이용한 클라이언트 측 암호화를 선택하면 Amazon S3에 업로드하기 전에 파일을 암호화해야 하고, 암호화 키에 Elastic Transcoder 액세스를 제공해야 합니다. 미디어 파일을 암호화하는 데 사용한 AES 암호화 키를 보호하기 위해 대칭 AWS KMS AWS KMS key를 사용하여 이 작업을 수행합니다.

서버 측 암호화를 선택하면 Amazon S3가 사용자를 대신하여 모든 파일을 암호화하고 복호화하도록 허용합니다. 파일을 암호화하는 고유한 데이터 키를 보호하기 위해 세 가지 유형의 암호화 키 중 하나를 사용하도록 Amazon S3를 구성할 수 있습니다.

  • Amazon S3 키로서, Amazon S3가 소유하고 관리하는 암호화 키입니다. AWS 계정의 일부가 아닙니다.

  • Amazon S3용 AWS 관리형 키는 계정의 일부이지만 AWS에서 생성 및 관리하는 KMS 키입니다.

  • AWS KMS를 사용하여 생성하는 대칭 고객 관리형 키

중요

클라이언트 측 및 서버 측 암호화 모두에 대해 Elastic Transcoder는 대칭 KMS 키만 지원합니다. 비대칭 KMS 키를 사용하여 Elastic Transcoder 파일을 암호화할 수 없습니다. KMS 키가 대칭 또는 비대칭인지 여부를 확인하는 방법은 비대칭 KMS 키 식별 단원을 참조하십시오.

Amazon S3 콘솔 또는 적절한 Amazon S3 API를 사용하여 암호화를 활성화하고 키를 지정할 수 있습니다. Amazon S3가 암호화를 수행하는 방법에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서KMS 키로 서버 측 암호화(SSE-KSM)를 사용하여 데이터 보호를 참조하세요.

계정의 Amazon S3용 AWS 관리형 키 또는 고객 관리형 키를 사용하여 입력 파일을 보호하면 Amazon S3와 AWS KMS가 다음과 같이 상호 작용합니다.

  1. Amazon S3가 지정된 KMS 키 하에서 암호화된 데이터 키의 사본과 일반 텍스트 데이터 키를 요청합니다.

  2. AWS KMS가 데이터 키를 생성하고 지정된 KMS 키로 암호화한 후, 일반 텍스트 데이터 키와 암호화된 데이터 키를 모두 Amazon S3로 보냅니다.

  3. Amazon S3는 일반 텍스트 데이터 키를 이용해 미디어 파일을 암호화한 후 지정된 Amazon S3 버킷에 파일을 저장합니다.

  4. Amazon S3는 암호화한 미디어 파일과 함께 암호화한 데이터 키를 저장합니다.

입력 파일 해독

Amazon S3 서버 측 암호화를 이용해 입력 파일을 암호화하기로 선택하면 Elastic Transcoder가 파일을 복호화하지 않습니다. 대신, Elastic Transcoder는 Amazon S3를 사용하여작업 및 파이프라인을 생성할 때 지정하는 설정에 따라 복호화를 수행합니다.

다음 설정 조합을 사용할 수 있습니다.

암호화 모드 AWS KMS 키 의미
S3 기본값 Amazon S3는 미디어 파일을 암호화하고 복호화하는 데 사용되는 키를 생성하고 관리합니다. 이 프로세스는 사용자가 볼 수 없습니다.
S3-AWS-KMS 기본값 Amazon S3는 계정의 Amazon S3용 기본 AWS 관리형 키가 암호화한 데이터 키를 사용하여 미디어 파일을 암호화합니다.
S3-AWS-KMS 사용자 지정(ARN 이용) Amazon S3는 지정된 고객 관리형 키가 암호화한 데이터 키를 사용하여 미디어 파일을 암호화합니다.

S3-AWS-KMS가 지정되면 Amazon S3와 AWS KMS는 다음과 같은 방식으로 함께 작동하여 복호화를 수행합니다.

  1. Amazon S3는 AWS KMS로 암호화된 데이터 키를 보냅니다.

  2. AWS KMS는 적절한 KMS 키를 이용해 데이터 키를 복호화한 후 일반 텍스트 데이터 키를 다시 Amazon S3로 보냅니다.

  3. Amazon S3는 일반 텍스트 데이터 키를 이용해 암호화 텍스트를 해독합니다.

AES 키를 이용한 클라이언트 측 암호화를 선택하면 Elastic Transcoder에서 Amazon S3 버킷에서 암호화된 파일을 검색하고 복호화합니다. Elastic Transcoder는 파이프라인을 생성할 때 지정한 KMS 키를 사용하여 AES 키를 복호화한 다음 AES 키를 사용하여 미디어 파일을 복호화합니다.

출력 파일 암호화

Elastic Transcoder는 작업과 파이프라인을 생성할 때 암호화 설정을 지정하는 방식에 따라 출력 파일을 암호화합니다. 다음과 같은 옵션을 사용할 수 있습니다.

암호화 모드 AWS KMS 키 의미
S3 기본값 Amazon S3는 출력 파일을 암호화하는 데 사용되는 키를 생성하고 관리합니다.
S3-AWS-KMS 기본값 Amazon S3는 AWS KMS가 생성하고, 계정의 Amazon S3용 AWS 관리형 키가 암호화한 데이터 키를 사용합니다.
S3-AWS-KMS 사용자 지정(ARN 이용) Amazon S3는 ARN이 지정한 고객 관리형 키를 이용해 암호화된 데이터 키를 사용하여 미디어 파일을 암호화합니다.
AES- 기본값 Elastic Transcoder는 계정의 Amazon S3용 AWS 관리형 키를 이용해 입력하는 지정된 AES 키를 복호화하고, 이 키를 이용해 출력 파일을 암호화합니다.
AES- 사용자 지정(ARN 이용) Elastic Transcoder는 ARN이 지정한 고객 관리형 키를 이용해 입력하는 지정된 AES 키를 복호화하고 이 키를 이용해 출력 파일을 암호화합니다.

계정의 Amazon S3용 AWS 관리형 키 또는 고객 관리형 키가 출력 파일을 암호화하는 데 사용되도록 지정하면 Amazon S3와 AWS KMS가 다음과 같이 상호 작용합니다.

  1. Amazon S3가 지정된 KMS 키 하에서 암호화된 데이터 키의 사본과 일반 텍스트 데이터 키를 요청합니다.

  2. AWS KMS가 데이터 키를 생성하고 KMS 키 하에서 암호화한 후, 일반 텍스트 데이터 키와 암호화된 데이터 키를 모두 Amazon S3로 보냅니다.

  3. Amazon S3는 데이터 키를 사용하여 미디어를 암호화하고 지정된 Amazon S3 버킷에 저장합니다.

  4. Amazon S3는 암호화한 미디어 파일과 함께 암호화한 데이터 키를 저장합니다.

제공된 AES 키를 사용하여 출력 파일을 암호화하도록 지정하면 AES 키가 AWS KMS의 KMS 키를 사용하여 암호화되어야 합니다. Elastic Transcoder, AWS KMS 및 사용자는 다음과 같은 방식으로 상호 작용합니다.

  1. AWS KMS API에서 Encrypt 작업을 호출하여 AES 키를 암호화합니다. AWS KMS는 지정된 KMS 키를 사용하여 키를 암호화합니다. 파이프라인을 생성할 때 사용할 KMS 키를 지정합니다.

  2. Elastic Transcoder 작업을 생성할 때 암호화한 AES 키가 포함된 파일을 지정합니다.

  3. Elastic Transcoder는 AWS KMS API에서 Decrypt 작업을 호출하고 암호화된 키를 암호문으로 전달하여 키를 복호화합니다.

  4. Elastic Transcoder는 해독한 AES 키를 이용해 출력 미디어 파일을 암호화한 후 메모리에서 해독된 AES 키를 삭제합니다. 작업에 원래 정의된, 암호화한 사본만 디스크에 저장됩니다.

  5. 암호화한 출력 파일을 다운로드하고 원래 정의한 AES 키를 사용해 로컬에서 해독할 수 있습니다.

중요

AWS는 절대로 프라이빗 암호화 키를 저장하지 않습니다. 따라서 키를 안전하게 보호하고 관리하는 것이 중요합니다. 암호화 키를 잃어버릴 경우 데이터의 암호를 해독할 수 없습니다.

HLS 콘텐츠 보호

HTTP 라이브 스트리밍(HLS)은 가변 스트리밍 프로토콜입니다. Elastic Transcoder는 입력 파일을 미디어 세그먼트라는 작은 개별 파일로 분할하여 HLS를 지원합니다. 해당하는 개별 미디어 세그먼트 집합에는 서로 다른 비트 속도로 인코딩된 동일한 구성 요소가 포함되기 때문에 플레이어는 가용 대역폭에 가장 잘 맞는 스트림을 선택할 수 있습니다. 또한 Elastic Transcoder는 스트리밍할 수 있는 다양한 세그먼트에 대한 메타데이터가 포함된 재생 목록을 만듭니다.

HLS 콘텐츠 보호를 활성화하면 각 미디어 세그먼트는 128비트 AES 암호화 키를 이용해 암호화됩니다. 사용자가 콘텐츠를 시청하면 플레이어가 재생 프로세스 중에 키를 다운로드하고 미디어 세그먼트를 해독합니다.

KMS 키와 데이터 키, 두 가지 유형의 키가 사용됩니다. 데이터 키를 암호화하고 복호화하는 데 사용할 KMS 키를 생성해야 합니다. Elastic Transcoder는 데이터 키를 이용해 미디어 세그먼트를 암호화하고 복호화합니다. 데이터 키는 AES-128이어야 합니다. 동일한 콘텐츠의 모든 변형 버전과 세그먼트가 동일한 데이터 키를 이용해 암호화됩니다. 직접 데이터 키를 제공하거나 Elastic Transcoder가 자동으로 생성할 수 있습니다.

다음 지점에서 KMS 키를 사용해 데이터 키를 암호화할 수 있습니다.

  • 고유한 데이터 키를 입력하려면 Elastic Transcoder로 전달하기 전에 암호화해야 합니다.

  • Elastic Transcoder에서 데이터 키를 생성하도록 요청하면 Elastic Transcoder에서 자동으로 데이터 키를 암호화합니다.

다음 지점에서 KMS 키를 사용해 데이터 키를 해독할 수 있습니다.

  • Elastic Transcoder는 데이터 키를 이용해 출력 파일을 암호화하거나 입력 파일을 복호화해야 할 때 입력된 데이터 키를 복호화합니다.

  • Elastic Transcoder가 생성한 데이터 키를 복호화하고 이를 이용해 출력 파일을 복호화합니다.

자세한 내용은 Amazon Elastic Transcoder 개발자 안내서HLS 콘텐츠 보호를 참조하십시오.

Elastic Transcoder 암호화 컨텍스트

암호화 컨텍스트는 보안되지 않은 임의의 데이터를 포함하는 키-값 페어 세트입니다. 데이터 암호화 요청에 암호화 컨텍스트를 포함하는 경우, AWS KMS는 암호화된 데이터에 암호화 컨텍스트를 암호 방식으로 바인딩합니다. 따라서 동일한 암호화 컨텍스트로 전달해야 이 데이터를 해독할 수 있습니다.

Elastic Transcoder는 모든 AWS KMS API 요청에서 동일한 암호화 컨텍스트를 사용하여 데이터 키를 생성하고 암호화 및 복호화합니다.

"service" : "elastictranscoder.amazonaws.com"

암호화 컨텍스트는 CloudTrail 로그에 기록되어 해당 AWS KMS KMS 키가 사용된 방법을 이해하는 데 도움을 줍니다. CloudTrail 로그 파일의 requestParameters 필드에서 암호화 컨텍스트는 다음과 비슷하게 표시됩니다.

"encryptionContext": { "service" : "elastictranscoder.amazonaws.com" }

지원되는 암호화 옵션 중 하나를 사용하도록 Elastic Transcoder 작업을 구성하는 방법에 대한 자세한 내용은 Amazon Elastic Transcoder 개발자 안내서데이터 암호화 옵션을 참조하세요.