Descarga de archivos de datos cifrados - Amazon Redshift

Descarga de archivos de datos cifrados

El comando UNLOAD crea archivos automáticamente mediante el cifrado del lado del servidor de Amazon S3 con claves de cifrado administradas por AWS (SSE-S3). También puede especificar cifrado del lado del servidor con una clave de AWS Key Management Service (SSE-KMS) o cifrado del lado del cliente con una clave administrada por el cliente. El comando UNLOAD no admite el cifrado del lado del servidor de Amazon S3 con una clave administrada por el cliente. Para obtener más información, consulte Protección de los datos con el cifrado del lado del servidor.

Para descargar datos en Amazon S3 mediante el cifrado del lado del servidor con una clave de AWS KMS, utilice el parámetro KMS_KEY_ID para proporcionar el ID de la clave, tal como se muestra en el siguiente ejemplo.

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;

Si desea proporcionar su propia clave de cifrado, puede crear archivos de datos cifrados del lado del cliente en Amazon S3 mediante el comando UNLOAD con la opción ENCRYPTED. El comando UNLOAD utiliza el mismo proceso de cifrado de sobre que usa el cifrado del lado del cliente de Amazon S3. Puede utilizar el comando COPY con la opción ENCRYPTED para cargar los archivos cifrados.

El proceso ocurre de la siguiente manera:

  1. Cree una clave de cifrado AES de 256 bits con codificación base64 que utilizará como clave de cifrado privada o clave simétrica principal.

  2. Emita un comando UNLOAD que incluya la clave simétrica principal y la opción ENCRYPTED.

  3. El comando UNLOAD genera una clave simétrica de un solo uso (denominada clave simétrica de sobre) y un vector de inicialización (IV), que se utiliza para cifrar los datos.

  4. El comando UNLOAD cifra la clave simétrica de sobre a través de la clave simétrica principal.

  5. El comando UNLOAD luego almacena los archivos de datos cifrados en Amazon S3 y almacena la clave de sobre cifrada y el IV como metadatos de los objetos en cada archivo. La clave de sobre cifrada se almacena como metadatos de los objetos x-amz-meta-x-amz-key y el IV se almacena como metadatos de los objetos x-amz-meta-x-amz-iv.

Para obtener más información acerca del proceso de cifrado de sobre, consulte Cifrado de datos del lado del cliente con el AWS SDK para Java y Amazon S3.

Para descargar archivos de datos cifrados, agregue el valor de la clave principal a la cadena de credenciales e incluya la opción ENCRYPTED. Si utiliza la opción MANIFEST, también se cifra el archivo de manifiesto.

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 descargar archivos de datos cifrados que están comprimidos en GZIP, incluya la opción GZIP junto con el valor de la clave principal y la opción 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 cargar archivos de datos cifrados, agregue el parámetro MASTER_SYMMETRIC_KEY con el mismo valor de clave principal e incluya la opción ENCRYPTED.

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