使用接口 VPC 终端节点连接到 Amazon Redshift - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用接口 VPC 终端节点连接到 Amazon Redshift

您可以使 Amazon Redshift 接口 VPC 终端节点( Amazon PrivateLink ),而不是通过互联网连接。有关 Amazon Redshift API 操作的信息,请参阅操作中的Amazon Redshift API 参考。有关 的更多信息 Amazon PrivateLink ,请参阅接口 VPC 终端节点 ( Amazon PrivateLink )中的Amazon VPC 用户指南。请注意,与集群的 JDBC/ODBC 连接不是 Amazon Redshift API 服务的一部分。

当您使用接口 VPC 终端节点时,您的 VPC 和 Amazon Redshift 之间的通信完全在Amazon网络,它可以提供更大的安全性。每个 VPC 终端节点都由您的 VPC 子网中一个或多个使用私有 IP 地址的弹性网络接口代表。有关弹性网络接口的更多信息,请参阅弹性网络接口中的适用于 Linux 实例的 Amazon EC2 用户指南。

一个接口 VPC 终端节点将您的 VPC 直接连接到 Amazon Redshift。它不使用互联网网关、网络地址转换 (NAT) 设备、Virtual Private Network (VPN) 连接或Amazon Direct Connect连接。VPC 中的实例不需要公有 IP 地址便可与 Amazon Redshift API 进行通信。

要通过 VPC 使用 Amazon Redshift,您有两种选择。一种是从 VPC 中的实例进行连接。另一种方法是将私有网络连接到您的 VPC,方法是使用Amazon VPN选项或Amazon Direct Connect。有关 的更多信息Amazon VPN选项,请参阅VPN 连接中的Amazon VPC 用户指南。有关的信息Amazon Direct Connect,请参阅创建连接中的Amazon Direct Connect用户指南

您可以创建接口 VPC 终端节点以使用Amazon Web Services Management Console或者Amazon Command Line Interface(Amazon CLI) 命令。有关更多信息,请参阅创建接口终端节点

在创建接口 VPC 终端节点后,您可以为终端节点启用私有 DNS 主机名。当您执行此操作时,默认的 Amazon Redshift 终端节点 (https://redshift.Region.amazonaws.com) 解析为您的 VPC 终端节点。

如果您不启用私有 DNS 主机名,则 Amazon VPC 将提供一个您可以使用的 DNS 终端节点名称,格式如下。

VPC_endpoint_ID.redshift.Region.vpce.amazonaws.com

有关更多信息,请参阅 。接口 VPC 终端节点 ( Amazon PrivateLink )中的Amazon VPC 用户指南

Amazon Redshift 支持调用它的所有API 操作在您的 VPC 内部。

您可以将 VPC 终端节点策略附加到 VPC 终端节点,以控制Amazon Identity and Access Management(IAM) 委托人。您还可以将安全组与 VPC 终端节点关联,以便根据网络流量的源和目标控制入站和出站访问。一个示例是一个 IP 地址范围。有关更多信息,请参阅 Amazon VPC 用户指南中的使用 VPC 终端节点控制对服务的访问

您可以为 Amazon Redshift 的 VPC 终端节点创建一个策略,在该策略中指定以下内容:

  • 可以或不能执行操作的委托人

  • 可执行的操作

  • 可对其执行操作的资源

有关更多信息,请参阅 。使用 VPC 终端节点控制对服务的访问中的Amazon VPC 用户指南

接下来,您可以找到 VPC 终端节点策略示例。

以下 VPC 终端节点策略拒绝Amazon账户123456789012使用此终端节点对资源的所有访问权限。

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

以下 VPC 终端节点策略仅允许 IAM 用户完全访问权限redshiftadmin在Amazon账户123456789012。使用终端节点拒绝所有其他 IAM 委托人进行访问。

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

以下 VPC 终端节点策略仅允许Amazon账户123456789012执行指定的 Amazon Redshift 操作。

指定的操作为 Amazon Redshift 提供等效的只读访问权限。针对指定账户拒绝 VPC 上的所有其他操作。此外,所有其他帐户都被拒绝进行任何访问。有关 Amazon Redshift 操作的列表,请参阅Amazon Redshift 的操作、资源和条件键中的IAM 用户指南。

{ "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 终端节点策略允许所有账户和委托人进行完全访问。与此同时,它拒绝任何Amazon账户123456789012到在具有集群 ID 的 Amazon Redshift 集群上执行的操作my-redshift-cluster。仍然允许其他不支持集群资源级权限的 Amazon Redshift 操作。有关 Amazon Redshift 操作及其相应资源类型的列表,请参见Amazon Redshift 的操作、资源和条件键中的IAM 用户指南。

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