Como o Amazon Elastic Transcoder usa o AWS KMS - AWS Key Management Service

Como o Amazon Elastic Transcoder usa o AWS KMS

Você pode usar o Amazon Elastic Transcoder para converter arquivos de mídia armazenados em um bucket do Amazon S3 em formatos exigidos pelos dispositivos de reprodução do consumidor. Ambos os arquivos de entrada e saída podem ser criptografados e descriptografados. As seções a seguir discutem como o AWS KMS é usado nos dois processos.

Criptografia do arquivo de entrada

Antes de usar o Elastic Transcoder, crie um bucket do Amazon S3 e carregue seu arquivo de mídia nele. Você pode criptografar o arquivo antes de enviá-lo usando a criptografia do cliente do AES ou após o upload usando a criptografia do servidor do Amazon S3.

Caso escolha a criptografia do cliente usando o AES, você será responsável por criptografar o arquivo antes de o carregar no Amazon S3 e deverá fornecer acesso para o Elastic Transcoder à chave de criptografia. Faça isso usando uma AWS KMS key simétrica do AWS KMS para proteger a chave de criptografia do AES usada para criptografar o arquivo de mídia.

Se escolher a criptografia no lado do servidor, você permitirá que o Amazon S3 criptografe e descriptografe todos os arquivos em seu nome. Você pode configurar o Amazon S3 para usar uma de três chaves de criptografia diferentes para proteger a chave de dados exclusiva usada para criptografar seu arquivo:

  • Uma chave do Amazon S3, uma chave de criptografia que o Amazon S3 possui e gerencia. Ela não faz parte da sua Conta da AWS.

  • A Chave gerenciada pela AWS para o Amazon S3, uma chave do KMS que faz parte da sua conta, mas é criada e gerenciada pela AWS.

  • Qualquer chave gerenciada pelo cliente simétrica que você cria usando o AWS KMS

Importante

Para criptografia do lado do cliente e no lado do servidor, o Elastic Transcoder oferece suporte somente a chaves do KMS simétricas. Não é possível usar uma chave do KMS assimétrica para criptografar os arquivos do Elastic Transcoder. Para obter ajuda para determinar se uma chave do KMS é simétrica ou assimétrica, consulte Identificar chaves do KMS assimétricas.

É possível habilitar a criptografia e especificar uma chave usando o console do Amazon S3 ou as APIs do Amazon S3 apropriadas. Para obter mais informações sobre como o Amazon S3 realiza a criptografia, consulte Proteção de dados usando criptografia no lado do servidor com chaves do KMS (SSE-KMS) no Guia do usuário do Amazon Simple Storage Service.

Ao proteger o arquivo de entrada usando a Chave gerenciada pela AWS para o Amazon S3 na sua conta ou uma chave gerenciada pelo cliente, o Amazon S3 e o AWS KMS interagem da seguinte maneira:

  1. O Amazon S3 solicita uma chave de dados de texto simples e uma cópia da chave de dados criptografada na chave do KMS especificada.

  2. O AWS KMS cria uma chave de dados, criptografa-a com a chave do KMS especificada e envia a chave de dados em texto não criptografada e a chave de dados criptografada ao Amazon S3.

  3. O Amazon S3 usa a chave de dados de texto não criptografado para criptografar o arquivo de mídia e armazena o arquivo no bucket do Amazon S3 especificado.

  4. O Amazon S3 armazena a chave de dados criptografada junto com o arquivo de mídia criptografado.

Descriptografia do arquivo de entrada

Se você optar pela criptografia do lado do servidor do Amazon S3 para criptografar o arquivo de entrada, o Elastic Transcoder não descriptografará o arquivo. Em vez disso, o Elastic Transcoder depende do Amazon S3 para executar a descriptografia de acordo com as configurações que você especifica ao criar um trabalho e um pipeline.

Está disponível a seguinte combinação de configurações:

