

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 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="networking-tasks"></a>

您可以执行联网任务，例如自定义与 Redshift 数据库的连接。这样可以控制流量，以便确保安全性或满足其他目的。您还可以执行与 DNS 相关的任务，例如为 Redshift 资源设置自定义域名。如果您拥有 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组，则可以执行这些配置任务。

**Topics**
+ [用于客户端连接的自定义域名](connecting-connection-CNAME.md)
+ [Redshift 托管的 VPC 端点](managing-cluster-cross-vpc.md)
+ [VPC 中的 Redshift 资源](managing-clusters-vpc.md)
+ [使用 Redshift 增强型 VPC 路由控制网络流量](enhanced-vpc-routing.md)

# 用于客户端连接的自定义域名
<a name="connecting-connection-CNAME"></a>

 您可以为 Amazon Redshift 集群和 Amazon Redshift Serverless 工作组创建自定义域名，也称为自定义 URL。这是易于阅读的 DNS 记录，可将 SQL 客户端连接路由到您的端点。您可以随时为现有集群或工作组进行配置。自定义域名有几个好处：
+ 自定义域名是一个比默认 URL 更简单的字符串，后者通常包括集群名称或工作组名称和区域。它更易于记起和使用。
+ 例如，在进行故障转移时，您可以将流量快速路由到新集群或工作组。这使得客户端在重新连接时不必更改配置。连接可以集中重新路由，将中断降至最低。
+ 您可以避免在连接 URL 中分享私有信息，例如服务器名称。您可以将其隐藏在自定义 URL 中。

使用 CNAME 设置自定义域名时，Amazon Redshift 不会收取任何额外费用。如果您创建一个新域名，您的 DNS 提供商可能会向您收取域名的费用，但这笔费用通常很小。

# 注册域名
<a name="connecting-connection-CNAME-certificates"></a>

 设置自定义域名由多项任务组成：包括向 DNS 提供商注册域名和创建证书。执行这些工作后，您可以在 Amazon Redshift 控制台中或 Amazon Redshift Serverless 控制台中配置自定义域名，或者使用 AWS CLI 命令对其进行配置。

您必须有一个已注册的互联网域名，才能在 Amazon Redshift 中配置自定义域名。您可以使用 Route 53 或第三方域注册提供商来注册互联网域。您在 Amazon Redshift 控制台之外完成这些任务。要想完成创建自定义域的剩余过程，有一个已注册的域是先决条件。

**注意**  
如果您使用预置集群，在执行步骤以配置自定义域名之前，必须启用重新定位。有关更多信息，请参阅 [重新定位集群](managing-cluster-recovery.md)。Amazon Redshift Serverless 不需要此步骤。

自定义域名通常包括根域和子域，例如 `mycluster.example.com`。要对其进行配置，请执行以下步骤：

**为您的自定义域名创建 DNS CNAME 条目**

1. 注册一个根域，例如，`example.com`。您可以选择使用现有域。您的自定义名称可能会受到对特定字符的限制或其他命名验证的限制。有关向 Route 53 注册域的更多信息，请参阅 [Registering a new domain](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html)。

1. 添加一个 DNS CNAME 记录，将您的自定义域名指向集群或工作组的 Redshift 端点。您可以在 Redshift 控制台或 Amazon Redshift Serverless 控制台中，在集群或工作组的属性中查找端点。在**一般信息**下，复制集群或工作组属性中提供的 **JDBC URL**。URL 类似于以下内容：
   + 对于Amazon Redshift 集群：`redshift-cluster-sample.abc123456.us-east-1.redshift.amazonaws.com`
   + 对于 Amazon Redshift Serverless 工作组：`endpoint-name.012345678901.us-east-1-dev.redshift-serverless-dev.amazonaws.com`

   如果 URL 有 JDBC 前缀，请将其删除。
**注意**  
DNS 记录视可用性而定，因为每个名称都必须是唯一的，并且可以在您的组织内使用。

**限制**

在为自定义域创建 CNAME 记录时，需要注意几个限制：
+ 对于同一个预置集群或 Amazon Redshift Serverless 工作组，不支持创建多个自定义域名。您只能关联一个 CNAME 记录。
+ 不支持将 CNAME 记录与多个集群或工作组关联。每个 Redshift 资源的 CNAME 必须唯一。

注册域并创建 CNAME 记录后，选择新的或现有的证书。您可以使用 AWS Certificate Manager 执行此步骤：

