跳到正文
AWS Machine Learning Blog· Rahul Kulkarni·· 4 小时前AI 评分43

如何用 AWS PrivateLink 保障 Amazon Quick 从企业网络的私有访问

Securing Quick access from corporate networks with AWS PrivateLink

AI 导读

Amazon Quick 可通过 AWS PrivateLink 连接防火墙后的本地数据源,避免流量经过公网。用户侧流量走 VPC endpoints,数据抓取流量走 VPC connections,配合安全组与 endpoint 策略实现纵深防御。

正文 · AI 翻译

当企业数据位于公司防火墙之后或私有本地数据中心中时,AWS 与其之间没有直接的网络路径,尽管 Amazon Quick 中的智能体和仪表板可以查询几乎任何数据源。管理员必须确保其敏感企业数据不会暴露给公共互联网,同时又能供 AI 驱动的洞察和操作访问。

对于许多企业而言,通过公共互联网路由流量会带来不可接受的风险。HIPAA、FedRAMP 和 PCI-DSS 等监管框架通常要求敏感数据保留在受控的网络边界内。即使在合规不是首要考虑因素的情况下,暴露内部数据路径也会增加攻击面,使审计追踪复杂化,并引入可能降低用户体验的可变延迟。

本演练将向您展示如何在不经过公共互联网的情况下,将本地数据源私密地连接到 Amazon Quick。它假设您已经拥有将本地环境连接到您的虚拟私有云(VPC)的 AWS Direct Connect 或 AWS Site-to-Site VPN。在此基础上,我们配置由 AWS PrivateLink 提供支持的 VPC 端点,使 Quick 能够通过 AWS 骨干网络访问您的私有资源,然后叠加安全组和 VPC 端点策略以实现纵深防御。

到最后,您将拥有一种网络架构,使 Quick 与您的本地数据源之间的流量不经过公共互联网,从而减少攻击面,提供一致的低延迟连接,并为合规提供清晰的审计追踪。

Amazon Quick 与建立私有网络连接

Amazon Quick 是一个 AI 驱动的工作区,将搜索、分析、研究和自动化整合到单一对话式体验中。了解哪些组件会访问您的私有网络以及如何访问,决定了后续章节中的架构。

Amazon Quick 中的数据访问分为两条路径。面向用户的流量涵盖任何打开 Quick 控制台、与仪表板交互、进行 API 调用或使用 Quick Desktop 的人。所有这些都通过 VPC 端点路由(参见 VPC 端点用于用户和 API 访问),使用户会话不经过公共互联网。

数据获取流量是指 Quick 本身进入您的网络以拉取数据。这由 VPC 连接处理(参见 VPC 连接用于数据源访问),也是大部分架构决策所在。发起数据获取连接的功能和集成包括:

  • Amazon Quick Sight 通过放置在您的 VPC 中的 ENI 直接查询本地数据库(PostgreSQL、MySQL、SQL Server、Oracle 等)。这是 VPC 连接的最大使用者。
  • Amazon Quick Flows 和 Amazon Quick Automate 是独立的自动化功能。Flows 处理可重复的任务。Automate 处理复杂的多系统编排,并引入人工参与。两者都会调用操作连接器,包括私有托管在您的 VPC 中的 MCP 服务器。任何调用内部 API 的工作流都会通过此路径路由。
  • Quick Agents 支撑所有对话式交互,并可以直接调用操作连接器。当自定义智能体调用私有托管的 MCP 服务器或内部 API 时,流量会通过 VPC 连接流动。
  • Amazon Quick Index 会在 Confluence、SharePoint 和 Amazon Simple Storage Service (Amazon S3) 等已连接的数据源之上构建统一的搜索层。对于位于 VPC 内或本地环境中的数据,知识库 VPC 连接目前仅支持 Amazon Redshift。Confluence、SharePoint、Box、Google Drive、OneDrive 和 Amazon S3 等数据源目前无法使用 Quick VPC 连接(参见支持的 VPC 数据源)。你仍然可以通过存储桶策略将 Amazon S3 存储桶的访问限制在 VPC 端点内,这是一种独立的机制。
  • Amazon Quick Research 在生成带引用来源的报告时,会同时访问防火墙后的企业数据源和公共互联网数据,在访问私有数据源时使用 VPC 连接。
  • Apps in Quick 在结构化数据和操作连接器之上构建交互式 Web 应用程序,并继承与 Quick Sight 和 Flows 相同的 VPC 连接能力。
  • Quick Spaces 用于组织上述功能产生的内容,但不会自行发起数据连接。

