

 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/)。

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

# 使用 Redshift 增強型 VPC 路由控制網路流量
<a name="enhanced-vpc-routing"></a>

當您使用 Amazon Redshift 增強型 VPC 路由時，Amazon Redshift 會根據 Amazon VPC 服務來強制叢集與資料儲存庫之間所有的 [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) 與 [UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html) 流量通過您的虛擬私有雲端 (VPC)。使用增強型 VPC 路由時，您可以使用標準 VPC 功能，例如 [VPC 安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)、[網路存取控制清單 (ACL)](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ACLs.html)、[VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)、[VPC 端點政策](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)、[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)，以及[網域名稱系統 (DNS)](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html) 伺服器，如《Amazon VPC 使用者指南》**中所述。您可以使用這些功能來控制 Amazon Redshift 叢集與其他資源之間的資料流程。當您使用增強型 VPC 路由以透過 VPC 路由流量時，亦可使用 [VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)來監控 COPY 與 UNLOAD 流量。

 Amazon Redshift 叢集和 Amazon Redshift Serverless 工作群組都支援增強型 VPC 路由。您無法搭配 Redshift Spectrum 使用增強型 VPC 路由。如需詳細資訊，請參閱[透過 Redshift Spectrum 存取 Amazon S3 儲存貯體](spectrum-enhanced-vpc.md)。

如果未開啟增強型 VPC 路由，Amazon Redshift 會透過網際網路路由流量，包括網路中其他服務的流量 AWS 。

**重要**  
由於增強型 VPC 路由會影響 Amazon Redshift 存取其他資源的方式，COPY 與 UNLOAD 命令可能會失敗，除非您正確設定 VPC。您必須在叢集的 VPC 與資料資源之間特別建立網路路徑，如下所述。

當您在已開啟增強型 VPC 路由的叢集上執行 COPY 或 UNLOAD 命令時，您的 VPC 會使用「最嚴格」** (或最獨特) 可用的網路路徑，將流量路由至指定的資源。

