

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

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

# 卸載加密的資料檔案
<a name="t_unloading_encrypted_files"></a>

UNLOAD 會自動使用 Amazon S3 伺服器端加密，搭配 AWS 受管加密金鑰 (SSE-S3) 來建立檔案。您也可以使用 AWS Key Management Service 金鑰 (SSE-KMS) 指定伺服器端加密，或使用客戶受管金鑰指定用戶端加密。UNLOAD 不支援使用客戶自管金鑰的 Amazon S3 伺服器端加密。如需詳細資訊，請參閱[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)。

若要使用伺服器端加密搭配 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;
```

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

運作程序如下：

1. 您會建立以 base64 編碼的 256 位元 AES 金鑰，您可以將此金鑰用做為私有加密金鑰或*根對稱金鑰*。

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

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

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

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

如需信封加密程序的詳細資訊，請參閱[使用適用於 Java 的 AWS SDK 和 Amazon S3 的用戶端資料加密](https://aws.amazon.com/articles/2850096021478074)文章。

若要卸載加密的資料檔案，請將根金鑰值新增至登入資料字串並包含 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;
```