Redshift Spectrum 和增强型 VPC 路由 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Redshift Spectrum 和增强型 VPC 路由

Amazon Redshift Spectrum 不支持预置集群的增强型 VPC 路由。Amazon Redshift 增强型 VPC 路由通过 VPC 路由特定的流量。集群与 Simple Storage Service(Amazon S3)存储桶之间的所有流量都强制通过您的 Amazon VPC 传送。Redshift Spectrum 在 Amazon Redshift 拥有的 Amazon 托管资源上运行。由于这些资源位于 VPC 外部,Redshift Spectrum 不使用增强型 VPC 路由。

将通过 VPC 外部的 Amazon 私有网络,安全地路由 Redshift Spectrum 和 Amazon S3 之间的流量。使用 Amazon 签名版本 4 协议 (SIGv4) 签署正在传输的流量并使用 HTTPS 对该流量加密。此流量基于附加到 Amazon Redshift 集群的 IAM 角色进行授权。要进一步管理 Redshift Spectrum 流量,您可以修改集群的 IAM 角色以及附加到 Simple Storage Service(Amazon S3)存储桶的策略。您可能还需要配置 VPC 以允许集群访问 Amazon Glue 或 Athena,如下详述。

请注意,由于增强型 VPC 路由影响 Amazon Redshift 访问其他资源的方式,除非您正确配置了 VPC,否则查询可能会失败。有关更多信息,请参阅Amazon Redshift 中的增强型 VPC 路由,其中更详细地讨论了如何创建 VPC 端点、NAT 网关和其他联网资源以将流量引导到 Amazon S3 存储桶。

注意

Amazon Redshift Serverless 支持增强型 VPC 路由,用于查询 Amazon S3 上的外部表。

使用 Amazon Redshift Spectrum 时的注意事项

以下是使用 Redshift Spectrum 时的注意事项:

存储桶访问策略

您可以使用附加到存储桶的存储桶策略以及使用连接到集群的 IAM 角色来控制对 Simple Storage Service(Amazon S3)存储桶中数据的访问。

预置集群上的 Redshift Spectrum 无法访问存储在下面这样的 Amazon S3 存储桶中的数据:此类存储桶使用的存储桶策略限制仅访问指定的 VPC 端点。相反,应使用限制仅访问特定委托人(例如特定Amazon账户或特定用户)的存储桶策略。

对于被授予存储桶访问权限的 IAM 角色,请使用允许仅由 Amazon Redshift 服务委托人代入该角色的信任关系。该角色附加到集群时,只能在 Amazon Redshift 的上下文中使用,并且不能在集群外部共享。有关更多信息,请参阅 限制对 IAM 角色的访问。服务控制策略(SCP)也可用于进一步限制角色,请参阅《Amazon Organizations 用户指南》中的阻止 IAM 用户和角色进行指定的更改,但指定的管理员角色除外

要使用 Redshift Spectrum,不能制定任何阻止使用预签名 URL 的 IAM policy。

以下示例存储桶策略仅允许从Amazon账户 123456789012 拥有的 Redshift Spectrum 发起的流量访问指定存储桶。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "BucketPolicyForSpectrum", "Effect": "Allow", "Principal": { "AWS": ["arn:aws:iam::123456789012:role/redshift"] }, "Action": ["s3:GetObject", "s3:List*"], "Resource": ["arn:aws:s3:::examplebucket/*"], "Condition": { "StringEquals": { "aws:UserAgent": "AWS Redshift/Spectrum" } } }] }

集群 IAM 角色

附加到集群的角色应该具有信任关系,只允许 Amazon Redshift 服务代入它,如下所示。

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

您可以向集群角色添加策略,以防止 COPY 和 UNLOAD 访问特定存储桶。以下策略仅允许从 Redshift Spectrum 到指定存储桶的流量。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": ["s3:Get*", "s3:List*"], "Resource": "arn:aws:s3:::myBucket/*", "Condition": {"StringEquals": {"aws:UserAgent": "AWS Redshift/Spectrum"}} }] }

有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 Redshift Spectrum 的 IAM 策略

记录和审计 Simple Storage Service(Amazon S3)访问

使用 Amazon Redshift 增强型 VPC 路由的一个好处是,在 VPC 流日志中记录所有 COPY 和 UNLOAD 流量。源自 Redshift Spectrum 且传入 Simple Storage Service(Amazon S3)的流量不会通过您的 VPC,因此它不会记录在 VPC 流日志中。当 Redshift Spectrum 访问 Simple Storage Service(Amazon S3)中的数据时,它会在 Amazon 账户和相应角色权限的上下文中执行这些操作。您可以使用 Amazon CloudTrail 和 Simple Storage Service(Amazon S3)中的服务器访问日志记录来记录和审计 Simple Storage Service(Amazon S3)访问。

确保将 S3 IP 范围添加到您的允许列表中。要了解有关所需 S3 IP 范围的更多信息,请参阅 Network isolation(网络隔离)。

Amazon CloudTrail 日志

要跟踪 Simple Storage Service(Amazon S3)中对象的所有访问,包括 Redshift Spectrum 访问,请为 Simple Storage Service(Amazon S3)对象启用 CloudTrail 日志记录。

您可以使用 CloudTrail 来查看、搜索、下载、归档、分析和响应您的 Amazon 基础设施中的账户活动。有关更多信息,请参阅 CloudTrail 入门

预设情况下,CloudTrail 仅跟踪存储桶级别的操作。要跟踪对象级别的操作(例如 GetObject),请为每个已记录的存储桶启用数据和管理事件。

Amazon S3 服务器访问日志记录

服务器访问日志记录详细地记录对存储桶提出的各种请求。访问日志信息可能在安全和访问审计方面十分有用。有关更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的如何启用服务器访问日志记录

有关更多信息,请参阅 Amazon 安全博客文章如何使用存储桶策略并应用深度防御来帮助保护您的 Simple Storage Service(Amazon S3)数据

访问 Amazon Glue 或 Amazon Athena

Redshift Spectrum 访问您在 Amazon Glue 或 Athena 中的数据目录。另一种选择是为您的数据目录使用专用的 Hive 元存储。

要允许访问 Amazon Glue 或 Athena,请使用互联网网关或 NAT 网关配置 VPC。配置 VPC 安全组以允许 Amazon Glue 和 Athena 的公有端点的出站流量。或者,您可以为 Amazon Glue 配置接口 VPC 终端节点以访问您的 Amazon Glue Data Catalog。当您使用 VPC 接口端点时,您的 VPC 与 Amazon Glue 之间的通信会在 Amazon 网络内进行。有关更多信息,请参阅创建接口终端节点

可以在您的 VPC 中配置以下通道:

  • 互联网网关 – 要连接到 VPC 外部的 Amazon 服务,您可以将互联网网关附加到您的 VPC 子网,如 Amazon VPC 用户指南中所述。要使用 Internet 网关,您的集群必须具有一个公有 IP 地址来允许其他服务与您的集群进行通信。

  • NAT 网关 – 要连接到另一个 Amazon 区域中的 Simple Storage Service(Amazon S3)存储桶或 Amazon 网络中的另一种服务,可以配置网络地址转换(NAT)网关,如 Amazon VPC 用户指南中所述。使用此配置还可以访问 Amazon 网络外部的主机实例。

有关更多信息,请参阅 Amazon Redshift 中的增强型 VPC 路由