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

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

UNLOAD は、AWS が暗号化キーを管理する Amazon S3 サーバー側暗号化 (SSE-S3) 機能を使用して、ファイルを自動的に作成します。UNLOAD は、カスタマー提供のキー (SSE-C) または SSE-KMS からの暗号化キーによる Amazon S3 のサーバー側暗号化をサポートしていません。詳細については、「サーバー側の暗号化を使用したデータの保護」を参照してください。

独自の暗号化キーを指定する場合は、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;

暗号化されたデータファイルをロードするには、同じマスターキー値を認証情報文字列に追加するとともに、ENCRYPTED オプションを指定します。

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