암호화된 데이터 파일 언로드
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://amzn-s3-demo-bucket/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 옵션을 사용하여 암호화된 파일을 로드할 수 있습니다.
프로세스는 다음과 같습니다.
-
프라이빗 암호화 키, 즉 루트 대칭 키로 사용할 base64 인코딩 256비트 AES 키를 생성합니다.
-
루트 대칭 키와 ENCRYPTED 옵션을 추가하여 UNLOAD 명령을 실행합니다.
-
UNLOAD가 1회용 대칭키(봉투 대칭 키로도 불림)와 데이터 암호화에 사용되는 초기화 벡터(IV)를 생성합니다.
-
UNLOAD가 루트 대칭 키를 사용하여 봉투 대칭 키를 암호화합니다.
-
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://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/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://amzn-s3-demo-bucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '
<root_key>
' encrypted;