Modo de criptografia AWS KMSChave do Significado
S3 Padrão O Amazon S3 cria e gerencia as chaves usadas para criptografar e descriptografar o arquivo de mídia. O processo não é visível para o usuário.
S3-AWS-KMS Padrão Por padrão, o Amazon S3 usa uma chave de dados criptografada pela Chave gerenciada pela AWS para o Amazon S3 na sua conta para criptografar o arquivo de mídia.
S3-AWS-KMS Personalizar (com o ARN) O Amazon S3 usa uma chave de dados criptografada pela chave gerenciada pelo cliente especificada para criptografar o arquivo de mídia.

Quando o S3-AWS-KMS está especificado, o Amazon S3 e o AWS KMS trabalham em conjunto da seguinte maneira para executar a descriptografia.

  1. O Amazon S3 envia a chave de dados criptografada ao AWS KMS.

  2. O AWS KMS descriptografa a chave de dados usando a chave do KMS apropriada e envia a chave de dados em texto simples de volta ao Amazon S3.

  3. O Amazon S3 usa a chave de dados em texto simples para descriptografar o texto cifrado.

Quando você escolhe a criptografia do lado do cliente usando uma chave AES, o Elastic Transcoder recupera o arquivo criptografado do bucket do Amazon S3 e o descriptografa. O Elastic Transcoder usa a chave do KMS que você especificou quando criou o pipeline para descriptografar a chave AES e usa a chave AES para descriptografar o arquivo de mídia.

Criptografia do arquivo de saída

O Elastic Transcoder criptografa o arquivo de saída, dependendo de como você especifica as configurações de criptografia ao criar um trabalho e um pipeline. As seguintes opções estão disponíveis:

Modo de criptografia AWS KMSChave do Significado
S3 Padrão O Amazon S3 cria e gerencia as chaves usadas para criptografar o arquivo de saída.
S3-AWS-KMS Padrão O Amazon S3 usa uma chave de dados criada pelo AWS KMS e criptografada pela Chave gerenciada pela AWS para o Amazon S3 na sua conta.
S3-AWS-KMS Personalizar (com o ARN) O Amazon S3 usa uma chave de dados criptografada usando a chave gerenciada pelo cliente especificada pelo ARN para criptografar o arquivo de mídia.
AES- Padrão O Elastic Transcoder usa a Chave gerenciada pela AWS para o Amazon S3 na sua conta para descriptografar a chave do AES fornecida por você e usa essa chave para criptografar o arquivo de saída.
AES- Personalizar (com o ARN) O Elastic Transcoder usa a chave gerenciada pelo cliente especificada pelo ARN para descriptografar a chave do AES fornecida por você e usa essa chave para criptografar o arquivo de saída.

Quando você especifica que a Chave gerenciada pela AWS para o Amazon S3 na sua conta ou uma chave gerenciada pelo cliente é usada para criptografar o arquivo de saída, o Amazon S3 e o AWS KMS interagem da seguinte maneira:

  1. O Amazon S3 solicita uma chave de dados de texto simples e uma cópia da chave de dados criptografada na chave do KMS especificada.

  2. O AWS KMS cria uma chave de dados, criptografa-a com a chave do KMS e envia a chave de dados em texto simples e a chave de dados criptografada ao Amazon S3.

  3. O Amazon S3 criptografa a mídia usando a chave de dados e a armazena no bucket do Amazon S3 especificado.

  4. O Amazon S3 armazena a chave de dados criptografada junto ao arquivo de mídia criptografado.

