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

如何通过 AWS PrivateLink 让 Amazon Quick 从企业内网安全访问数据源

Securing Quick access from corporate networks with AWS PrivateLink

AI 导读

Amazon Quick 可通过 AWS PrivateLink 的 VPC 端点与 VPC 连接,在不经过公网的情况下访问企业防火墙后的本地数据源。用户与 API 流量走 VPC 端点,数据拉取流量走 VPC 连接,覆盖 Quick Sight 查询本地数据库、Quick Flows 与 Quick Automate 调用私有 MCP 服务器等场景。

正文 · AI 翻译

当企业数据位于企业防火墙之后或私有本地数据中心内时,即使 Amazon Quick 中的 AI 代理和仪表板可以查询几乎任何数据源,从 AWS 也没有直接网络路径可达。管理员必须确保敏感企业数据不会暴露在公共互联网上,同时又能被 AI 驱动的洞察和操作访问。

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

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

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

Amazon Quick 与建立私有网络连接

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

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

数据获取流量是指 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)以及流程 API(GetFlowMetadata、GetFlowPermissions、ListFlows、SearchFlows、UpdateFlowPermissions)。以编程方式管理操作连接器或流程的自动化需要一条通往公有 API 端点的路径。参见Quick 与接口 VPC 端点。

如果管理员通过 VPC 以 IAM 用户身份登录 Amazon Quick,还需创建 AWS 管理控制台端点:

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

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

  1. 打开 Amazon VPC 控制台。在导航窗格的 PrivateLink and Lattice 下,选择 Endpoints,然后选择 Create endpoint。
  2. 输入 Name tag(例如 my-quicksight-vpc-endpoint),并在 Type 中选择 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 Enterprise 版与 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。该角色需要:

  • 一个权限策略,授予 Amazon Elastic Compute Cloud(Amazon EC2)操作权限,供 Quick 管理其 ENI 使用(图 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。选择右上角的个人资料图标,然后选择管理账户(图 11)。如果您看不到此选项,则您不是 Quick 管理员。

Amazon Quick profile menu with the Manage account option selected

图 11:从 Quick 个人资料菜单打开管理账户

  1. 在导航窗格中,在安全下,选择管理 VPC 连接(图 12),然后选择添加 VPC 连接。

Amazon Quick Manage account page showing Manage VPC connections under Security

图 12:在管理账户页面的安全下管理 VPC 连接

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

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

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

连接状态显示为 UNAVAILABLE,直到 Quick 完成 ENI 的预置后变为 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 网关 com.amazonaws.<region>.s3
Amazon Redshift 接口 com.amazonaws.<region>.redshift
Amazon Athena* 接口 com.amazonaws.<region>.athena
AWS Secrets Manager 接口 com.amazonaws.<region>.secretsmanager
AWS Glue 接口 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. 选择您的个人资料图标,然后选择 Manage account。在 Security 下,选择 Manage IP/VPC restrictions。
  2. 在 Restriction 字段中,输入 VPC 端点 ID(例如 vpce-001122def),输入 Description,然后选择 Add(图 14)。
  3. 选择 Save changes 以应用规则。
  4. 开启 Enforce restrictions。

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

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

或者,通过 AWS Command Line Interface (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 支持三种基本角色,决定用户能做什么:

  • Admin——完整的管理访问权限,包括数据源配置、VPC 连接、安全设置、用户管理和 SPICE 容量购买。
  • Author——可以创建和发布仪表板、构建代理、配置 Spaces、管理数据源、创建流和构建应用。
  • Reader——可以查看已发布的仪表板、与代理交互、使用已获授权访问的 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 端点(私有网络路径;请参阅用于用户和 API 访问的 VPC 端点)到达 Quick。
  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 显示源 IP 来自您的 VPC
数据源(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 文档。


关于作者

Rahul Kulkarni

Rahul Kulkarni

Rahul 是 AWS 的生成式 AI 和机器学习专家,帮助金融服务机构将 AI 工作负载从实验推向生产。他尤其关注银行、投资公司和金融科技公司如何将生成式 AI 应用于研究、客户互动和知识密集型工作流。工作之余,Rahul 喜欢旅行并为波士顿红袜队加油。

Yago Tobio Souto

Yago Tobio Souto

Yago 是 AWS 驻伦敦的解决方案架构师,专攻生成式 AI、Amazon Bedrock 和智能体框架。他帮助组织将 AI 原型转化为生产就绪的解决方案。周末时,他可能正在跑步,或者探索城市……或者两者同时进行。

Muhammad Zain Akram

Muhammad Zain Akram

Zain 是 AWS 驻瑞典的解决方案架构师,专攻生成式 AI。他与客户合作,理解其业务挑战,并将其转化为安全、可扩展且能带来实际成效的解决方案。业余时间,他喜欢与家人和朋友共度时光,常常一起看电影或做饭。

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