这两条流量路径需要两种各自独立、协同工作的私有连接机制:

  • VPC 端点(AWS PrivateLink):处理面向用户的流量,例如访问 Quick 网站、发起 API 调用以及管理访问。这些端点可使用户流量不经过公共互联网。
  • VPC 连接:处理数据源流量。Amazon Quick 会深入你的 VPC(进而深入你的本地网络)从数据库、Amazon Redshift 知识库源和内部 API 获取数据。这些均在 Quick 控制台中配置。

配置私有连接

本节按顺序介绍四个构建模块:用于用户和 API 访问的 VPC 端点、用于数据源访问的 VPC 连接、用于 AWS 数据服务的 VPC 端点,以及对所需外部域名的出站访问。

前提条件

在为 Quick 配置私有连接之前,请确保满足以下条件:

  • 一个有效的 AWS 账户,并且订阅了 Amazon Quick Enterprise(VPC 连接需要 Enterprise 版本)。
  • 在部署 Quick 的 AWS 区域中已有一个现有 VPC。
  • 一个受支持的 AWS 区域。Quick 网站 VPC 端点在 AWS 中国区域和 AWS GovCloud (US) 区域中不可用。
  • 在你的本地网络与 VPC 之间建立的 AWS Direct Connect 连接或 Site-to-Site VPN。这是承载从数据中心进入 AWS 的流量的私有路径。
  • 用于创建和管理 VPC 端点、安全组以及 Quick 管理的 AWS Identity and Access Management (IAM) 权限。要创建 VPC 连接,管理员的 IAM 身份还需要将 quicksight:CreateVPCConnection、quicksight:DescribeVPCConnection、quicksight:ListVPCConnections、quicksight:UpdateVPCConnection、quicksight:DeleteVPCConnection、ec2:DescribeSubnets、ec2:DescribeVpcs、ec2:DescribeSecurityGroups、iam:ListRoles 和 iam:PassRole 限定于 VPC 连接执行角色。
  • 能够访问你所在组织的 DNS 管理(Route 53 私有托管区域或本地 DNS 转发器),因为私有 DNS 解析会将流量路由到 VPC 端点而非公共地址。

用于用户和 API 访问的 VPC 端点(AWS PrivateLink)

由 PrivateLink 提供支持的 VPC 端点处理所有发往 Amazon Quick 的面向用户的流量,包括网站、API 调用和嵌入式内容。它们使用户无需穿越公共互联网即可访问 Amazon Quick 控制台。

Architecture diagram of private access to Amazon Quick from a corporate data center through a VPC endpoint over AWS Direct Connect

图 1:通过 VPC 端点从企业数据中心私有访问 Amazon Quick

如图 1 所示:(1) 企业网络中的客户端向 Quick 发送请求;(2) 请求经 AWS Direct Connect、通过 Direct Connect 网关进入您的 VPC;(3) Quick VPC 终端节点评估终端节点策略并允许或拒绝该请求;(4) 被允许的请求通过 AWS 网络到达 Amazon Quick。

规划您的 VPC 终端节点架构

在规划终端节点架构时,首先确定部署 Quick 账户的 AWS 区域,因为 VPC 终端节点必须位于同一区域。选择跨多个可用区的子网来放置终端节点 ENI,并确保这些子网通过 Direct Connect 或 VPN 有到本地网络的路由。

设计安全组,将终端节点 ENI 上的流量限制为仅所需的端口和源范围。如果您希望所有流量都私有路由(包括 Amazon Quick 对 Amazon S3、Amazon Redshift 和 Amazon Athena 的调用),还需为这些服务规划 VPC 终端节点(参见配置数据源 VPC 终端节点)。

为 Quick 创建 VPC 终端节点

Quick 需要两个接口 VPC 终端节点才能实现完全私有访问:

  • 网站访问终端节点 – 服务名称 com.amazonaws.<region>.quicksight-website。它处理用户访问 Quick 控制台的大部分流量。Quick 网站的私有 DNS 名称与公共 URL 不同,因此您必须为 <region>.quicksight.aws.amazon.com 创建一条指向该 VPC 终端节点的 A 记录。
  • API 访问终端节点 – 服务名称 com.amazonaws.<region>.quicksight。它处理程序化 API 调用。启用私有 DNS 后,对 quicksight.<region>.amazonaws.com 的现有 API 调用会自动通过该 VPC 终端节点路由,无需额外的 DNS 配置。若需符合 FIPS 合规要求,请使用 com.amazonaws.<region>.quicksight-fips。

注意:并非每个 Quick API 都可通过 API VPC 终端节点使用。以下 13 个 API 不受支持:操作连接器 API(CreateActionConnector、DeleteActionConnector、DescribeActionConnector、DescribeActionConnectorPermissions、ListActionConnectors、SearchActionConnectors、UpdateActionConnector、UpdateActionConnectorPermissions)以及 flow API(GetFlowMetadata、GetFlowPermissions、ListFlows、SearchFlows、UpdateFlowPermissions)。以编程方式管理操作连接器或 flow 的自动化需要一个通往公共 API 终端节点的路径。参见 Quick 与接口 VPC 终端节点。