我们建议您创建符合托管续订资格的 [DNS 经验证证书](https://docs.aws.amazon.com/acm/latest/userguide/dns-renewal-validation.html)，这些证书在 AWS Certificate Manager 中提供。托管续订意味着 ACM 将自动续订您的证书，或者在接近过期时向您发送电子邮件通知。有关托管证书续订的更多信息，请参阅[ACM 证书的托管续订](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)。

# 为域名请求证书。
<a name="connecting-connection-CNAME-security"></a>

Amazon Redshift 或 Amazon Redshift Serverless 要求自定义端点具有经验证的安全套接字层 (SSL) 证书，以保持通信安全和验证域名的所有权。您可以将您的 AWS Certificate Manager 账户与 AWS KMS key 结合使用，以进行安全的证书管理。安全验证包括完整主机名验证（*sslmode=verify-full*）。

只有在您选择 DNS 验证而不是电子邮件验证时，证书续订才会由 Amazon Redshift 托管。如果您使用电子邮件验证，则可以使用证书，但您必须在证书到期之前自行进行续订。我们建议您为证书选择 DNS 验证。您可以在 AWS Certificate Manager 中监控导入证书的到期日期。

**为域名请求来自 ACM 的证书**

1. 登录到 AWS 管理控制台 并通过 [https://console.aws.amazon.com/acm/](https://console.aws.amazon.com/acm/) 打开 ACM 控制台。

1. 选择**请求证书**。

1. 在**域名**字段中，输入您的自定义域名。
**注意**  
除了证书域之外，您还可以指定许多前缀，以便将单个证书用于多个自定义域记录。举例来说，您可以将其他记录（例如 `one.example.com`、`two.example.com`）或通配符 DNS 记录（例如 `*.example.com`）与同一个证书一起使用。

1. 选择**审核并请求**。

1. 选择**确认并请求**。

1. 如果请求有效，Internet 域中注册的拥有者必须同意请求，然后 ACM 才能颁发证书。完成这些步骤后，请确保在 ACM 控制台中，状态显示为**已颁发**。

# 配置自定义域
<a name="connecting-connection-CNAME-create-custom-domain"></a>

您可以使用 Amazon Redshift 或 Amazon Redshift Serverless 控制台创建自定义域 URL。如果您尚未进行配置，则**自定义域名**属性会在**一般信息**下显示为短划线（**–**）。创建 CNAME 记录和证书后，您可以关联集群或工作组的自定义域名。

创建自定义域关联需要以下 IAM 权限：
+ `redshift:CreateCustomDomainAssociation` – 您可以通过添加特定集群的 ARN 来限制对该集群的权限。
+ `redshiftServerless:CreateCustomDomainAssociation` – 您可以通过添加特定工作组的 ARN 来限制对该工作组的权限。
+ `acm:DescribeCertificate`

作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

您可以通过执行以下步骤来分配自定义域名。

1. 在 Redshift 控制台中选择集群，或者在 Amazon Redshift Serverless 控制台中选择工作组，然后在**操作**菜单下选择**创建自定义域名**。此时将显示对话框。

1. 输入自定义域名。

1. 为 **ACM 证书**选择来自 AWS Certificate Manager 的 ARN。确认您所做的更改。根据您创建证书的步骤中的指导，我们建议您通过 AWS Certificate Manager，选择符合托管续订资格的 DNS 经验证证书 。

1. 在集群属性中，验证**自定义域名**和**自定义域证书 ARN** 中填充了您的条目，并列出了**自定义域证书的到期日期**。

配置自定义域后，仅可为新的自定义域使用 `sslmode=verify-full`。它不适用于默认端点。但您仍然可以使用其他 ssl 模式（例如 `sslmode=verify-ca`）连接到默认端点。

**注意**  
提醒一下，[集群重新定位](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-cluster-recovery.html)不是配置其它 Redshift 联网特征的先决条件。您无需将其开启即可启用以下功能：  
**从跨账户或跨区域 VPC 连接到 Redshift** – 您可以从一个 AWS Virtual Private Cloud (VPC) 连接到另一个包含 Redshift 数据库的虚拟私有云 (VPC)。这简化了管理，例如，对于来自不同账户或 VPC 的客户端访问，无需对连接到数据库的身份提供本地 VPC 访问权限。有关更多信息，请参阅[从其他账户或区域中的 Redshift VPC 端点连接到 Amazon Redshift Serverless](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-connecting.html#serverless-cross-vpc)。
**设置自定义域名** – 您可以创建自定义域名（如本主题中所述），以使端点名称更加相关和简单。

# 连接到 Amazon Redshift 预置集群或 Amazon Redshift Serverless 工作组
<a name="connecting-connection-CNAME-client"></a>

要使用自定义域名进行连接，预置集群需要以下 IAM 权限：`redshift:DescribeCustomDomainAssociations`。对于 Amazon Redshift Serverless，您不必添加权限。

作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

在控制台中完成创建 CNAME 并将其分配给集群或工作组的步骤后，您可以在 SQL 客户端的连接属性中提供自定义 URL。请注意，在创建 CNAME 记录后，DNS 传播可能会立即导致延迟。

1. 打开 SQL 客户端。例如，您可以使用 SQL/Workbench J。打开连接的属性，然后为连接字符串添加自定义域名。例如 `jdbc:redshift://mycluster.example.com:5439/dev?sslmode=verify-full`。在此示例中，`dev` 指定默认数据库。

1. 为您的数据库用户添加**用户名**和**密码**。

1. 测试连接。根据授予数据库用户的权限或授予所分配的 Amazon Redshift 数据库角色的权限，您查询特定表等数据库资源的能力可能会有所不同。

   请注意，如果您的集群或工作组位于 VPC 中，则可能需要将集群或工作组设置为可公开访问才能连接到其上。您可以在网络属性中更改此设置。

**注意**  
JDBC、ODBC 和 Python 驱动程序支持与自定义域名的连接。

# 重命名分配了自定义域的集群
<a name="connecting-connection-CNAME-rename-cluster"></a>

**注意**  
这一系列步骤不适用于 Amazon Redshift Serverless 工作组。您无法更改工作组名称。

要重命名具有自定义域名的集群，需要 `acm:DescribeCertificate` IAM 权限。

1. 请转至 Amazon Redshift 控制台并选择要更改其名称的集群。选择**编辑**，编辑集群属性。

1. 编辑**集群标识符**。您也可以更改集群的其他属性。然后选择 **Save changes （保存更改)**。

1. 重命名集群后，你必须更新 DNS 记录，将自定义域的 CNAME 条目更改为指向更新后的 Amazon Redshift 端点。

# 描述自定义域关联
<a name="connecting-connection-CNAME-describe-api"></a>

使用此部分中的命令，获取与特定预置集群或 Amazon Redshift Serverless 工作组关联的自定义域名列表。

您需要以下权限：
+ 对于预置集群：`redshift:DescribeCustomDomainAssociations`
+ 对于 Amazon Redshift Serverless 工作组：`redshiftServerless:ListCnameAssociations`

作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

以下显示的示例命令用于列出给定 Amazon Redshift 集群的自定义域名：

```
aws redshift describe-custom-domain-associations ––custom-domain-name customdomainname
```

启用自定义域名后，您可以运行此命令来确定与集群关联的自定义域名。有关用于描述自定义域关联的 CLI 命令的更多信息，请参阅 [describe-custom-domain-associations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/redshift/describe-custom-domain-associations.html)。

与此类似，以下显示的示例命令用于列出给定 Amazon Redshift Serverless 工作组的自定义域名：有一些不同的方法可以做到这一点。您可以只提供自定义域名：

```
aws redshift-serverless list-custom-domain-associations ––custom-domain-name customdomainname
```

您也可以通过只提供证书 ARN 来获取关联：

```
aws redshift-serverless list-custom-domain-associations ––custom-domain-certificate-arn certificatearn
```

启用自定义域名后，您可以运行这些命令来确定与工作组关联的自定义域名。您也可以运行命令来获取自定义域关联的属性。为此，您必须将自定义域名和工作组名称作为参数提供。该命令返回证书 ARN、工作组名称和自定义域的证书到期时间：

```
aws redshift-serverless get-custom-domain-association ––workgroup-name workgroupname ––custom-domain-name customdomainname
```

有关可用于 Amazon Redshift Serverless 的 CLI 参考命令更多信息，请参阅 [redshift-serverless](https://docs.aws.amazon.com/cli/latest/reference/redshift-serverless/)。

# 将自定义域与不同的证书关联
<a name="connecting-connection-CNAME-change-api"></a>

更改自定义域名的证书关联需要以下 IAM 权限：
+ `redshift:ModifyCustomDomainAssociation`
+ `acm:DescribeCertificate`

作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

使用以下命令将自定义域关联到不同的证书。`––custom-domain-name` 和 `custom-domain-certificate-arn` 参数为必需。新证书的 ARN 必须与现有 ARN 不同。

```
aws redshift modify-custom-domain-association ––cluster-id redshiftcluster ––custom-domain-name customdomainname ––custom-domain-certificate-arn certificatearn
```

以下示例显示了如何为 Amazon Redshift Serverless 将自定义域关联到不同的证书。

```
aws redshift-serverless modify-custom-domain-association ––workgroup-name redshiftworkgroup ––custom-domain-name customdomainname ––custom-domain-certificate-arn certificatearn
```

最多会有 30 秒的延迟，然后您才能连接到集群。部分延迟发生在 Amazon Redshift 集群更新其属性时，而在 DNS 更新时也会造成一些额外的延迟。有关 API 和每个属性设置的更多信息，请参阅 [modifyCustomDomainAssociation](https://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyCustomDomainAssociation.html)。

# 删除自定义域
<a name="connecting-connection-CNAME-delete-api"></a>

要删除自定义域名，用户必须具有执行以下操作的权限。
+ 对于预置集群：`redshift:DeleteCustomDomainAssociation`
+ 对于 Amazon Redshift Serverless 工作组：`redshiftServerless:DeleteCustomDomainAssociation`

**在控制台上**

您可以选择**操作**按钮并选择**删除自定义域名**，从而删除自定义域名。完成此操作后，您仍然可以更新工具以使用控制台中列出的端点，从而连接到服务器。

**使用 CLI 命令**

以下示例显示了如何删除自定义域名。删除操作要求您提供集群的现有自定义域名。

```
aws redshift delete-custom-domain-association ––cluster-id redshiftcluster ––custom-domain-name customdomainname
```

以下示例显示了如何删除 Amazon Redshift Serverless 工作组的自定义域名。自定义域名是必填参数。

```
aws redshift-serverless delete-custom-domain-association ––workgroup-name workgroupname ––custom-domain-name customdomainname
```

有关更多信息，请参阅 [DeleteCustomDomainAssociation](https://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteCustomDomainAssociation.html)。

# Redshift 托管的 VPC 端点
<a name="managing-cluster-cross-vpc"></a>

默认情况下，Amazon Redshift 集群或 Amazon Redshift Serverless 工作组在虚拟私有云（VPC）中进行预置。当您允许公共访问或设置互联网网关、NAT 设备或 AWS Direct Connect 连接将流量路由到集群时，可从另一个 VPC 或子网中访问该 VPC。您也可以通过设置 Redshift 托管的 VPC 端点（由 AWS PrivateLink 支持）来访问集群或工作组。

您可以将 Redshift 托管的 VPC 端点设置为包含集群或工作组的 VPC 与运行客户端工具的 VPC 之间的私有连接。如果集群或工作组位于另一个账户中，则账户拥有者（授予者）必须授予对连接账户（被授予者）的访问权限。通过这种方法，您可以访问数据仓库，而无需使用公有 IP 地址或通过互联网路由流量。

以下是允许使用 Redshift 托管的 VPC 端点进行访问的常见原因：
+ AWS 账户 A 希望允许 AWS 账户 B 中的 VPC 对集群或工作组具有访问权限。
+ AWS 账户 A 希望允许同样位于 AWS 账户 A 中的 VPC 对集群或工作组具有访问权限。
+ AWS 账户 A 希望允许 AWS 账户 A 中的 VPC 中的另一个子网对集群或工作组具有访问权限。

设置 Redshift 托管的 VPC 端点以访问其他账户中的集群或工作组的工作流如下所示：

1. 拥有者账户向其他账户授予访问权限，并指定被授权者的 AWS 账户 ID 和 VPC 标识符（或所有 VPC）。

1. 被授权者账户收到通知，告知他们有权创建 Redshift 托管的 VPC 终端节点。

1. 被授权者账户创建一个 Redshift 托管的 VPC 终端节点。

1. 被授权者账户可以使用 Redshift 托管的 VPC 端点访问拥有者账户的集群或工作组。

可以使用 Amazon Redshift 控制台、AWS CLI 或 Amazon Redshift API 执行此操作。

## 使用 Redshift 托管的 VPC 终端节点时的注意事项
<a name="managing-cluster-cross-vpc-considerations"></a>

**注意**  
要创建或修改 Redshift 托管式 VPC 端点，除了在 AWS 托管式策略 `AmazonRedshiftFullAccess` 中指定的其它权限外，IAM 策略中还需要权限 `ec2:CreateVpcEndpoint` 或 `ec2:ModifyVpcEndpoint`。

使用 Redshift 托管的 VPC 终端节点时，请牢记以下内容：
+ 如果您使用的是预置集群，集群必须为 RA3 节点类型。Amazon Redshift Serverless 工作组也可用于设置 VPC 端点。
+ 对于预调配集群，请确保对集群启用集群重新定位或多可用区。有关启用集群重新定位的要求的信息，请参阅[重新定位集群](managing-cluster-recovery.md)。有关启用多可用区的信息，请参阅[创建新集群时设置多可用区](create-cluster-multi-az.md)。
+ 确保要通过安全组访问的集群或工作组在有效端口范围 5431-5455 和 8191-8215 内。默认值为 5439。
+ 您可以修改与现有 Redshift 托管的 VPC 终端节点关联的 VPC 安全组。要修改其他设置，请删除当前 Redshift 托管 VPC 终端节点并创建一个新的端点。
+ 您可以创建的 Redshift 托管 VPC 终端节点的数量限制为您的 VPC 终端节点配额。
+ 无法从互联网访问 Redshift 托管的 VPC 终端节点。Redshift 托管的 VPC 端点只能在预置了端点的 VPC 中访问，或者在路由表和安全组允许的情况下与预置端点的 VPC 对等连接的任何 VPC 中访问。
+ 您不能使用 Amazon VPC 控制台管理 Redshift 托管的 VPC 终端节点。
+ 为预置集群创建 Redshift 托管的 VPC 端点时，您选择的 VPC 必须具有子网组。要创建子网组，请参阅[创建集群子网组](create-cluster-subnet-group.md)。
+ 如果一个可用区关闭，Amazon Redshift 不会在另一个可用区中创建新的弹性网络接口。在这种情况下，您可能需要创建新端点。

有关配额和命名约束的信息，请参阅[Amazon Redshift 资源中的配额和限制](amazon-redshift-limits.md)。

有关定价的信息，请参阅 [AWS PrivateLink 定价](https://aws.amazon.com/privatelink/pricing/)。

# 授予对 VPC 的访问权限
<a name="managing-cluster-cross-vpc-console-grantor"></a>

如果您要访问集群或工作组的 VPC 位于另一个 AWS 账户中，请确保从拥有者（授予者）账户授权它。

**允许另一个 AWS 账户中的 VPC 访问您的集群或工作组**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择**集群**。对于 Amazon Redshift Serverless，请选择**无服务器控制面板**。

1. 对于您要允许访问的集群，请通过选择集群名称查看详细信息。选择集群的**属性**选项卡。

   **授予的账户**部分显示有权访问集群的账户和相应的 VPC。对于 Amazon Redshift Serverless 工作组，请选择工作组。**授权账户**位于**数据访问权限**选项卡下。

1. 选择**授予访问权限**以显示要输入**被授权者信息**的表单以添加账户。

1. 对于 **AWS 账户 ID**，输入您授予访问权限的账户 ID。您可以授予对指定账户中特定 VPC 或所有 VPC 的访问权限。

1. 选择**授予访问权限**以授予访问权限。

# 创建 Redshift 托管的 VPC 终端节点
<a name="managing-cluster-cross-vpc-console-grantee"></a>

如果您拥有某个集群或工作组，或者您已被授予对集群或工作组的访问权限，则可以为该集群或工作组创建一个 Redshift 托管的 VPC 端点。

**要创建 Redshift 托管的 VPC 终端节点**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择**配置**。

   **配置**页面显示已创建的 Redshift 托管 VPC 终端节点。要查看端点的详细信息，请选择其名称。对于 Amazon Redshift Serverless，当您选择工作组时，VPC 端点位于**数据访问权限**选项卡下。

1. 选择**创建端点**以显示一个表单，在其中输入有关要添加的端点的信息。

1. 输入**端点名称**、12 位 **AWS 账户 ID**、端点所在的**虚拟私有云（VPC）**、**子网**和 **VPC 安全组**的值。

   **子网**中的子网定义了 Amazon Redshift 部署端点所在的子网和 IP 地址。Amazon Redshift 选择具有可用于与端点关联的网络接口的 IP 地址的子网。

   **VPC 安全组**中的安全组规则定义了您为端点授权的入站流量的端口、协议和源。您允许通过工作负载运行所在的安全组或 CIDR 范围访问所选端口。

1. 选择**创建端点**以创建端点。

创建端点后，您可以通过 Redshift 托管 VPC 端点的配置设置的**端点 URL** 中所示的 URL 来访问集群或工作组。

# VPC 中的 Redshift 资源
<a name="managing-clusters-vpc"></a>

您可以在基于 Amazon VPC 服务的 EC2-VPC 平台上，在 VPC 中启动 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组。有关更多信息，请参阅 [使用 EC2 创建集群](working-with-clusters.md#cluster-platforms)。

**注意**  
不支持在专用租赁 VPC 中启动集群和 Serverless 工作组。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[专用实例](https://docs.aws.amazon.com/vpc/latest/userguide/dedicated-instance.html)。

在 VPC 中预置资源时，您必须执行以下操作：
+ **提供有关 VPC 的信息。**

  在您的 VPC 中创建预置集群时，您必须通过创建集群子网组来提供 VPC 信息。此信息包括 VPC ID 和 VPC 中的子网列表，启动集群时，您需要提供子网组，以便 Redshift 能够在 VPC 的其中一个子网中预置您的集群。对于 Amazon Redshift Serverless，过程类似。您可以将子网直接分配给 Serverless 工作组。但是对于 Serverless，您无需创建子网组。有关在 Amazon Redshift 中创建子网组的更多信息，请参阅[Redshift 资源的子网](working-with-cluster-subnet-groups.md)。有关设置 VPC 的更多信息，请参阅《Amazon VPC 入门指南》**中的 [Amazon VPC 入门](https://docs.aws.amazon.com/AmazonVPC/latest/GettingStartedGuide/GetStarted.html)。
+  **（可选）配置辅助功能选项。**

  默认情况下，Amazon Redshift 中的预调配集群和无服务器工作组是私有的。如果您将预调配集群或无服务器工作组配置为可公开访问，Amazon Redshift 会为外部 IP 地址使用弹性 IP 地址。弹性 IP 地址是静态 IP 地址。借助弹性 IP 地址，您可以更改自己的基本配置，而不影响客户端用来连接的 IP 地址。在某些情况下（如在故障后进行恢复时），这种方法会很有用。是否创建弹性 IP 地址取决于您的可用区域重新定位设置。有两种方式：

  1. 如果您开启了可用区重新定位，并且想要启用公有访问，则不指定弹性 IP 地址。分配了一个由 Amazon Redshift 管理的弹性 IP 地址。它与您的 AWS 账户关联。

  1. 如果您已关闭可用区重新放置，且希望启用公开访问，则可以选择先在 Amazon EC2 中为 VPC 创建一个弹性 IP 地址，然后再启动 Amazon Redshift 集群或工作组。如果您未创建 IP 地址，Amazon Redshift 会提供已配置的弹性 IP 地址以用于 VPC。这个弹性 IP 地址由 Amazon Redshift 托管，并且不与您的 AWS 账户关联。

  有关更多信息，请参阅《Amazon EC2 用户指南》**中的[弹性 IP 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html)。

  在某些情况下，您可能在 VPC 中有可公开访问的集群，并且希望使用该 VPC 内的私有 IP 地址连接到此集群。如果是这样的话，则必须将下列 VPC 参数设置为 `true`：
  +  `DNS resolution` 
  +  `DNS hostnames` 

  请注意，在 Amazon Redshift Serverless 中，您无法以这种方式进行连接。

  假设您在 VPC 中有可公开访问的预置集群，但没有在 VPC 中将这些参数设置为 `true`。在这些情况下，从 VPC 内部进行的连接将解析为资源的弹性 IP 地址，而不是私有 IP 地址。建议您将这些参数设置为 `true`，并使用私有 IP 地址从该 VPC 中连接到可公开访问的集群。有关更多信息，请参阅《Amazon VPC 用户指南》** 中的[在 VPC 中使用 DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。
**注意**  
如果您在 VPC 中有可公开访问的集群且该集群为预置集群，则在您调整该集群的大小之前，从该 VPC 中发出的连接将继续使用弹性 IP 地址连接到集群。即使设置了前面的参数，也会发生此情况。从同一 VPC 中连接到可公开访问的集群时，任何新创建的集群都将遵循使用私有 IP 地址这一新行为。

   弹性 IP 地址是用于访问 VPC 外部资源的外部 IP 地址。对于预置集群，它与**公有 IP 地址**和**私有 IP 地址**（显示在 Amazon Redshift 控制台中的**节点 IP 地址**下）不相关。无论集群是否可公开访问，公有和私有集群节点 IP 地址都会显示。它们仅在某些情况下用于配置远程主机上的入口规则。在使用 Secure Shell (SSH) 连接从 Amazon EC2 实例或其他远程主机加载数据时，会发生这些情况。有关更多信息，请参阅《Amazon Redshift 数据库开发人员指南》**中的[步骤 1：检索集群公有密钥和集群节点 IP 地址](https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-remote-hosts.html#load-from-host-steps-retrieve-key-and-ips)。
**注意**  
节点 IP 地址不适用于 Redshift Serverless 工作组。

   在您创建集群或从快照还原集群时，将预置集群与弹性 IP 地址相关联的选项可用。在某些情况下，您可能需要将集群与弹性 IP 地址关联，或更改与集群关联的弹性 IP 地址。要在创建集群后附加弹性 IP 地址，请首先更新集群，使其不可公开访问，然后在同一个操作中使其可公开访问并添加弹性 IP 地址。

  有关如何使预置集群或 Amazon Redshift Serverless 工作组可公开访问并向该工作组分配弹性 IP 地址的更多信息，请参阅[使用默认或自定义安全组配置实现公开访问功能](https://docs.aws.amazon.com/redshift/latest/mgmt/rs-security-group-public-private.html#rs-security-group-public-default)。
+ **关联 VPC 安全组。**

  您可以使用 VPC 安全组授予入站访问权限。有关更多信息，请参阅[为 Amazon Redshift 集群配置安全组通信设置](https://docs.aws.amazon.com/redshift/latest/mgmt/rs-security-group-public-private.html)，其中提供了有关在客户端和预调配集群或 Amazon Redshift Serverless 工作组之间配置入站和出站规则的指南。另一个有助于您了解安全组的资源是《Amazon VPC 用户指南》**中的 [VPC 中的安全性](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)

**还原 VPC 中的预置集群或 Serverless 工作组的快照**  
只能在 VPC 内部还原 VPC 中的集群或 Serverless 工作组的快照，而不能在 VPC 外部。您可以在同一 VPC 中或您账户中的其他 VPC 中还原快照。有关 快照的更多信息，请参阅 [Amazon Redshift 快照和备份](working-with-snapshots.md)。

# 在 VPC 中创建 Redshift 预置集群或 Amazon Redshift Serverless 工作组
<a name="getting-started-cluster-in-vpc"></a>

以下介绍了如何在虚拟私有云（VPC）中部署集群或工作组的一般步骤。

**在 VPC 中创建集群或 Serverless 工作组**

1. 配置 VPC – 您可以在账户的默认 VPC（如果账户已有）中或您创建的 VPC 中创建 Redshift 资源。有关更多信息，请参阅 [使用 EC2 创建集群](working-with-clusters.md#cluster-platforms)。要创建 VPC，请参阅《Amazon VPC 用户指南》**中的 [VPC 的子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)。记下 VPC 标识符、子网和子网的可用区。您在启动集群或工作组时需要使用这些信息。
**注意**  
您必须在自己的 VPC 中至少定义一个子网，以便您在下一步中将其添加到子网组。有关将子网添加到 VPC 的更多信息，请参阅《Amazon VPC 用户指南》**中的[将子网添加到 VPC 中](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-subnets.html)。

1. 创建 Amazon Redshift 集群子网组，以指定 Amazon Redshift 集群可在 VPC 中使用的子网。对于 Redshift Serverless，您无需创建子网组，而是在创建工作组时为其分配一组子网。创建工作组时，您可以在 **Serverless 控制面板**中执行此操作。

   您可以使用 Amazon Redshift 控制台或以编程方式创建子网组。有关更多信息，请参阅 [Redshift 资源的子网](working-with-cluster-subnet-groups.md)。

1. 在您要与集群或工作组相关联的 VPC 安全组中，授予针对入站连接的访问权限。您可以允许 VPC 外部（在公共 Internet 上）的客户端连接到集群。为此，请将集群与一个授予入站访问权限的 VPC 安全组相关联。有关更多信息，请参阅 [为 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组配置安全组通信设置](rs-security-group-public-private.md)。

1. 按照以下步骤，在 Redshift 预置控制台中创建集群，或者在 Amazon Redshift Serverless 控制台中创建工作组。在**网络和安全性**中，指定您设置的**虚拟私有云（VPC）**、**集群子网组**和 **VPC 安全组**。

   

   有关介绍创建预置数据仓库集群的更详细步骤的演练，请参阅《Amazon Redshift 入门指南》**中的 [Amazon Redshift 预置数据仓库入门](https://docs.aws.amazon.com/redshift/latest/gsg/new-user.html)。有关创建 Amazon Redshift Serverless 工作组的更多信息，请参阅《Amazon Redshift 入门指南》**中的 [Amazon Redshift Serverless 数据仓库入门](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html)。

您可以按照“入门”步骤操作，通过上传示例数据并尝试示例查询来测试集群或工作组。有关更多信息，请参阅《Amazon Redshift 入门指南》**中的 [Amazon Redshift Serverless 数据仓库入门](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html)。

# VPC 安全组
<a name="managing-vpc-security-groups"></a>

在您预置 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组时，默认情况下限制访问，因此任何人都无法进行访问。要为其他用户授予入站访问权限，您可以将其与安全组关联起来。如果您处于 EC2-VPC 平台上，则可使用现有的 Amazon VPC 安全组或者定义一个新的安全组。然后，您可以将安全组关联到集群或工作组，如下所述。如果您在 EC2-Classic 平台上，则可以定义一个安全组，并将其与集群或工作组关联。有关在 EC2-Classic 平台上使用安全组的更多信息，请参阅 [Amazon Redshift 安全组](security-network-isolation.md#working-with-security-groups)。

VPC 安全组中包含一组规则，用于控制对 VPC 上实例（如您的集群）的访问。各个规则根据 IP 地址范围或其他 VPC 安全组设置访问权限。当您将 VPC 安全组与集群或工作组关联后，在 VPC 安全组中定义的规则即可控制访问权限。

您在 EC2-VPC 平台上预置的每个集群均拥有一个或多个与其关联的 Amazon VPC 安全组。Amazon VPC 提供一个名为 default 的 VPC 安全组，该安全组是在您创建 VPC 时自动创建的。如果您在创建 Redshift 资源时未指定其他 VPC 安全组，则您在 VPC 内启动的每个集群都会自动与默认 VPC 安全组关联。您可以在创建集群时将 VPC 安全组与之关联，也可以稍后通过修改该集群再将 VPC 安全组与之关联。

以下屏幕截图介绍了默认 VPC 安全组的默认规则。

![\[表中显示了安全组的入站和出站规则。每条规则都有源或目标、协议、端口范围和注释。\]](http://docs.aws.amazon.com/zh_cn/redshift/latest/mgmt/images/security_groups.png)


您可以视需要更改默认 VPC 安全组的规则。

如果默认 VPC 安全组足以满足您的需求，则无需创建更多 VPC 安全组。不过，您可以选择创建其他 VPC 安全组，以便更好地管理入站访问权限。例如，假设您正在 Amazon Redshift 集群或 Serverless 工作组上运行一项服务，并向客户提供多种不同的服务水平。如果您不希望在所有服务级别提供相同的访问权限，则可能需要创建单独的 VPC 安全组，每种服务级别一个。然后，您可以将这些 VPC 安全组与您的集群或工作组关联起来。

您可以为一个 VPC 创建最多 100 个 VPC 安全组，并将一个 VPC 安全组与多个集群和工作组关联。但请注意，可以与一个集群或工作组关联的 VPC 安全组的数量有限制。

Amazon Redshift 可将更改即时应用到 VPC 安全组。因此，如果您已将该 VPC 安全组与某个集群关联，则更新后的 VPC 安全组中的入站集群访问规则将立即应用。

您可以在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 上创建和修改 VPC 安全组。您还可以使用 AWS CLI、Amazon EC2 CLI 和 AWS Tools for Windows PowerShell 以编程方式管理 VPC 安全组。有关使用 VPC 安全组的更多信息，请参阅《Amazon VPC 用户指南》**中的[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

# 为 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组配置安全组通信设置
<a name="rs-security-group-public-private"></a>

本主题可帮助您配置安全组，以适当地路由和接收网络流量。以下是一些常见应用场景：
+ 您为 Amazon Redshift 集群或 Amazon Redshift Serverless 工作组开启了公开访问功能，但该集群并未接收流量。为此，您必须配置入站规则，以允许流量从互联网到达集群。
+ 您的集群或工作组不可公开访问，您使用 Redshift 的预配置原定设置 VPC 安全组以允许入站流量。但是，您需要使用默认安全组以外的其他安全组，而这个自定义安全组不允许入站流量。必须将其配置为允许通信。

 以下部分可帮助您为每个使用案例选择正确的响应，并说明您如何根据您的要求配置网络流量。您可以选择使用这些步骤来设置来自其他私有安全组的通信。



**注意**  
在大多数情况下，不会在 Amazon Redshift 中自动配置网络流量设置。这是因为它们可能在精细级别上有所不同，这取决于流量来源是互联网还是私有安全组，也因为安全要求各不相同。

## 使用默认或自定义安全组配置实现公开访问功能
<a name="rs-security-group-public-default"></a>

如果您正在创建集群或工作组或已经拥有集群或工作组，请执行以下配置步骤，以使它可公开访问。当您选择默认安全组或自定义安全组时，以下这一点都适用：

1. 查找网络设置：
   + 对于预调配的 Amazon Redshift 集群，选择**属性**选项卡，然后在**网络和安全设置**下，为您的集群选择 VPC。
   + 对于 Amazon Redshift Serverless 工作组，请选择**工作组配置**。从列表中选择工作组。然后，在**数据访问**下的**网络和安全**面板中，选择**编辑**。

1. 为您的 VPC 配置互联网网关和路由表。您可以通过按名称选择 VPC 开始配置。此时会打开 VPC 控制面板。要从互联网连接到可公开访问的集群或工作组，必须将互联网网关附加到路由表。您可以通过在 VPC 控制面板中选择**路由表**来进行配置。确认使用源 0.0.0.0/0 或公共 IP CIDR 设置该互联网网关的目标。路由表必须与您的集群所在的 VPC 相关联。有关为 VPC 设置互联网访问的更多信息（如此处所述），请参阅 Amazon VPC 文档中的[启用互联网访问](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#vpc-igw-internet-access)。有关配置路由表的更多信息，请参阅[配置路由表](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html)。

1. 配置互联网网关和路由表后，返回到 Redshift 的网络设置。通过选择安全组，然后选择**入站规则**，打开入站访问。选择**编辑入站规则**。

1. 根据您的要求，为一条或多条入站规则选择**协议**和**端口**，以允许来自客户端的流量。对于 RA3 集群，请在 5431-5455 或 8191-8215 范围内选择一个端口。完成后，保存每条规则。

1. 编辑**可公开访问**设置以启用它。您可以从集群或工作组的**操作**菜单中执行此操作。

当您开启可公开访问的设置时，Redshift 会创建弹性 IP 地址。它是与您的 AWS 账户关联的静态 IP 地址。VPC 外部的客户端可以使用它进行连接。

有关配置安全组的更多信息，请参阅[Amazon Redshift 安全组](security-network-isolation.md#working-with-security-groups)。

您可以通过使用客户端进行连接来测试您的规则，如果您要连接到 Amazon Redshift Serverless，请执行以下操作。完成网络配置后，使用客户端工具进行连接，例如 [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html)。使用您的 Amazon Redshift Serverless 域作为主机，输入以下内容：



```
rsql -h workgroup-name.account-id.region.amazonaws.com -U admin -d dev -p 5439
```

## 使用默认或自定义安全组配置实现私有访问功能
<a name="rs-security-group-private"></a>

 当您不通过互联网与集群或工作组通信时，它称为可*私密*访问。如果您在创建原定设置安全组时选择了该安全组，则该安全组将包含以下原定设置通信规则：
+ 入站规则，允许来自分配给此安全组的所有资源的流量。
+ 允许所有出站流量的出站规则。此规则的目标是 0.0.0.0/0。在无类别域间路由 (CIDR) 表示法中，它表示所有可能的 IP 地址。

您可以通过为集群或工作组选择安全组，在控制台中查看规则。

如果您的集群或工作组和客户端都使用原定设置安全组，则无需进行任何其它配置，即可允许网络流量。但是，如果您删除或更改了 Redshift 或客户端的原定设置安全组中的任何规则，则这不再适用。在这种情况下，您必须配置规则以允许入站和出站通信。常见的安全组配置如下：
+ 对于客户端 Amazon EC2 实例：
  + 允许客户端的 IP 地址的入站规则。
  + 一条出站规则，允许提供给 Redshift 使用的所有子网的 IP 地址范围（CIDR 块）。或者您可以指定 0.0.0.0/0，即所有 IP 地址范围。
+ 对于您的 Redshift 集群或工作组：
  + 允许客户端安全组的入站规则。
  + 允许流量达到 0.0.0.0/0 的出站规则。通常，出站规则允许所有出站流量。或者，您可以添加出站规则以允许流量到达客户端安全组。在这种可选情况下，并不总是需要出站规则，因为允许每个请求的响应流量到达实例。有关请求和响应行为的更多详细信息，请参阅《Amazon VPC 用户指南》**中的[安全组](https://docs.aws.amazon.com/vpc/latest/userguide/security-groups.html)。

如果您更改了为供 Redshift 使用而指定的任何子网或安全组的配置，则可能需要相应地更改流量规则以保持通信畅通。有关创建入站和出站规则的更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC CIDR 块](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-cidr-blocks.html)。有关从客户端连接到 Amazon Redshift 的更多信息，请参阅[在 Amazon Redshift 中配置连接](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html)。

# Redshift 资源的子网
<a name="working-with-cluster-subnet-groups"></a>

如果您要在虚拟私有云（VPC）中创建预置集群，则可以创建集群子网组。每个 VPC 可以有一个或多个子网，这是 VPC 中的一部分 IP 地址，使您能够根据安全和运营需求对资源进行分组。在创建预置集群时，您可以创建子网组以在 VPC 中指定一组子网。在**预置集群控制面板**中，您可以在**配置**下查找和编辑集群子网组。在预置集群的初始配置过程中，您可以指定子网组，Amazon Redshift 将在其中一个子网中创建集群。有关 VPC 服务的更多信息，请参阅 [Amazon VPC](https://aws.amazon.com/vpc/) 产品详细信息页面。

Amazon Redshift Serverless 工作组的子网配置与预置集群类似，不过步骤略有不同。创建和设置 Serverless 工作组时，您应为该工作组指定子网，这些子网将被添加到列表中。您可以在 **Serverless 控制面板**中选择工作组属性，来查看现有工作组的子网。子网显示在**网络和安全**属性中。有关更多信息，请参阅[创建带有命名空间的工作组](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-console-workgroups-create-workgroup-wizard.html)。

有关创建 VPC 的更多信息，请参阅 [Amazon VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/)文档。

为预置集群创建子网组之后，或为 Serverless 工作组选择子网后，您可以删除之前添加的子网，也可以添加更多子网。您可以使用控制台或 API 操作来进行这些更改。有关预置集群的 API 操作的更多信息，请参阅 [ModifyClusterSubnetGroup](https://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyClusterSubnetGroup.html)。有关适用于 Serverless 工作组的 API 操作，请参阅 [UpdateWorkgroup](https://docs.aws.amazon.com/redshift-serverless/latest/APIReference/API_UpdateWorkgroup.html)。



您可以在子网组中的一个子网上预置集群。您可以通过集群子网组在 Virtual Private Cloud (VPC) 中指定一组子网。

**警告**  
在集群维护操作期间，例如经典大小调整、暂停和恢复、多可用区故障失效或其他事件，您的预置计算节点可能会移至 Amazon Redshift 集群子网组内的另一个子网。请注意，子网组中的所有子网必须具有相同的网络 ACL 入站和出站规则，以及相同的路由表路由。这样可以确保与 Amazon Redshift 计算资源的双向连接，使得出现此类维护事件后，可以顺利地通信和运行。避免将具有不同网络 ACL 或路由表配置的子网添加到同一个 Amazon Redshift 集群子网组。  
有关配置子网的更多信息，请参阅《Amazon VPC 用户指南》中的 [VPC 的子网](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html)。有关 Redshift 多可用区部署的更多信息，请参阅《Redshift 管理指南》中的[多可用区部署](managing-cluster-multi-az.md)。《Redshift 管理指南》中还介绍了[调整集群大小](resizing-cluster.md)。

# 创建集群子网组
<a name="create-cluster-subnet-group"></a>

以下过程将为您演练如何为预置集群创建子网组。您必须定义至少一个集群子网组，才能在 VPC 中配置集群。

**为预置集群创建集群子网组**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择 **Configurations**（配置），然后选择 **Subnet groups**（子网组）。此时将显示子网组列表。

1. 选择 **Create cluster subnet group**（创建集群子网组）以显示创建页面。

1. 输入子网组的信息，包括要添加的子网。

1. 选择 **Create cluster subnet group**（创建集群子网组）创建包含您选择的子网的组。

**注意**  
有关如何创建包含一组子网的 Amazon Redshift Serverless 工作组的信息，请参阅《Amazon VPC 用户指南》中的[创建带有命名空间的工作组](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless-console-workgroups-create-workgroup-wizard.html)或[创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。

# 修改集群子网组
<a name="modify-cluster-subnet-group"></a>

创建子网组后，可以在 Amazon Redshift 控制台上修改其信息。以下过程将为您演练如何修改预置集群的子网组。

**为预置集群修改集群子网组**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择 **Configurations**（配置），然后选择 **Subnet groups**（子网组）。此时将显示子网组列表。

1. 选择要修改的子网组。

1. 对于 **Actions**（操作），选择 **Modify**（修改）以显示子网组的详细信息。

1. 更新子网组的信息。

1. 选择 **Save**（保存）以修改组。

在某些情况下，更改或删除子网需要额外的步骤。例如，这篇 AWS 知识中心文章[如何将预调配的 Amazon Redshift 集群移入不同的子网？](https://repost.aws//knowledge-center/redshift-move-subnet)介绍了涵盖移动集群的使用案例。

# 删除预置集群的集群子网组
<a name="delete-cluster-subnet-group"></a>

使用完集群子网组后，应通过删除该组进行清理。以下过程将为您演练为预置集群删除子网组的步骤。

**删除集群子网组**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择 **Configurations**（配置），然后选择 **Subnet groups**（子网组）。此时将显示子网组列表。

1. 选择要删除的子网组，然后选择 **Delete**（删除）。

**注意**  
您无法删除集群正在使用的集群子网组。

# 屏蔽 VPC 和子网的公共访问权限
<a name="block-public-access"></a>

VPC 屏蔽公共访问权限（BPA）是一种集中式安全功能，可以使用它来阻止您在 AWS 区域中拥有的 VPC 和子网中的资源通过互联网网关和仅出口互联网网关访问互联网，或从互联网进行访问。如果您在 AWS 账户中开启此功能，则默认情况下，它将影响 Amazon Redshift 使用的任何 VPC 或子网。这意味着 Amazon Redshift 会阻止公众执行所有操作。

当您开启了 VPC BPA 并想通过公共互联网使用 Amazon Redshift API 时，您必须添加一个排除项，以便在您的 VPC 或子网中使用 Amazon EC2 API。排除可以采用以下任一模式：
+ **双向**：允许进出已排除 VPC 和子网的所有互联网流量。
+ **仅出口**：允许来自已排除 VPC 和子网的出站互联网流量。进入已排除 VPC 和子网的入站互联网流量已被阻止。这仅在 BPA 设置为双向时适用。

VPC BPA 排除项将整个 VPC 或 VPC 内的特定子网指定为可公开访问。该边界内的网络接口遵守常规的 VPC 网络控制，例如安全组、路由表和网络 ACL，以决定该接口是否具有访问公共互联网的路由和权限。有关添加排除项的更多信息，请参阅《Amazon VPC 用户》**指南中的[创建和删除排除项](https://docs.aws.amazon.com//vpc/latest/userguide/security-vpc-bpa.html#security-vpc-bpa-exclusions)。

**预置集群**

子网组是同一 VPC 中子网的组合。如果预置集群的子网组位于开启了 VPC BPA 的账户中，则以下功能将被阻止：
+ 创建公有集群
+ 还原公有集群
+ 将私有集群修改为公有集群
+ 当子网组中至少有一个公有集群时，向该子网组添加已开启 VPC BPA 的子网

 **无服务器集群**

Redshift Serverless 不使用子网组。相反，每个集群都有自己的子网集。如果工作组位于开启了 VPC BPA 的账户中，则以下功能将被阻止：
+ 创建公有访问工作组
+ 将私有工作组修改为公有工作组
+ 当工作组为公有工作组时，向工作组添加已开启 VPC BPA 的子网

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

在使用 Amazon Redshift 增强型 VPC 路由时，Amazon Redshift 会强制通过基于 Amazon VPC 服务的 Virtual Private Cloud (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 安全组](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 路由。您不能将增强型 VPC 路由与 Redshift Spectrum 一起使用。有关更多信息，请参阅 [使用 Redshift Spectrum 访问 Amazon S3 存储桶](spectrum-enhanced-vpc.md)。

如果未开启增强型 VPC 路由，则 Amazon Redshift 会通过互联网路由流量，包括至 AWS 网络中的其他服务的流量。

**重要**  
由于增强型 VPC 路由影响 Amazon Redshift 访问其他资源的方式，除非您正确配置了 VPC，否则 COPY 和 UNLOAD 命令可能会失败。您必须专门在集群的 VPC 和数据资源之间创建网络路径，如下所述。

在对开启了增强型 VPC 路由的集群运行 COPY 或 UNLOAD 命令时，VPC 使用*最严格*或最具体的可用网络路径将流量路由到指定的资源。

例如，可以在您的 VPC 中配置以下路径：
+ **VPC 端点** – 对于传输到集群或工作组所在 AWS 区域中的 Amazon S3 存储桶的流量，您可以创建 VPC 端点来将流量直接传送到该存储桶。在使用 VPC 终端节点时，您可以附加端点策略来管理对 Amazon S3 的访问。有关将端点与 Redshift 结合使用的更多信息，请参阅[使用 VPC 端点控制数据库流量](enhanced-vpc-working-with-endpoints.md)。如果您使用的是 Lake Formation，则可以在 [AWS Lake Formation 和接口 VPC 端点 (AWS PrivateLink)](https://docs.aws.amazon.com/lake-formation/latest/dg/privatelink.html) 中找到有关在 VPC 和 AWS Lake Formation 之间建立私有连接的更多信息。
**注意**  
将 Redshift VPC 端点与 Amazon S3 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 路由不会产生任何额外的费用。您可能需要为某些操作支付额外的数据传输费用。其中包括在不同 AWS 区域中 UNLOAD 到 Amazon S3 之类的操作。使用公有 IP 地址从 Amazon EMR 或安全外壳 (SSH) 执行 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 端点使用路由表来控制 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 User Guide》**中的 [Create a VPC endpoint](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 更轻松地维护复制任务的端到端网络安全。有关将 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 端点仅用于访问同一 AWS 区域中的 Amazon S3 存储桶。要访问其他 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 用户指南*中的[在您的 VPC 中使用 DNS](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 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择 **Provisioned clusters dashboard**（预置集群控制面板），然后选择 **Create cluster**（创建集群）并输入 **Cluster details**（集群详细信息）属性。

1. 要显示 **Additional configurations (其他配置)** 部分，请选择关闭 **Use defaults (使用默认值)**。

1. 导航到 **Network and security**（网络和安全）部分。

1. 要开启 **Enhanced VPC routing**（增强型 VPC 路由），请选择 **Turn on**（开启）以强制集群流量通过 VPC。

1. 选择**创建集群**以创建集群。集群可能需要几分钟才可以使用。

**为 Amazon Redshift Serverless 开启增强型 VPC 路由**

1. 登录到 AWS 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)。

1. 在导航菜单上，选择 **Serverless dashboard**（Serverless 控制面板），然后选择 **Create workgroup**（创建工作组）并输入工作组的属性。

1. 导航到 **Network and security**（网络和安全）部分。

1. 选择 **Turn on enhanced VPC routing**（开启增强型 VPC 路由），通过 VPC 路由网络流量。

1. 选择 **Next**（下一步），输入工作组属性，直到 **Create**（创建）工作组。

# 使用 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 路由。

将通过 VPC 外部的 AWS 私有网络，安全地路由 Redshift Spectrum 和 Amazon S3 之间的流量。使用 Amazon 签名版本 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 存储桶中数据的访问。

预置集群上的 Redshift Spectrum 无法访问存储在下面这样的 Amazon S3 存储桶中的数据：此类存储桶使用的存储桶策略限制仅访问指定的 VPC 端点。相反，应使用限制仅访问特定委托人（例如特定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 路由的一个好处是，在 VPC 流日志中记录所有 COPY 和 UNLOAD 流量。源自 Redshift Spectrum 且传入 Amazon S3 的流量不会通过您的 VPC，因此它不会记录在 VPC 流日志中。当 Redshift Spectrum 访问 Amazon S3 中的数据时，它会在 AWS 账户和相应角色权限的上下文中执行这些操作。您可以使用 AWS CloudTrail 和 Amazon S3 中的服务器访问日志记录来记录和审计 Amazon S3 访问。

确保将 S3 IP 范围添加到您的允许列表中。要了解有关所需 S3 IP 范围的更多信息，请参阅 [Network isolation](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 安全博客文章[如何使用存储桶策略并应用深度防御来帮助保护您的 Simple Storage Service（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 的公有端点的出站流量。或者，您可以为 AWS Glue 配置接口 VPC 终端节点以访问您的 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 区域中的 Simple Storage Service（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)。