Descarregamento de arquivos de dados criptografados - Amazon Redshift

Descarregamento de arquivos de dados criptografados

UNLOAD cria arquivos automaticamente usando criptografia do lado do servidor Amazon S3 com chaves de criptografia gerenciadas pela AWS (SSE-S3). Você também pode especificar a criptografia no lado do servidor com uma chave do AWS Key Management Service (SSE-KMS) ou a criptografia do lado do cliente com uma chave gerenciada pelo cliente. UNLOAD não oferece suporte à criptografia do lado do servidor do Amazon S3 usando uma chave gerenciada pelo cliente. Para obter mais informações, consulte Proteger dados usando a criptografia no lado do servidor.

Para descarregar no Amazon S3 usando criptografia do lado do servidor com uma chave AWS KMS, use o parâmetro KMS_KEY_ID para fornecer o ID da chave, conforme mostrado no exemplo a seguir.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' KMS_KEY_ID '1234abcd-12ab-34cd-56ef-1234567890ab' encrypted;

Se desejar fornecer sua própria chave de criptografia, você pode criar arquivos de dados criptografados do lado do cliente no Amazon S3 usando o comando UNLOAD com a opção ENCRYPTED. UNLOAD usa o mesmo processo de criptografia de envelope que a criptografia do lado do cliente do Amazon S3 usa. Você pode usar o comando COPY com a opção ENCRYPTED para carregar os arquivos criptografados.

O processo funciona deste modo:

  1. Crie uma chave AES de 256 bits codificada por base64 que será usada como sua chave de criptografia privada ou chave simétrica raiz.

  2. Você emite um comando UNLOAD que inclua sua a chave simétrica raiz e a opção ENCRYPTED.

  3. UNLOAD gera uma chave simétrica de uso único (chamada chave simétrica de envelope) e um vetor de inicialização (IV), que a usa para criptografar seus dados.

  4. UNLOAD criptografa a chave simétrica de envelope usando sua chave simétrica raiz.

  5. O UNLOAD então armazena os arquivos de dados criptografados no Amazon S3 e armazena a chave do envelope criptografado e IV como metadados de objeto com cada arquivo. A chave de envelope criptografada é armazenada como metadados de objeto x-amz-meta-x-amz-key e o IV é armazenado como metadados de objeto x-amz-meta-x-amz-iv.

Para obter mais informações sobre o processo de criptografia de envelope, consulte o artigo Criptografia de dados do lado do cliente com o AWS SDK for Java e o Amazon S3.

Para descarregar arquivos de dados criptografados, adicione a chave-valor raiz à string de credenciais e inclua a opção ENCRYPTED. Se você usar a opção MANIFEST, o arquivo manifesto também será criptografado.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' manifest encrypted;

Para descarregar arquivos de dados criptografados que estão compactador por GZIP, inclua a opção GZIP junto com a chave-valor raiz e a opção ENCRYPTED.

unload ('select venuename, venuecity from venue') to 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' encrypted gzip;

Para carregar os arquivos de dados criptografados, adicione o parâmetro de MASTER_SYMMETRIC_KEY com a mesma chave-valor raiz e inclua a opção ENCRYPTED.

copy venue from 's3://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' encrypted;