如果管理员以 IAM 用户身份通过 VPC 登录 Amazon Quick,还需要创建 AWS Management Console 终端节点:

  • com.amazonaws.<region>.console。
  • com.amazonaws.<region>.signin。

要在 Amazon Virtual Private Cloud(Amazon VPC)控制台中创建网站终端节点:

  1. 打开 Amazon VPC 控制台。在导航窗格中的 PrivateLink and Lattice 下,选择 Endpoints,然后选择 Create endpoint。
  2. 输入名称标签(例如 my-quicksight-vpc-endpoint),并将类型选择为 AWS services。
  3. 在 Services 下,搜索 com.amazonaws.<region>.quicksight 并选择 com.amazonaws.<region>.quicksight-website(图 2)。

Amazon VPC console creating an endpoint with a name tag and the Quick website endpoint service selected

图 2:命名终端节点并选择 Quick 网站终端节点服务

  1. 在 Network settings 下,选择您的 VPC。在 Additional settings 下,保持选中 Enable private DNS name。
  2. 选择至少两个可用区中的子网,然后为终端节点 ENI 选择安全组(图 3)。

Amazon VPC console endpoint network settings with VPC, private DNS, subnets, and security group selected

图 3:为终端节点选择 VPC、私有 DNS、子网和安全组

  1. 选择一个策略(参见下文的“设置 VPC 端点策略”部分),添加标签,然后选择创建端点(图 4)。

Amazon VPC console showing the endpoint policy selection before creating the endpoint

图 4:选择端点策略并创建端点

  1. 对 API 端点重复这些步骤,com.amazonaws.<region>.quicksight。

配置 DNS 解析

对于网站端点,为 <region>.quicksight.aws.amazon.com 创建一条 A 记录,并将其指向 VPC 端点的 DNS 名称。这样,当企业网络中的用户解析 Quick URL 时,流量将通过私有端点路由,而不是公共互联网。对于 API 端点,在 VPC 端点上启用私有 DNS 就足够了,因为 API 调用会自动解析到端点的私有 IP 地址。

Route 53 私有托管区仅响应来自与其关联的 VPC 内部的查询。由于您的用户从企业网络连接,请将本地 DNS 服务器配置为把对 <region>.quicksight.aws.amazon.com 的查询转发到 VPC 中的 Route 53 Resolver 入站端点(或在本地 DNS 中托管等效的记录)。最后,从企业网络验证 DNS 解析,确认请求解析到 VPC 内的私有 IP 地址而非公共地址。

要在 Route 53 中创建记录:

  1. 在 Route 53 控制台中,选择托管区,然后选择创建托管区。
  2. 对于域名,输入 <region>.quicksight.aws.amazon.com(例如,us-east-1.quicksight.aws.amazon.com)。将托管区限定在您的区域可避免覆盖其他 Quick 主机名。选择私有托管区,关联您的 VPC,然后选择创建托管区(图 5)。

Amazon Route 53 console creating a private hosted zone associated with a VPC

图 5:在 Amazon Route 53 中创建私有托管区

  1. 在新建的托管区中,选择创建记录(图 6)。

Amazon Route 53 console showing the Create record button in the new private hosted zone

图 6:在新的私有托管区中创建记录

  1. 将记录名称留空,选择记录类型 A,开启别名,选择别名指向 VPC 端点,选择您的区域和网站端点的 DNS 名称,然后选择创建记录(图 7)。

Amazon Route 53 console creating an alias A record that points to the Quick website VPC endpoint

图 7:创建指向 Quick 网站 VPC 端点的别名 A 记录

设置 VPC 端点策略

VPC 端点策略限制哪些账户或组织可以使用该端点。对于 Quick,策略可以按 AWS 账户 ID 或组织 ID 进行限定。要更改策略,请在 Amazon VPC 控制台中打开该端点,选择策略选项卡,然后选择编辑策略(图 8)。

重要限制:对于 Quick 网站端点,Principal、Action 和 Resource 字段必须全部设置为 *。条件只能针对 aws:PrincipalAccount 或 aws:OrgId 属性指定。更严格的操作级别策略仅在 API 端点上受支持。

网站端点策略示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalAccount": ["012345678901"]
                }
            }
        }
    ]
}

Amazon VPC console endpoint details page with the Policy tab open

图 8:从 VPC 端点详情页面打开端点策略

API 端点策略示例(限制为特定操作):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "quicksight:DescribeUser",
                "quicksight:ListUsers"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalAccount": ["012345678901"]
                }
            }
        }
    ]
}

