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

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

卸載加密的資料檔案

UNLOAD 會自動使用 Amazon S3 伺服器端加密,搭配 AWS 受管加密金鑰 (SSE-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://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

如需封套加密程序的詳細資訊,請參閱使用適用於 Java 的 AWS 開發套件及 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_SYMMETRIC_KEY 參數並包括 ENCRYPTED 選項。

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