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

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

UNLOAD は、AWS が管理する暗号化キー (SSE-S3) を使用した Amazon 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;

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

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

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

  2. 作成したルート対称キーと ENCRYPTED オプションを指定しながら、UNLOAD コマンドを実行します。

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

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 圧縮されている場合は、GZIP オプションをルートキーの値および ENCRYPTED オプションとともに指定します。

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;