Amazon VPC console editing a custom VPC endpoint policy in JSON

图 9:编辑自定义 VPC 端点策略

用于数据源访问的 VPC 连接

VPC 端点处理面向用户的流量,而 VPC 连接处理服务器端路径,即 Amazon Quick 深入您的 VPC 以访问数据库、Amazon Redshift 知识库源和内部 API。

VPC 连接的工作原理

Amazon Quick 企业版与 Amazon VPC 完全集成。当您在 Amazon Quick 中创建 VPC 连接时,实际上是向您的 VPC 子网中添加弹性网络接口(ENI)。这些 ENI 使 Quick 能够与您 VPC 内的资源交换网络流量,进而也能访问该 VPC 可达的任何内容,包括通过 Direct Connect 或 VPN 连接的本地系统。

所有标准的 VPC 安全控制措施都适用于这些流量。路由表、网络 ACL、子网和安全组对进出 Quick 流量的管理方式,与对 VPC 中任何其他实例之间流量的管理方式相同。这意味着您可以连接到:

  • 未暴露到公共互联网的私有数据库。
  • 通过 Direct Connect 或 VPN 可达的本地数据源。
  • 网络内可通过 IP 地址访问的内部 API。

为 VPC 连接的 ENI 创建一个专用安全组(例如 QuickSight-VPC)。在每个数据源的安全组上,允许来自该安全组 ID 的入站流量访问数据库端口。

针对 2023 年 4 月 27 日之前创建的 VPC 连接的说明:挂载到 Quick 网络接口的安全组不是有状态的。您必须添加一条入站规则,显式允许来自数据源安全组的返回流量通过所有端口(0–65535),因为返回数据包使用随机分配的目标端口。在该日期之后创建的连接使用标准的有状态行为。参见 安全组:入站和出站规则。

创建执行角色

Amazon Quick 不会为您创建 VPC 连接执行角色。在添加连接之前,请创建一个专用 IAM 角色(推荐),或更新一个已经信任 Quick 的现有角色,例如本文截图中所用的 aws-quicksight-service-role-v0。该角色需要:

  • 一项权限策略,授予 Quick 管理其 ENI 所需的 Amazon Elastic Compute Cloud(Amazon EC2)操作(图 10)。
  • 一项信任策略,允许 quicksight.amazonaws.com 担任该角色。只有具有此信任策略的角色才会出现在 Quick 控制台的执行角色列表中。

权限策略:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        }
    ]
}

IAM console adding Amazon EC2 network interface permissions to the VPC connection execution role

图 10:添加 VPC 连接执行角色所需的 Amazon EC2 权限

信任策略:

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

配置 VPC 连接

要在 Quick 控制台中创建 VPC 连接:

  1. 以管理员身份登录 Amazon Quick。点击右上角的个人资料图标,然后选择 Manage account(图 11)。如果没有看到此选项,说明您不是 Quick 管理员。

Amazon Quick profile menu with the Manage account option selected

图 11:从 Quick 个人资料菜单打开 Manage account

  1. 在导航窗格中,在 Security 下选择 Manage VPC connections(图 12),然后选择 Add VPC connection。

Amazon Quick Manage account page showing Manage VPC connections under Security

图 12:Manage account 页面中 Security 下的 Manage VPC connections

  1. Provide the following (Figure 13):
    1. 一个描述性的VPC 连接名称。
    2. 目标 VPC 的 VPC ID。此后无法更改。
    3. 您在上一步中创建的执行角色。
    4. 位于不同可用区的至少两个子网。
    5. 至少一个安全组 ID。
    6. (可选)如果您的数据库主机名必须通过私有 DNS 解析,请在 DNS resolver endpoints 下输入您的 Route 53 Resolver 入站端点的 IP 地址。
  2. 选择 ADD。

Amazon Quick console form for adding a VPC connection with name, VPC ID, execution role, subnets, and security group

图 13:在 Quick 控制台中添加 VPC 连接

在 Quick 完成 ENI 的预配置之前,连接状态显示为 UNAVAILABLE(不可用),之后会变为 AVAILABLE(可用)。状态为 PARTIALLY AVAILABLE(部分可用)表示其中一个 ENI 不可用,但该连接仍然可以使用。

配置数据源 VPC 端点

VPC 端点(PrivateLink,此处用于 AWS 服务 API)和 VPC 连接(放置在您的 VPC 中的 Quick ENI;请参阅用于数据源访问的 VPC 连接)是不同的机制。Quick 在为仪表板和分析检索数据时会访问其他 AWS 服务(Amazon S3、Amazon Redshift、Amazon Athena、AWS Secrets Manager)。如果您希望所有流量都保持私有,包括 Amazon Quick 对这些 AWS 服务发出的调用,请为每项服务创建接口或网关 VPC 端点:

