暗号化されたデータファイルをアンロードする
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 オプションを使用します。
このプロセスの動作は次のようになります。
-
ユーザーは、base64 で暗号化した 256 ビット AES キーを作成し、これをプライベート暗号化キー (ルート対称キー) として使用します。
-
作成したルート対称キーと ENCRYPTED オプションを指定しながら、UNLOAD コマンドを実行します。
-
UNLOAD により、1 回限り使用の対称キー (エンベロープ対称キーと呼ばれます) と初期化ベクター (IV) が生成され、これが 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 圧縮されている場合は、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;