

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

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

# Amazon Redshift 的基礎設施安全
<a name="security-network-isolation"></a>

Amazon Redshift 是受管服務，受到 AWS 全球網路安全的保護。如需 AWS 安全服務以及如何 AWS 保護基礎設施的資訊，請參閱[AWS 雲端安全](https://aws.amazon.com/security/)。若要使用基礎設施安全的最佳實務來設計您的 AWS 環境，請參閱*安全支柱 AWS Well-Architected Framework* 中的[基礎設施保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 發佈的 API 呼叫，透過網路存取 Amazon Redshift。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

## 網路隔離
<a name="network-isolation"></a>

以 Amazon VPC 服務為基礎的虛擬私有雲端 (VPC) 是您在 AWS 雲端中以邏輯方式隔離的私有網路。您可以執行下列步驟，在 VPC 內部署 Amazon Redshift 叢集或 Redshift Serverless 工作群組：
+ 在 區域中建立 VPC AWS 。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[什麼是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)。
+ 建立兩個或多個私有 VPC 子網路。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 和子網路](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)。
+ 部署 Amazon Redshift 叢集或 Redshift Serverless 工作群組。如需詳細資訊，請參閱 [Redshift 資源的子網路](working-with-cluster-subnet-groups.md) 或 [工作群組和命名空間](serverless-workgroup-namespace.md) 。

依預設會在佈建時鎖定 Amazon Redshift 叢集。若要允許來自 Amazon Redshift 用戶端的傳入網路流量，請將 VPC 安全群組與 Amazon Redshift 叢集相關聯。如需詳細資訊，請參閱[Redshift 資源的子網路](working-with-cluster-subnet-groups.md)。

若要僅允許往返特定 IP 位址範圍的流量，請更新您的 VPC 的安全群組。一個例子是僅允許往返您的企業網路的流量。

設定與 Amazon Redshift 叢集加上標籤之子網路相關聯的網路存取控制清單時，請確保將個別 AWS 區域的 S3 CIDR 範圍新增至輸入和輸出規則的允許清單。這樣做可讓您執行以 S3 為基礎的操作，例如 Redshift Spectrum、COPY 和 UNLOAD，而不會造成中斷。

以下範例命令會在 us-east-1 區域中剖析 Amazon S3 所使用的所有 IPv4 地址的 JSON 回應。

```
curl https://ip-ranges.amazonaws.com/ip-ranges.json | jq -r '.prefixes[] | select(.region=="us-east-1") | select(.service=="S3") | .ip_prefix'

54.231.0.0/17

52.92.16.0/20

52.216.0.0/15
```

如需如何取得特定區域之 S3 IP 範圍的指示，請參閱 [AWS IP 地址範圍](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)。

Amazon Redshift 支援將叢集部署至專用租用 VPC。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[專用預留執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)。

## Amazon Redshift 安全群組
<a name="working-with-security-groups"></a>

當您佈建 Amazon Redshift 叢集時，依預設它會遭鎖定，以便沒有人可以存取它。若要授予其他使用者 Amazon Redshift 叢集的傳入存取，您可使叢集與安全群組建立關聯。如果您是在 EC2-VPC 平台上，則可以使用現有的 Amazon VPC 安全群組，或定義新的安全群組，然後使它與叢集建立關聯。如需在 EC2-VPC 平台上管理叢集的相關資訊，請參閱[VPC 中的 Redshift 資源](managing-clusters-vpc.md)。

## 介面 VPC 端點
<a name="security-private-link"></a>