服务 端点类型 服务名称
Amazon S3 Gateway com.amazonaws.<region>.s3
Amazon Redshift Interface com.amazonaws.<region>.redshift
Amazon Athena* Interface com.amazonaws.<region>.athena
AWS Secrets Manager Interface com.amazonaws.<region>.secretsmanager
AWS Glue Interface com.amazonaws.<region>.glue

* Athena 不支持作为 VPC 连接数据源。Athena 端点只是让 Athena API 流量保留在 AWS PrivateLink 上。

请在放置 Amazon Quick ENI 的同一个 VPC 中创建这些端点。确保路由表和安全组允许 Amazon Quick 子网与端点子网之间的流量。

启用对必需外部域名的访问

虽然 Quick 与您的本地数据源之间的数据流量保持在私有网络上,但用户的浏览器仍需要访问一组域名,用于登录、静态资源、客户端指标和集成。即使配置了 VPC 端点,不支持 VPC 端点的域名也需要出站连接,通常通过您的企业代理或防火墙。如果您的账户使用 IAM Identity Center,浏览器登录还需要公共 AWS 登录和 IAM Identity Center 端点(请参阅保护用户访问和身份联合)。

必需的外部域名

域名 用途 VPC 端点支持
<region>.quicksight.aws.amazon.com Quick 网站的大部分流量 是
quicksight.<region>.amazonaws.com Quick 公共 API 调用 是
signin.aws.amazon.com 使用 IAM 身份的账户的 AWS 控制台登录 是
<region>.signin.aws 登录 否
*.cloudfront.net 静态资源(CSS、JavaScript) 否
*.s3.<region>.amazonaws.com 报表和缩略图 是
*.execute-api.<region>.amazonaws.com 客户端指标 否
*.kinesisvideo.amazonaws.com 自动化工作流的实时流式传输 否
apis.google.com/js/api.js Google Drive 文件选择器 不适用
*.officeapps.live.com Quick 侧边栏扩展 不适用
outlook.cloud.microsoft Quick 侧边栏扩展 不适用
*.sharepoint.com Quick 侧边栏扩展 不适用
*.office.com Quick 侧边栏扩展 不适用
*.office365.com Quick 侧边栏扩展 不适用

来源: Quick 访问的域名。

配置指南:

  • 对于支持 VPC 端点的域名(Quick 网站和 API、signin.aws.amazon.com 以及 Amazon S3),请创建相应的 VPC 端点和 DNS 记录。
  • 对于不支持 VPC 端点的域名,请通过您的企业互联网出口(出站代理或防火墙)允许它们。如果用户流量通过您的 VPC 出站,请在公有子网中使用 NAT 网关。
  • 如果您的安全态势要求 URL 级别的过滤,请使用出站代理或 AWS Network Firewall 域名过滤规则,仅允许前面列出的域名。
  • 请从企业工作站(或处于相同出口路径上的实例)进行测试:针对每个域名执行 nslookup 和 curl,以确认 DNS 解析和路由。

强制实施 VPC 端点限制

在您的端点配置并测试完成后,您可以强制要求对 Quick 账户的所有访问都必须通过 VPC 端点进行,从而完全阻止一般的互联网访问。这样,用户只能通过您建立的私有路径从公司网络访问 Quick。

Quick 提供 IP 和 VPC 端点限制控制功能,可将账户访问限制在预定义的 IP 范围、VPC ID 或 VPC 端点 ID 列表内。例如,您可以创建一条规则,仅允许来自用于 Direct Connect 的 VPC 端点的访问,这意味着任何试图从公共互联网访问 Quick 的人都将被拒绝。

要通过 Quick 控制台进行配置(只有使用 IAM 凭证登录的管理员才能访问限制页面):

  1. 选择您的个人资料图标,然后选择管理账户。在安全下,选择管理 IP/VPC 限制。
  2. 在限制字段中,输入 VPC 端点 ID(例如 vpce-001122def),输入描述,然后选择添加(图 14)。
  3. 选择保存更改以应用该规则。
  4. 开启强制执行限制。

Amazon Quick IP and VPC endpoint restrictions page adding a VPC endpoint rule

图 14:在 IP 和 VPC 端点限制页面上添加 VPC 端点规则

或者,也可以通过 AWS 命令行界面(AWS CLI)进行配置:

aws quicksight update-ip-restriction \
--aws-account-id ACCOUNT_ID \
--region REGION \
--enabled \
--vpc-endpoint-id-restriction-rule-map \
vpce-001122def=CorporateVpcEndpoint

注意:UpdateIpRestriction 会替换整个规则映射。请使用 aws quicksight describe-ip-restriction 检索您当前的规则,并在更新中包含所有现有规则。

