암호화된 데이터 파일 언로드 - Amazon Redshift

암호화된 데이터 파일 언로드

UNLOAD는 AWS 관리형 암호화 키를 사용하는 Amazon S3 서버 측 암호화(SSE-S3)를 통해 파일을 자동 생성합니다. AWS Key Management Service 키(SSE-KMS)를 사용하는 서버 측 암호화를 지정하거나 고객 관리형 키를 사용하는 클라이언트 측 암호화를 지정할 수도 있습니다. UNLOAD는 고객 관리형 키를 사용하는 Amazon S3 서버 측 암호화를 지원하지 않습니다. 자세한 내용은 서버 측 암호화를 사용하여 데이터 보호를 참조하십시오.

AWS KMS 키를 사용하는 서버 측 암호화를 통해 Amazon S3로 언로드하려면 다음 예와 같이 KMS_KEY_ID 파라미터를 지정하여 키 ID를 입력하세요.

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;

사용자 고유의 암호화 키를 입력하고 싶다면 UNLOAD 명령에서 ENCRYPTED 옵션을 사용하여 클라이언트 측에서 암호화된 데이터 파일을 Amazon S3에 생성할 수 있습니다. 그러면 UNLOAD가 Amazon S3 클라이언트 측 암호화에서 사용하는 것과 동일한 봉투 암호화 프로세스를 사용합니다. 그런 다음 COPY 명령에서 ENCRYPTED 옵션을 사용하여 암호화된 파일을 로드할 수 있습니다.

프로세스는 다음과 같습니다.

  1. 프라이빗 암호화 키, 즉 루트 대칭 키로 사용할 base64 인코딩 256비트 AES 키를 생성합니다.

  2. 루트 대칭 키와 ENCRYPTED 옵션을 추가하여 UNLOAD 명령을 실행합니다.

  3. UNLOAD가 1회용 대칭키(봉투 대칭 키로도 불림)와 데이터 암호화에 사용되는 초기화 벡터(IV)를 생성합니다.

  4. UNLOAD가 루트 대칭 키를 사용하여 봉투 대칭 키를 암호화합니다.

  5. UNLOAD가 암호화된 데이터 파일을 Amazon S3에 저장하고, 각 파일과 함께 암호화된 봉투 키와 IV를 객체 메타데이터로 저장합니다. 암호화된 봉투 키는 객체 메타데이터 x-amz-meta-x-amz-key로 저장되고, IV는 객체 메타데이터 x-amz-meta-x-amz-iv로 저장됩니다.

봉투 암호화 프로세스에 대한 자세한 내용은 Client-side data encryption with the AWS SDK for Java and Amazon S3 문서를 참조하세요.

암호화된 데이터 파일을 언로드하려면 루트 키 값을 자격 증명 문자열에 입력한 후 ENCRYPTED 옵션을 추가합니다. MANIFEST 옵션을 사용하면 매니페스트 파일도 암호화됩니다.

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;

암호화되면서 GZIP으로 압축된 데이터 파일을 언로드하려면 루트 키 값 및 ENCRYPTED 옵션과 함께 GZIP 옵션을 추가합니다.

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;

암호화된 데이터 파일을 로드하려면 MASTER_SYMMETRIC_KEY 파라미터에 동일한 루트 키 값을 입력한 후 ENCRYPTED 옵션을 추가합니다.

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