例如，您可以在 VPC 中設定下列路徑：
+ ** VPC 端點 **– 對於與叢集或工作群組位於相同 AWS 區域中的 Amazon S3 儲存貯體流量，您可以建立 VPC 端點，將流量直接導向儲存貯體。當您使用 VPC 端點時，可以連接端點政策以管理 Amazon S3 的存取。如需搭配 Redshift 使用端點的相關資訊，請參閱 [使用 VPC 端點控制資料庫流量](enhanced-vpc-working-with-endpoints.md)。如果您使用 Lake Formation，您可以在 Lake Formation 的 VPC 和 AWS Lake Formation 之間建立私有連線[AWS ，以及介面 VPC 端點 (AWS PrivateLink) ](https://docs.aws.amazon.com/lake-formation/latest/dg/privatelink.html)的詳細資訊。
**注意**  
當您搭配 Amazon S3 VPC Gateway 端點使用 Redshift VPC 端點時，您必須在 Redshift 中啟用增強型 VPC 路由。如需詳細資訊，請參閱 [Amazon S3 的閘道端點](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html)。
+ **NAT 閘道** – 您可以連接到另一個 AWS 區域中的 Amazon S3 儲存貯體，也可以連接到網路中的 AWS 其他服務。您也可以存取 AWS 網路外部的主機執行個體。若要這麼做，請設定[網路位址轉譯 (NAT) 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)，如《Amazon VPC 使用者指南》**中所述。
+ **網際網路閘道** — 若要連線至 VPC 外的 AWS 服務，您可以將[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)附加至您的 VPC 子網路，如《Amazon VPC 使用者指南》**中所述。若要使用網際網路閘道，您的叢集或工作群組必須可公開存取，以便讓其他服務與其進行通訊。

如需詳細資訊，請參閱《Amazon VPC 使用者指南》中的 [VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)。

使用增強型 VPC 路由無需額外付費。某些操作可能需要額外的數據傳輸費。這些操作包括 UNLOAD 到不同區域中的 Amazon S3 AWS 。從 Amazon EMR 或 Secure Shell (SSH) 透過公有 IP 地址 COPY。如需定價的相關資訊，請參閱 [Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)。

**Topics**
+ [使用 VPC 端點控制資料庫流量](enhanced-vpc-working-with-endpoints.md)
+ [開啟增強型 VPC 路由](enhanced-vpc-enabling-cluster.md)
+ [透過 Redshift Spectrum 存取 Amazon S3 儲存貯體](spectrum-enhanced-vpc.md)

# 使用 VPC 端點控制資料庫流量
<a name="enhanced-vpc-working-with-endpoints"></a>

您可以使用 VPC 端點，在 VPC 中的 Amazon Redshift 叢集或 Serverless 工作群組與 Amazon Simple Storage Service (Amazon S3) 之間建立受管連線。當您這麼做時，資料庫與 Amazon S3 上的資料之間的 COPY 與 UNLOAD 流量會停留在 Amazon VPC 中。您可以將端點政策連接至您的端點，更緊密地管理您資料的存取。例如，您可以將政策新增至您的 VPC 端點，僅允許資料上傳至您帳戶中特定的 Amazon S3 儲存貯體。

若要使用 VPC 端點，請為資料倉儲所在的 VPC 建立 VPC 端點，然後開啟增強型 VPC 路由。您可以在建立叢集或工作群組時開啟增強型 VPC 路由，也可以修改 VPC 中的叢集或工作群組以使用增強型 VPC 路由。

VPC 端點使用路由表來控制 VPC 中的叢集或工作群組與 Amazon S3 之間流量的路由。與指定之路由表關聯之子網路中的所有叢集和工作群組會自動使用該端點來存取服務。

您的 VPC 使用最具體或最嚴格且匹配您流量的路由，以判斷如何路由流量。例如，假設您的路由表中有路由處理指向網際網路閘道和 Amazon S3 端點的所有網際網路流量 (0.0.0.0/0)。在此情況下，端點路由會優先處理所有以 Amazon S3 為目的地的流量。這是因為 Amazon S3 服務的 IP 地址比 0.0.0.0/0 更明確。在此範例中，所有其他網際網路流量會流向網際網路閘道，包括以其他 AWS 區域區域中的 Amazon S3 儲存貯體為目的地的流量。

如需建立端點的相關資訊，請參閱《Amazon VPC 使用者指南》**中的[建立 VPC 端點](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html)。

您使用端點政策，控制從您的叢集或工作群組對於存有您資料檔案之 Amazon S3 儲存貯體的存取。如需更精確的控制，您可以選擇連接自訂端點政策。如需詳細資訊，請參閱《AWS PrivateLink 指南》**中的[使用端點政策控制對服務的存取](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html)。

**注意**  
 AWS Database Migration Service (AWS DMS) 是一種雲端服務，可讓您遷移關聯式資料庫、資料倉儲和其他類型的資料存放區。它可以連接到任何 AWS 來源或目標資料庫，包括已啟用 VPC 的 Amazon Redshift 資料庫，並具有一些組態限制。支援 Amazon VPC 端點可讓您更輕鬆地 AWS DMS 維護end-to-end網路安全。如需搭配 Redshift 使用的詳細資訊 AWS DMS，請參閱*AWS Database Migration Service 《 使用者指南*》中的將 [VPC 端點設定為 AWS DMS 來源和目標端點](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_VPC_Endpoints.html)。

使用端點無需額外付費。需支付標準數據傳輸與資源使用費。如需有關定價的詳細資訊，請參閱 [Amazon EC2 定價](https://aws.amazon.com/redshift/pricing/#Data_Transfer)。

# 開啟增強型 VPC 路由
<a name="enhanced-vpc-enabling-cluster"></a>

您可以在建立或修改叢集時，以及建立或修改 Amazon Redshift Serverless 工作群組時，開啟增強型 VPC 路由。

如要使用增強型 VPC 路由，您的叢集或 Serverless 工作群組必須符合以下需求與限制條件：
+ 您的叢集必須在 VPC 中。

  如果您連接 Amazon S3 VPC 端點，VPC 端點僅用於存取相同區域中的 Amazon S3 儲存貯 AWS 體。若要存取另一個 AWS 區域中的儲存貯體 （不使用 VPC 端點） 或存取其他服務 AWS ，請讓您的叢集或 Serverless 工作群組可公開存取，或使用[網路位址轉譯 (NAT) 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。如需詳細資訊，請參閱[在 VPC 中建立 Redshift 佈建叢集或 Amazon Redshift Serverless 工作群組](getting-started-cluster-in-vpc.md)。
+ 您必須在 VPC 中啟用網域名稱服務 (DNS) 解析。或者，如果您使用自己的 DNS 伺服器，請確定對 Amazon S3 提出的 DNS 請求可正確解析為 AWS所維護的 IP 地址。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [使用 DNS 與您的 VPC 搭配](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。
+ 您的 VPC 必須啟用 DNS 主機名稱。DNS 主機名稱預設為啟用。
+ 您的 VPC 端點政策必須允許存取 Amazon Redshift 中的 COPY、UNLOAD 或 CREATE LIBRARY 呼叫所使用的任何 Amazon S3 儲存貯體，包括存取任何涉及的資訊清單檔案。對於來自遠端主機的 COPY，您的端點政策必須允許存取每個主機機器。如需詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》**中的 [COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 許可](https://docs.aws.amazon.com/redshift/latest/dg/copy-usage_notes-access-permissions.html#copy-usage_notes-iam-permissions)。

**開啟佈建叢集的增強型 VPC 路由**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 在導覽功能表上，選擇**佈建叢集儀表板**，然後選擇**建立叢集**並輸入**叢集詳細資訊**屬性。

1. 若要顯示 **Additional configurations (其他組態)** 區段，請選擇關閉 **Use defaults (使用預設值)**。

1. 導覽至**網路和安全**區段。

1. 若要開啟**增強型 VPC 路由**，請選擇**開啟**以強制透過 VPC 傳輸叢集流量。

1. 選擇 **Create cluster (建立叢集)** 以建立叢集。該叢集可能需要幾分鐘方可使用。

**開啟 Amazon Redshift Serverless 的增強型 VPC 路由**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)：// 開啟 Amazon Redshift 主控台。

1. 在導覽功能表上，選擇 **Serverless 儀表板**，然後選擇**建立工作群組**並輸入工作群組的屬性。

1. 導覽至**網路和安全**區段。

1. 選取**開啟增強型 VPC 路由**以透過 VPC 來路由網路流量。

1. 選擇**下一步**並完成工作群組屬性的輸入，直到您**建立**工作群組為止。

# 透過 Redshift Spectrum 存取 Amazon S3 儲存貯體
<a name="spectrum-enhanced-vpc"></a>

一般而言，Amazon Redshift Spectrum 不支援佈建叢集的增強型 VPC 路由，即使佈建叢集可以在啟用增強型 VPC 路由的情況下，從 Amazon S3 查詢外部資料表。

Amazon Redshift 增強型 VPC 路由會透過您的 VPC 傳送特定流量，這表示叢集和 Amazon S3 儲存貯體之間的所有流量都會強制通過您的 Amazon VPC。由於 Redshift Spectrum 會在 Amazon Redshift 擁有但位於 VPC 外部的 AWS 受管資源上執行，因此 Redshift Spectrum 不會使用增強型 VPC 路由。

Redshift Spectrum 和 Amazon S3 之間的流量會透過 AWS 私有網路安全地路由至 VPC 外部。傳輸中的流量是使用 Amazon Signature 第 4 版通訊協定 (SIGv4) 來簽署，並使用 HTTPS 來加密。此流量是根據連接到 Amazon Redshift 叢集的 IAM 角色而獲得授權。若要進一步管理 Redshift Spectrum 流量，您可以修改叢集的 IAM 角色和已連接到 Amazon S3 儲存貯體的政策。您可能還需要設定 VPC 以允許叢集存取 AWS Glue 或 Athena，如下所示。

 請注意，由於增強型 VPC 路由會影響 Amazon Redshift 存取其他資源的方式，查詢可能會失敗，除非您正確設定 VPC。如需詳細資訊，請參閱 [使用 Redshift 增強型 VPC 路由控制網路流量](enhanced-vpc-routing.md)，其中會詳細討論如何建立 VPC 端點、NAT 閘道和其他網路資源，以將流量導向 Amazon S3 儲存貯體。

**注意**  
Amazon Redshift Serverless 支援將增強型 VPC 路由用於 Amazon S3 上外部資料表的查詢。如需組態的詳細資訊，請參閱《Amazon Redshift Serverless 入門指南》中的[從 Amazon S3 載入資料](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html#serverless-load-data-from-s3)。

## 使用 Amazon Redshift Spectrum 時的許可政策組態
<a name="spectrum-enhanced-vpc-considerations"></a>

使用 Redshift Spectrum: 時，請考量下列事項：
+ [Amazon S3 儲存貯體存取政策和 IAM 角色](#spectrum-enhanced-vpc-considerations-policies)
+ [擔任 IAM 角色的許可](#spectrum-enhanced-vpc-considerations-cluster-role)
+ [記錄和稽核 Amazon S3 存取](#spectrum-enhanced-vpc-considerations-logging-s3)
+ [存取 AWS Glue 或 Amazon Athena](#spectrum-enhanced-vpc-considerations-glue-access)

### Amazon S3 儲存貯體存取政策和 IAM 角色
<a name="spectrum-enhanced-vpc-considerations-policies"></a>

您可以使用連接到儲存貯體的儲存貯體政策，以及使用連接到佈建叢集的 IAM 角色，來控制 Amazon S3 儲存貯體中資料的存取權。

如果 Amazon S3 儲存貯體使用的儲存貯體政策僅限於存取指定的 VPC 端點，佈建叢集上的 Redshift Spectrum 便無法存取該儲存貯體中儲存的資料。反之，請使用儲存貯體政策，限制只能存取特定委託人，例如特定 AWS 帳戶或特定使用者。

對於獲授權存取儲存貯體的 IAM 角色，請使用只允許由 Amazon Redshift 服務主體擔任該角色的信任關係。連接到叢集時，該角色只能用於 Amazon Redshift 的內容中，不能在叢集外共用。如需詳細資訊，請參閱[限制對 IAM 角色的存取](authorizing-redshift-service-database-users.md)。服務控制政策 (SCP) 也可用於進一步限制角色，請參閱《AWS Organizations 使用者指南》**中的[防止 IAM 使用者和角色進行指定變更，且指定的管理員角色除外](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_general.html#example-scp-restricts-with-exception)。

**注意**  
若要使用 Redshift Spectrum，則不能有任何會阻止使用 Amazon S3 預先簽章 URL 的 IAM 政策。Amazon Redshift Spectrum 產生的預先簽章 URL 有效期為 1 小時，如此 Amazon Redshift 就有足夠的時間從 Amazon S3 儲存貯體載入所有檔案。Redshift Spectrum 掃描的每個檔案都會產生唯一的預先簽章 URL。對於包含 `s3:signatureAge` 動作的儲存貯體政策，請務必將值設定為至少 3,600,000 毫秒。

以下範例儲存貯體政策允許存取 AWS 帳戶 擁有的指定儲存貯體`123456789012`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BucketPolicyForSpectrum",
            "Effect": "Allow",
            "Principal": {
                "AWS": ["arn:aws:iam::123456789012:role/redshift"]
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucketVersions",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        }
    ]
}
```

------

### 擔任 IAM 角色的許可
<a name="spectrum-enhanced-vpc-considerations-cluster-role"></a>

連接到叢集的角色應該具有只允許 Amazon Redshift 服務擔任該角色的信任關係，如下所示。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "redshift.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

如需詳細資訊，請參閱《Amazon Redshift 資料庫開發人員指南》**中的 [Redshift Spectrum 的 IAM 政策](https://docs.aws.amazon.com/redshift/latest/dg/c-spectrum-iam-policies.html)。

### 記錄和稽核 Amazon S3 存取
<a name="spectrum-enhanced-vpc-considerations-logging-s3"></a>

使用 Amazon Redshift 增強型 VPC 路由的一項好處是所有 COPY 和 UNLOAD 流量都記錄在 VPC 流程日誌中。源自 Redshift Spectrum 到 Amazon S3 的流量不會通過 VPC，所以沒有記錄在 VPC 流程日誌中。當 Redshift Spectrum 存取 Amazon S3 中的資料時，它會在 AWS 帳戶內容和個別角色權限中執行這些操作。您可以在 AWS CloudTrail 和 Amazon S3 中使用伺服器存取日誌記錄，以記錄和稽核 Amazon S3。

確定 S3 IP 範圍已新增至您的允許清單。若要進一步了解所需的 S3 IP 範圍，請參閱[網路隔離](https://docs.aws.amazon.com//redshift/latest/mgmt/security-network-isolation.html#network-isolation)。

**AWS CloudTrail 日誌** 

若要追蹤對 Amazon S3 中的物件的所有存取，包括 Redshift Spectrum 存取，請對 Amazon S3 物件啟用 CloudTrail 記錄。

您可以使用 CloudTrail 來檢視、搜尋、下載、封存、分析和回應整個 AWS 基礎設施的帳戶活動。如需詳細資訊，請參閱 [CloudTrail 入門](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-getting-started.html)。

根據預設，CloudTrail 只會追蹤儲存貯體層級的動作。若要追蹤物件層級的動作 (例如 `GetObject`)，請對每一個已記錄的儲存貯體啟用資料和管理事件。

**Amazon S3 伺服器存取記錄** 

伺服器存取記錄日誌，應儲存貯體要求，提出的詳細記錄。存取記錄資訊在安全與存取稽核中相當實用。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[如何啟用伺服器存取記錄](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html#server-access-logging-overview)。

如需詳細資訊，請參閱 AWS 安全部落格文章[如何使用儲存貯體政策和套用Defense-in-Depth以協助保護您的 Amazon S3 資料](https://aws.amazon.com/blogs/security/how-to-use-bucket-policies-and-apply-defense-in-depth-to-help-secure-your-amazon-s3-data/)。

### 存取 AWS Glue 或 Amazon Athena
<a name="spectrum-enhanced-vpc-considerations-glue-access"></a>

Redshift Spectrum 會在 AWS Glue 或 Athena 中存取您的資料目錄。另一個選項是使用專用的 Hive 中繼存放區來處理資料目錄。

若要啟用對 AWS Glue 或 Athena 的存取，請使用網際網路閘道或 NAT 閘道設定您的 VPC。設定您的 VPC 安全群組，以允許 AWS Glue 和 Athena 的公有端點傳出流量。或者，您可以設定介面 VPC 端點 AWS Glue ，讓 存取您的 AWS Glue Data Catalog。當您使用 VPC 介面端點時，VPC 與 之間的通訊 AWS Glue 會在 AWS 網路中執行。如需詳細資訊，請參閱[建立界面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)。

您可以在 VPC 中設定下列路徑：
+ **網際網路閘道** – 若要連線至 VPC 以外的 AWS 服務，您可以將[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)連接至 VPC 子網路，如 *Amazon VPC 使用者指南中所述。*若要使用網際網路閘道，佈建叢集必須有公有 IP 位址，才能讓其他服務與其進行通訊。
+ **NAT 閘道 **– 若要連線至另一個 AWS 區域中的 Amazon S3 儲存貯體或網路中的 AWS 其他服務，請設定[網路位址轉譯 (NAT) 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)，如 *Amazon VPC 使用者指南中所述。*您也可以使用此組態來存取 AWS 網路外的主機執行個體。

如需詳細資訊，請參閱[使用 Redshift 增強型 VPC 路由控制網路流量](enhanced-vpc-routing.md)。