重要注意事项:

  • IP 和 VPC 端点规则适用于 Quick 的 Web、嵌入式和移动端访问,这意味着它们不会限制对公共 API 的访问。要限制来自特定来源的 API 调用,请使用带有 aws:SourceIp 或 aws:SourceVpce 条件的 IAM 策略。
  • 在启用限制之前,请确保将您自己的 IP 或 VPC 端点包含在规则中,否则您会把自己锁在外面。
  • 规则最多可能需要 10 分钟才能完全生效。
  • 您可以组合使用 IP 规则和 VPC 端点规则,满足任一规则类型的流量都将被允许。您最多可以添加 100 条 IP 和 VPC 端点规则(合计)。
  • IP 和 VPC 端点规则在您账户的所有 AWS 区域中都会强制执行,但您只能在创建 Quick 账户的 AWS 区域中添加或管理它们。
  • 如果您有公开嵌入的仪表板,一旦启用限制,它们将只能通过 VPC 端点访问。

强制执行限制后,只有通过指定 VPC 端点(或允许的 IP 范围)到达的流量才能访问您的 Quick 账户。所有其他访问都将被拒绝。

保护用户访问和身份联合

私有网络连接使流量不经过公共互联网,但它并没有回答在 Quick 中谁可以访问什么的问题。本节介绍如何集成您的企业身份提供商、控制用户预置,以及在 Quick 各组件之间实施细粒度的访问分段。

与 AWS IAM Identity Center 集成

重要提示:对于与 IAM Identity Center 集成的 Quick 账户,基于浏览器的身份验证需要访问公共 AWS 登录端点和 IAM Identity Center 端点。VPC 端点不提供此浏览器登录路径。不需要公共 IP 地址。请通过 NAT 网关或代理提供出站连接。请参阅 IAM Identity Center 用户指南中的私有访问注意事项。

Amazon Quick 使用 AWS IAM Identity Center 作为员工身份管理的中心点。IAM Identity Center 通过 SAML 2.0 进行身份验证,并通过 SCIM 2.0 实现用户和组的自动预置,连接到您现有的企业身份提供商(IdP)。这提供了:

  • 从您的 IdP 同步的自动用户预置和取消预置。
  • 组成员身份同步 – 当用户被添加到组或从组中移除时,该更改会传播到 Quick。
  • 使用现有企业凭证的单点登录(SSO)。
  • 通过代入 IAM 角色获得的临时凭证 – 无需长期有效的 Quick 专用密码。

有关将 IAM Identity Center 与您的身份提供商进行设置的分步指南,请参阅 IAM Identity Center 入门。

Quick 中基于角色的访问

Quick 支持三种基础角色,用于确定用户可以执行的操作:

  • 管理员 – 拥有完整的管理权限,包括数据源配置、VPC 连接、安全设置、用户管理和 SPICE 容量购买。
  • 作者 – 可以创建和发布仪表板、构建智能体、配置 Spaces、管理数据源、创建流和构建应用程序。
  • 读取者 – 可以查看已发布的仪表板、与智能体交互、使用已被授予访问权限的 Spaces,以及使用 Quick Research 报告。

这些角色映射到联合用户在登录时代入的 IAM 角色。通过在 IdP 中管理角色分配,您可以保持单一事实来源,明确谁拥有什么级别的访问权限。

此外,Quick 支持自定义权限配置文件,可以在账户、角色或用户级别覆盖默认角色权限。用户级权限覆盖角色级权限,而角色级权限又覆盖账户级权限。这使管理员可以在三种基础角色之外进行细粒度控制。

使用 Spaces 进行用户细分

Quick Spaces 在角色之外提供了另一层访问细分。每个 Space 都可以配置特定的用户和组权限,这意味着:

  • 包含敏感收入仪表板和财务知识库的财务团队 Space 仅对财务组开放访问。
  • 带有连接 CRM 的智能体和销售管道仪表板的销售团队 Space 仅限销售用户访问。
  • 跨职能 Space 可以在具有适当权限的多个组之间共享。

Space 级别的访问由从您的身份提供商同步的组控制,因此将新团队成员添加到相应的组会自动授予他们访问相关 Spaces 的权限。

Quick Sight 中的行级安全性

对于由结构化数据支持的仪表板,Quick Sight 支持行级安全性(RLS),用于限制每个用户或组可以看到哪些数据行。RLS 通过数据集规则进行配置,这些规则是一种权限数据集,用于将用户或组映射到其可访问的字段值。

例如,可以将区域销售仪表板配置为:

  • EMEA 销售组只能看到满足 region = 'EMEA' 的行。
  • NA 销售组只能看到满足 region = 'NA' 的行。
  • 销售副总裁可以看到所有行。