您可以在虛擬私有雲端 (VPC) 中使用介面 VPC 端點 (AWS PrivateLink) 直接連線至 Amazon Redshift 和 Amazon Redshift Serverless API 服務，而非透過網際網路進行連線。如需 Amazon Redshift API 動作的相關資訊，請參閱《Amazon Redshift API 參考》**中的[動作](https://docs.aws.amazon.com/redshift/latest/APIReference/API_Operations.html)。如需 Redshift Serverless API 動作的相關資訊，請參閱《Amazon Redshift Serverless API 參考》**中的[動作](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_Operations.html)。如需 AWS PrivateLink的相關資訊，請參閱《Amazon VPC 使用者指南》**中的[界面 VPC 端點 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)。請注意，叢集或工作群組的 JDBC/ODBC 連線不屬於 Amazon Redshift API 服務的一部分。

當您使用界面 VPC 端點時，VPC 與 Amazon Redshift 或 Redshift Serverless 之間的通訊會完全在 AWS 網路中執行，這可提供更高的安全性。每個 VPC 端點皆會由一個或多個具私有 IP 地址彈性網路界面來表示，而該界面位於 VPC 子網路中。如需彈性網路界面的詳細資訊，請參閱 *Amazon EC2 使用者指南*中的[彈性網路界面](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)。

界面 VPC 端點會將 VPC 直接連線到 Amazon Redshift。它不使用網際網路閘道、網路位址轉譯 (NAT) 裝置、虛擬私有網路 (VPN) 連線或 Direct Connect 連線。VPC 中的執行個體不需要公有 IP 地址，就能與 Amazon Redshift API 進行通訊。

若要透過 VPC 使用 Amazon Redshift 或 Redshift Serverless，您有兩個選項。一個是從 VPC 內部的執行個體進行連線。另一個方法是使用 Site-to-Site VPN 選項 或 將私有網路連接到 VPC Direct Connect。如需 Site-to-Site VPN 選項的詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的 [VPN 連線](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)。如需有關 Direct Connect的資訊，請參閱《Direct Connect 使用者指南》**中的[建立連線](https://docs.aws.amazon.com/directconnect/latest/UserGuide/create-connection.html)。

您可以使用 AWS 管理主控台 或 AWS Command Line Interface (AWS CLI) 命令，建立介面 VPC 端點以連線至 Amazon Redshift。如需詳細資訊，請參閱[建立界面端點](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint)。

在您建立界面 VPC 端點後，您可以為該端點啟用私有 DNS 主機名稱。若您這樣做，預設端點如下所示：
+ **Amazon Redshift 佈建**：`https://redshift.Region.amazonaws.com`
+ **Amazon Redshift Serverless**：`https://redshift-serverless.Region.amazonaws.com`

如果您未啟用私有 DNS 主機名稱，Amazon VPC 會透過下列格式提供 DNS 端點名稱供您使用。
+ **Amazon Redshift 佈建**：`VPC_endpoint_ID.redshift.Region.vpce.amazonaws.com`
+ **Amazon Redshift Serverless**：`VPC_endpoint_ID.redshift-serverless.Region.vpce.amazonaws.com`

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

Amazon Redshift 和 Redshift Serverless 支援會在 VPC 內呼叫所有 [Amazon Redshift API 操作](https://docs.aws.amazon.com/redshift/latest/APIReference/API_Operations.html)和 [Redshift Serverless API 操作](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_Operations.html)。

可以將 VPC 端點政策附接至某個 VPC 端點，以控制 AWS Identity and Access Management (IAM) 主體的存取權。您也可以將安全群組與 VPC 端點建立關聯，以根據網路流量的來源和目的地來控制傳入和傳出存取。範例是 IP 地址範圍。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[使用 VPC 端點控制服務的存取](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)。

### Amazon Redshift 的 VPC 端點政策
<a name="security-private-link-vpc_endpoint-policy"></a>

您可以為 Amazon Redshift 的 VPC 端點建立政策，以指定下列各項：
+ 可執行或不可執行動作的主體
+ 可執行的動作
+ 可在其中執行動作的資源

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

接下來，您可以找到 VPC 端點政策的範例。

#### Amazon Redshift 佈建端點政策範例
<a name="security-private-link-examples-provisioned"></a>

接下來，您可以找到 Amazon Redshift 佈建的 VPC 端點政策範例。

##### 範例：拒絕來自指定 AWS 帳戶的所有存取的 VPC 端點政策
<a name="security-private-link-example-1"></a>

下列 VPC 端點政策會拒絕 AWS 帳戶使用此端點存取資源`123456789012`。

```
{
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "*",
            "Effect": "Deny",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

##### 範例：可用來只向指定 IAM 角色允許 VPC 存取的 VPC 端點政策
<a name="security-private-link-example-1.1"></a>

下列 VPC 端點政策僅允許完整存取 AWS 帳戶 *123456789012* *`redshiftrole`*中的 IAM 角色。所有其他 IAM 主體均無法存取該端點。

```
   {
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:role/redshiftrole"
                ]
            }
        }]
}
```

這只是範例。在大多數使用案例中，建議您附加特定動作的許可，以縮小許可範圍。

##### 範例：可用來只向指定 IAM 主體 (使用者) 允許 VPC 存取的 VPC 端點政策
<a name="security-private-link-example-2"></a>

下列 VPC 端點政策僅允許 AWS 帳戶 *123456789012* *`redshiftadmin`*中的 IAM 使用者完整存取。所有其他 IAM 主體均無法存取該端點。

```
   {
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012:user/redshiftadmin"
                ]
            }
        }]
}
```

這只是範例。在大多數使用案例中，建議您先附加許可給某個角色，再指派給使用者。此外，也建議您使用特定動作來縮小許可範圍。

##### 範例：可用來允許唯讀 Amazon Redshift 操作的 VPC 端點政策
<a name="security-private-link-example-3"></a>

下列 VPC 端點政策僅允許 AWS 帳戶*`123456789012`*執行指定的 Amazon Redshift 動作。

指定的動作會為 Amazon Redshift 提供等效的唯讀存取權。拒絕指定的帳戶存取在該 VPC 上的所有其他動作。此外，也會拒絕所有其他帳戶的任何存取。如需 Amazon Redshift 動作的清單，請參閱《IAM 使用者指南》**中的 [Amazon Redshift 的動作、資源和條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonredshift.html)。

```
  {
    "Statement": [
        {
            "Action": [
                "redshift:DescribeAccountAttributes",
                "redshift:DescribeClusterParameterGroups",
                "redshift:DescribeClusterParameters",
                "redshift:DescribeClusterSecurityGroups",
                "redshift:DescribeClusterSnapshots",
                "redshift:DescribeClusterSubnetGroups",
                "redshift:DescribeClusterVersions",
                "redshift:DescribeDefaultClusterParameters",
                "redshift:DescribeEventCategories",
                "redshift:DescribeEventSubscriptions",
                "redshift:DescribeHsmClientCertificates",
                "redshift:DescribeHsmConfigurations",
                "redshift:DescribeLoggingStatus",
                "redshift:DescribeOrderableClusterOptions",
                "redshift:DescribeQuery",
                "redshift:DescribeReservedNodeOfferings",
                "redshift:DescribeReservedNodes",
                "redshift:DescribeResize",
                "redshift:DescribeSavedQueries",
                "redshift:DescribeScheduledActions",
                "redshift:DescribeSnapshotCopyGrants",
                "redshift:DescribeSnapshotSchedules",
                "redshift:DescribeStorage",
                "redshift:DescribeTable",
                "redshift:DescribeTableRestoreStatus",
                "redshift:DescribeTags",
                "redshift:FetchResults",
                "redshift:GetReservedNodeExchangeOfferings"            
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

##### 範例：拒絕指定叢集存取的 VPC 端點政策
<a name="security-private-link-example-4"></a>

下列 VPC 端點政策會允許所有帳戶和主體擁有完整存取權。同時，它會拒絕 AWS 帳戶*`123456789012`*對叢集 ID 為 的 Amazon Redshift 叢集上執行動作的任何存取`my-redshift-cluster`。仍然允許其他不支援叢集資源層級許可的 Amazon Redshift 動作。如需 Amazon Redshift 動作及其對應資源類型的清單，請參閱《IAM 使用者指南》**中的 [Amazon Redshift 的動作、資源和條件金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonredshift.html)。

```
 {
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "*",
            "Effect": "Deny",
            "Resource": "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

#### Amazon Redshift Serverless 端點政策範例
<a name="security-private-link-examples-serverless"></a>

接下來，您可以找到 Redshift Serverless 的 VPC 端點政策範例。

##### 範例：允許唯讀 Redshift Serverless 操作的 VPC 端點政策
<a name="security-private-link-serverless-example-1"></a>

下列 VPC 端點政策僅允許 AWS 帳戶*`123456789012`*執行指定的 Redshift Serverless 動作。

指定的動作會為 Redshift Serverless 提供同等的唯讀存取權。拒絕指定的帳戶存取在該 VPC 上的所有其他動作。此外，也會拒絕所有其他帳戶的任何存取。如需 Redshift Serverless 動作的清單，請參閱《IAM 使用者指南》**中的 [Redshift Serverless 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonredshiftserverless.html)。

```
  {
    "Statement": [
        {
            "Action": [
                "redshift-serverless:DescribeOneTimeCredit",
                "redshift-serverless:GetCustomDomainAssociation",
                "redshift-serverless:GetEndpointAccess",
                "redshift-serverless:GetNamespace",
                "redshift-serverless:GetRecoveryPoint",
                "redshift-serverless:GetResourcePolicy",
                "redshift-serverless:GetScheduledAction",
                "redshift-serverless:GetSnapshot",
                "redshift-serverless:GetTableRestoreStatus",
                "redshift-serverless:GetUsageLimit",
                "redshift-serverless:GetWorkgroup"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```

##### 範例：拒絕指定工作群組進行存取的 VPC 端點政策
<a name="security-private-link-serverless-example-2"></a>

下列 VPC 端點政策會允許所有帳戶和主體擁有完整存取權。同時，它會拒絕 AWS 帳戶*`123456789012`*對工作群組 ID 為 的 Amazon Redshift 工作群組上執行動作的任何存取`my-redshift-workgroup`。仍然允許其他不支援工作群組的資源層級許可的 Amazon Redshift 動作。如需 Redshift Serverless 動作及其對應資源類型的清單，請參閱《IAM 使用者指南》**中的 [Redshift Serverless 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonredshiftserverless.html)。

```
 {
    "Statement": [
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": "*",
            "Principal": "*"
        },
        {
            "Action": "*",
            "Effect": "Deny",
            "Resource": "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup:my-redshift-workgroup",
            "Principal": {
                "AWS": [
                    "123456789012"
                ]
            }
        }
    ]
}
```