メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

暗号化されたデータファイルをアンロードする

UNLOAD は、AWS が暗号化キーを管理する Amazon S3 サーバー側暗号化 (SSE-S3) 機能を使用して、ファイルを自動的に作成します。AWS Key Management Service キーを使用したサーバー側の暗号化 (SSE-KMS)、またはカスタマー管理型のキーを使用したクライアント側の暗号化 (CSE-CMK) を指定することもできます。UNLOAD では、お客様が用意したキー (SSE-C) による Amazon S3 サーバー側の暗号化はサポートされません。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。

AWS KMS キーを使用したサーバー側の暗号化によって Amazon S3 にアンロードするには、次の例に示すように KMS_KEY_ID パラメータを使用してキー ID を指定します。

Copy
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;
独自の暗号化キーを指定する場合は、ENCRYPTED オプションを指定した UNLOAD コマンドを使用することにより、Amazon S3 でクライアント側の暗号化データファイルを作成できます。UNLOAD で使用されるエンベロープ暗号化プロセスは、Amazon S3 のクライアント側暗号化で使用されているものと同じです。この暗号化されたファイルをロードするには、COPY コマンドとともに ENCRYPTED オプションを使用します。

このプロセスの動作は次のようになります。

  1. 開発者は base64 で暗号化した 256 ビット AES キーを作成します。これを、プライベート暗号化キー (マスター対称キー) として使用します。

  2. 開発者は UNLOAD コマンドを実行します。このときに、マスター対称キーと ENCRYPTED オプションを指定します。

  3. UNLOAD により、1 回限り使用の対称キー (エンベロープ対称キーと呼ばれます) と初期化ベクター (IV) が生成され、これが UNLOAD でのデータの暗号化に使用されます。

  4. 開発者が作成したマスター対称キーを使用してエンベロープ対称キーが暗号化されます。

  5. 暗号化されたデータファイルが 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 オプションを使用すると、マニフェストファイルも暗号化されます。

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

アンロードしようとする暗号化済みデータファイルが GZIP 圧縮されている場合は、GZIP オプションをマスターキー値および ENCRYPTED オプションとともに指定します。

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

暗号化されたデータファイルをロードするには、同じマスターキー値を使用して MASTER_SYMMETRIC_KEY パラメータに追加し、さらに ENCRYPTED オプションを指定します。

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