RLS 规则根据由 IAM Identity Center 确定的用户身份进行评估,这意味着控制登录的同一身份联合机制也管理数据级访问。这同样适用于传统仪表板视图和 AI 驱动的自然语言查询。相同的安全策略限制了 AI 在生成答案时可以引用的数据。

列级安全性

除了行级限制外,Quick Sight 还支持列级安全(CLS),可以对特定用户或组隐藏敏感列。例如,一个包含员工信息的数据集可以将 salary 和 SSN 列限制为仅 HR 组可访问,而其他组仍可以访问同一数据集中的非敏感列。

身份如何与私有连接关联

身份层和网络层协同工作:

  1. 公司网络上的用户通过您的 IdP → IAM Identity Center → Quick 进行身份验证。
  2. 其请求通过 VPC 端点到达 Quick(私有网络路径;参见用于用户和 API 访问的 VPC 端点)。
  3. Quick 评估其身份以确定角色、Space 访问权限以及 RLS/CLS 策略。
  4. 当 Quick 从本地数据源获取数据时,它会使用 VPC 连接(您 VPC 中的 ENI;参见用于数据源访问的 VPC 连接)通过 Direct Connect 访问数据库。
  5. 响应通过相同的私有路径返回给用户。

除了启用对所需外部域的访问中所述的登录和静态资源流量外,没有流量经过公共互联网,并且在每个环节,用户的身份都决定了他们能看到和做什么。

验证与测试

在生产环境中实施限制之前,针对每种访问模式验证端到端连接:

访问模式 测试 预期结果
网站(VPC 端点) 从公司网络执行 nslookup <region>.quicksight.aws.amazon.com 解析为您 VPC CIDR 中的私有 IP
网站(身份验证) 从公司机器访问 Quick 控制台 通过 IdP 完成登录。控制台正常加载
API(VPC 端点) 在 VPC 内执行 aws quicksight describe-account-settings 返回账户设置;Flow Logs 显示来自您 VPC 的源 IP
数据源(VPC 连接) 通过 VPC 连接创建一个指向本地数据库的测试 Quick Sight 数据源 连接测试成功。测试查询返回数据
知识库(VPC 连接) 使用 VPC 连接从 Amazon Redshift 源创建知识库,然后触发同步 同步完成。内容出现在知识库中
操作连接器(VPC 连接) 创建一个指向内部 API 的测试操作,并通过智能体调用它 操作返回预期响应
嵌入式仪表板 从内部应用加载嵌入式 Quick Sight 仪表板 仪表板正常渲染。浏览器开发者工具确认是私有 IP

监控

为了持续获得可见性,请在所有端点和 VPC 连接 ENI 上启用 VPC Flow Logs,以捕获流量元数据。监控 VPC 端点上的 CloudWatch 指标(ActiveConnections、BytesProcessed、PacketsDropped),并为连接失败或意外流量来源设置告警。这些日志还可用作合规性文档中引用的审计追踪。

常见问题排查

症状 可能原因 解决方法
公司网络无法访问 Quick 网站 DNS 未解析到 VPC 端点 验证 <region>.quicksight.aws.amazon.com 的 A 记录是否指向端点 DNS 名称,以及本地 DNS 是否将该名称转发到 Route 53 Resolver 入站端点。检查端点上的私有 DNS 设置。
启用限制后被锁定 您的 IP/端点不在允许列表中 使用具有 API 访问权限的 IAM 身份执行 update-ip-restriction CLI 命令(API 不受 IP/VPC 规则限制)来添加您的端点。
API 调用超时 安全组阻止了流量 确保端点安全组允许来自您公司 CIDR 的入站 HTTPS(端口 443)。
数据源连接失败 VPC 连接 ENI 无法访问目标 请检查 VPC 连接 ENI 上的安全组是否允许出站到数据库端口,以及数据库安全组是否允许来自 Quick 安全组的入站流量。对于 2023 年 4 月 27 日之前创建的连接,请检查入站全端口回程流量规则。检查路由表中是否存在通往本地网络的路径。
静态资源无法加载(空白页面) 外部域名被拦截 请确保您的代理或 NAT 网关允许 *.cloudfront.net,并且 *.s3.<region>.amazonaws.com 可通过 S3 VPC 端点或您的代理访问。
SSO 登录失败 登录域名不可达 请在防火墙/代理中允许 signin.aws.amazon.com 和 <region>.signin.aws。对于 IAM Identity Center 账户,还需允许公开的 AWS 登录和 IAM Identity Center 端点(参见“保护用户访问和身份联合”)。
VPC 连接状态显示为 UNAVAILABLE 执行角色配置错误 请验证执行角色具有 ec2:CreateNetworkInterface、ec2:DescribeSubnets、ec2:DescribeSecurityGroups、ec2:ModifyNetworkInterfaceAttribute 和 ec2:DeleteNetworkInterface,并且其信任策略允许 quicksight.amazonaws.com。
公开嵌入的仪表板无法访问 VPC 端点限制阻止了公开流量 已知行为:一旦启用限制,公开嵌入就需要 VPC 端点访问。可以考虑为公开消费者使用单独的端点,或禁用公开嵌入。