Quando você especifica que sua chave AES fornecida deve ser usada para criptografar o arquivo de saída, a chave AES deve ser criptografada usando uma chave do KMS no AWS KMS. O Elastic Transcoder, o AWS KMS e você interagem da seguinte maneira:

  1. Você criptografa a chave AES chamando a operação Encrypt na API do AWS KMS. O AWS KMS criptografa a chave usando a chave do KMS especificada. Você especifica qual chave do KMS será usada ao criar o pipeline.

  2. Você especifica o arquivo que contém a chave do AES criptografada ao criar o trabalho do Elastic Transcoder.

  3. O Elastic Transcoder descriptografa a chave chamando a operação Decrypt na API do AWS KMS passando a chave criptografada como texto cifrado.

  4. O Elastic Transcoder usa a chave AES descriptografada para criptografar o arquivo de mídia de saída e exclui da memória a chave AES descriptografada. Somente a cópia criptografada originalmente definida no trabalho é salva no disco.

  5. Você pode fazer download do arquivo de saída criptografado e descriptografá-lo localmente usando a chave AES original que você definiu.

Importante

AWSA nunca armazena suas chaves de criptografia privadas. Portanto, é importante que você gerencie as chaves com segurança. Se perdê-las, você não poderá descriptografar os seus dados.

Proteção de conteúdo HLS

HTTP Live Streaming (HLS) é um protocolo de transmiss~;ao adaptável. O Elastic Transcoder oferece suporte ao HLS, dividindo seu arquivo de entrada em pequenos arquivos individuais, chamados segmentos de mídia. Um conjunto de segmentos de mídia individuais correspondentes contêm o mesmo material codificado com diferentes taxas de bits, permitindo que o jogador selecione a transmissão que melhor se adapta à largura de banda disponível. O Elastic Transcoder também cria listas de reprodução que contêm metadados dos vários segmentos disponíveis para serem transmitidos.

Quando você habilita a proteção de conteúdo HLS, cada segmento de mídia é criptografado usando uma chave de criptografia do AES de 128 bits. Quando o conteúdo é visualizado, durante o processo de reprodução, o player faz download da chave e descriptografa os segmentos de mídia.

São usados dois tipos de chave: uma chave do KMS e uma chave de dados. Crie uma chave do KMS para criptografar e descriptografar a chave de dados. O Elastic Transcoder usa a chave de dados para criptografar e descriptografar segmentos de mídia. A chave de dados deve AES-128. Todas as variações e segmentos do mesmo conteúdo são criptografados usando a mesma chave de dados. Forneça uma chave de dados ou deixe que o Elastic Transcoder crie-a para você.

A chave do KMS pode ser usada para criptografar a chave de dados nos seguintes pontos:

  • Se você fornecer sua própria chave de dados, deverá criptografá-la antes de passá-la para o Elastic Transcoder.

  • Se você solicitar que o Elastic Transcoder gere a chave de dados, ele a criptografará para você.

A chave do KMS pode ser usada para descriptografar a chave de dados nos seguintes pontos:

  • O Elastic Transcoder descriptografa a chave de dados fornecida quando precisa usá-la para criptografar o arquivo de saída ou descriptografar o arquivo de entrada.

  • Você descriptografa uma chave de dados gerada pelo Elastic Transcoder e usa-a para descriptografar arquivos de saída.

Para obter mais informações, consulteProteção de conteúdo HLS, no Guia do desenvolvedor do Amazon Elastic Transcoder.

Contexto de criptografia do Elastic Transcoder

Um contexto de criptografia é um conjunto de pares de chave-valor que contêm dados arbitrários não secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados, o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Para descriptografar os dados, você deve passar o mesmo contexto de criptografia.

O Elastic Transcoder usa o mesmo contexto de criptografia em todas as solicitações de API do AWS KMS para gerar chaves de dados, criptografar e descriptografar.

"service" : "elastictranscoder.amazonaws.com"

O contexto de criptografia é gravado nos logs do CloudTrail para ajudar você a compreender como uma chave do KMS do AWS KMS foi usada. No campo requestParameters de um arquivo de log do CloudTrail, o contexto de criptografia é parecido com este:

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

Para obter mais informações sobre como configurar trabalhos do Elastic Transcoder para usar uma das opções de criptografia com suporte, consulte Opções de criptografia dos dados, no Guia do desenvolvedor do Amazon Elastic Transcoder.