卸載加密的資料檔案 - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

卸載加密的資料檔案

UNLOAD 會自動使用 Amazon S3 伺服器端加密和AWS受管理的加密金鑰 (SSE-S3)。您也可以使用AWS Key Management Service金鑰 (SSE-KMS) 或使用客户受管金鑰的客户端加密。UNLOAD 不支援 Amazon S3 伺服器端加密使用客户受管金鑰。如需詳細資訊,請參閱使用伺服器端加密保護資料

若要使用伺服器端加密搭配AWS KMS金鑰,請使用 KMS_KEY_ID 參數來提供金鑰 ID,如下範例所示。

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;

如果您想要提供自己的加密金鑰,您可以透過使用 UNLOAD 命令搭配 ENCRYPTED 選項,在 Amazon S3 中建立用户端加密的資料檔案。UNLOAD 使用的信封加密程序與 Amazon S3 客户端加密使用的信封加密程序相同。您可以使用 COPY 命令搭配 ENCRYPTED 選項,來載入加密的檔案。

運作程序如下:

  1. 您可以建立將用作私有加密金鑰的 base64 編碼的 256 位 AES 金鑰,或根對稱金鑰

  2. 您發出的 UNLOAD 命令包含根對稱金鑰和 ENCRYPTED 選項。

  3. UNLOAD 產生一次性的對稱金鑰 (名為信封對稱金鑰) 與初始化向量 (IV),其會使用此向量來加密資料。

  4. UNLOAD 會使用根對稱金鑰來加密信封對稱金鑰。

  5. UNLOAD 接著會將加密的資料檔案儲存放在 Amazon S3 中,並將每個檔案的加密信封金鑰和 IV 存放為物件元數據。加密信封金鑰會存放做為物件中繼資料 x-amz-meta-x-amz-key 且 IV 會存放做為物件中繼資料 x-amz-meta-x-amz-iv

如需信封加密程序的詳細資訊,請參客户端數據加密使用AWS適 SDK for Java 和 Amazon S3 的開發工具包文章。

若要卸載加密的資料檔案,請將根金鑰值新增至登入資料字串並包括 ENCRYPTED 選項。若使用 MANIFEST 選項,則也會加密資訊清單檔案。

unload ('select venuename, venuecity from venue') to 's3://mybucket/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://mybucket/encrypted/venue_' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' master_symmetric_key '<root_key>' encrypted gzip;

若要載入用户端加密的資料檔案,請使用相同的根金鑰值來新增 MASTER_SYMETRIC_KEY 參數並包括 ENCRYPTED 選項。

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