安全最佳实践

仅靠网络隔离或身份控制都不足以保障安全。此架构同时依赖两者:网络控制防止未授权的访问路径,而身份控制防止授权会话内的未授权数据访问。以下最佳实践旨在维持这两个层面的防护。

  • 最小权限端点策略:通过 aws:PrincipalAccount 或 aws:OrgId 限制网站端点。对于 API 端点,将策略范围限定为自动化所需的特定操作,而不是允许所有 quicksight:* 操作。
  • 分层安全组:将安全组同时应用于 VPC 端点 ENI(用户流量)和 VPC 连接 ENI(数据流量)。在端点 ENI 上,将入站 HTTPS 限制为您的企业 CIDR 范围。在 VPC 连接 ENI 上,使用专用安全组,将出站限制为仅 Quick 所需的数据库端口和目标,并在每个数据源的入站规则中引用该安全组。
  • 在所有端点 ENI 上启用 VPC Flow Logs:这些日志可捕获流量元数据,用于安全监控、异常检测和合规审计。它们还提供了监管框架对受控网络边界所要求的审计追踪。
  • 定期审计端点策略:每季度审查端点策略。使用 AWS Config 规则检测配置与基准的偏差。
  • 按敏感度隔离 VPC 连接:如果您有多个数据环境(开发、预发布、生产),请创建使用不同安全组的独立 VPC 连接,以防止跨环境访问。
  • 使用 CloudWatch 监控:对 PacketsDropped 和 ActiveConnections 指标设置告警。异常模式可能表明配置错误或有人试图进行未授权访问。

示例需求与 AWS 配置

以下示例展示了本文中的配置如何应对常见的安全网络需求。请与您的安全团队一起根据自身需求对这些方案进行评估。

需求 可支持您评估的 AWS 控制措施
敏感数据不得经过公共互联网传输 用于用户流量的 VPC 端点、用于数据流量的 VPC 连接,以及用于网络可见性的 VPC Flow Logs
用户数据隔离 VPC 连接 ENI 上的安全组以及针对敏感数据访问的行级安全
访问仅限于授权的端点 VPC 端点限制(第 4 节)、CloudTrail API 日志和 VPC Flow Logs

成本考量

组件 成本模型 预估
VPC 接口端点 $0.01/小时/可用区 + $0.01/GB 处理数据 约 $7.20/月/端点/可用区(固定)+ 数据传输
VPC 网关端点(S3) 免费 免费
VPC 连接(Quick ENI) 包含在 Quick Enterprise 中 无额外费用
NAT 网关(用于外部域名) $0.045/小时 + $0.045/GB 处理数据 约 $32/月(固定)+ 数据传输
VPC Flow Logs CloudWatch Logs 摄取费率 随流量大小而变化
Direct Connect 端口小时数 + 数据传输 随线路规模而变化

成本优化建议:

  • 在可能的情况下,S3 使用网关端点(无额外费用)而非接口端点。
  • 整合端点 ENI:每个端点只需在 Amazon Quick VPC 连接子网所在的可用区中部署 ENI。
  • 有选择地仅在端点 ENI 上启用 VPC Flow Logs,而非整个 VPC。
  • 考虑是否所有外部域名都需要 NAT 网关访问,或者针对您的流量模式,定向代理是否更具成本效益。

结语

这一架构建立了四项互补的控制措施:VPC 端点让用户流量保持私有,VPC 连接为 Quick 提供访问您数据源的私有路径,身份联合决定谁可以访问什么,而 VPC 端点限制则强制使用私有路径。每一层都可独立审计,并对应具体的合规要求(参见合规映射)。

完成这些配置后,Quick Agents 可以查询您的本地数据库,Quick Research 可以研究防火墙后的企业数据源,Quick Sight 仪表板可以可视化敏感数据,Quick Flows 可以编排内部系统——所有这些都无需您的数据经过公共互联网。AI 能力不变,暴露风险被消除。

实施时,先从面向用户和 API 访问的 VPC 端点开始,在验证用户访问无误后,再推进到用于数据源访问的 VPC 连接。仅在确认所有访问模式都能通过私有路径正常工作后,才启用 VPC 端点限制。有关身份联合设置和高级 RLS/CLS 配置,请参阅 IAM Identity Center 文档。


关于作者

来源: AWS Machine Learning Blog · aws.amazon.com