安全连接

VPC 隔离

AuraDB 虚拟专用云 AuraDS 企业版

AuraDB 虚拟专用云和 AuraDS 企业版运行在专用云账户 (AWS)、订阅 (Azure) 或项目 (GCP) 中,以实现部署的完全隔离。

额外的 VPC 边界使您能够在服务的一个隔离部分中运行,您的处理、网络和存储在那里得到进一步保护。

Aura 控制台运行在与 Aura 其余部分分开的单独 VPC 中。

网络访问

Aura 实例可以是公开可访问的、完全私有的,或者两者兼而有之。要配置此设置,您需要被授权访问运行和处理这些实例的基础架构部分以及用于在数据库和应用程序的 VPC 之间建立安全连接的网络。这包括能够通过云提供商的私有链路和私有终结点进行连接的能力。

如果您的 Aura 实例是公开的,则允许流量遍历公共互联网,并且可以使用正确的用户名和密码访问它们。

要使您的实例完全私有,请关闭公共流量,使用云提供商的网络,并在您的 VPC 内创建私有终结点,这为您提供了与 Aura 的私有连接。连接到您的数据库的唯一方法是从您的网络内部(您在 AWS/Azure/GCP 账户中的 VPC)使用您选择的内部 IP 地址和您创建的 DNS 记录。

要选择网络访问设置,请转到**Aura 控制台** > **安全** > **网络访问**。

私有终结点

私有终结点是您自己的 VPC 内的网络接口,只能在您的私有网络内访问。云提供商通过其网络将它们连接到 Neo4j Aura。根据设计,它们不会暴露在公共互联网上,确保关键服务只能通过私有、安全的网络访问。

单个私有链路连接适用于一个区域中的所有实例。因此,如果您为us-east-1设置了一个,那么这些网络连接将适用于该区域中的所有实例。您可以为托管在第二个区域(例如us-west-1)但仍位于同一 Aura 项目内的应用程序设置第二个私有链路连接。

AWS 私有终结点

AuraDB 虚拟专用云 AuraDS 企业版

AuraDB 虚拟专用云和 AuraDS 企业版支持使用AWS PrivateLink在 AWS 上使用私有终结点。

激活后,您可以在 VPC 中创建一个连接到 Aura 的终结点。

有关分步指南,请参阅如何使用 AWS PrivateLink 配置 Neo4j Aura博文。

VPC connectivity with AWS PrivateLink
图 1. 使用 AWS PrivateLink 的 VPC 连接

在 VPC 内运行 Neo4j 工作负载的所有应用程序都直接路由到 Aura 中的隔离环境,而无需遍历公共互联网。然后,您可以禁用公共流量,确保所有到实例的流量都保留在 VPC 内的私有状态。

  • PrivateLink 适用于该区域中的所有实例。

  • 激活后,在 Aura 控制台中,使用 PrivateLink 的任何实例磁贴上都会显示一个**私有连接**标签、盾牌图标和专用的**私有 URI**。

  • 如果您禁用公共流量,则必须使用专用 VPN 通过浏览器或 Bloom 连接到您的实例。

  • 使用私有终结点的连接是单向的。Aura VPC 无法启动到您的 VPC 的连接。

  • 在 AWS 区域 us-east-1 中,我们不支持 ID 为 use1-az3 的可用区用于私有终结点。

通过私有终结点访问浏览器和 Bloom

要通过浏览器或 Bloom 连接到您的实例,您必须使用专用 VPN。这是因为,当您禁用对实例的公共访问权限时,这将应用于所有连接,包括您在使用浏览器或 Bloom 时从计算机进行的连接。

在没有私有终结点的情况下,您可以通过互联网访问浏览器和 Bloom

Architecture overview before enabling private endpoints
图 2. 启用私有终结点之前的架构概述

当您已启用私有终结点**并且**已禁用公共互联网访问时,您将无法再通过互联网将浏览器或 Bloom 连接到您的实例

Architecture overview with private endpoints enabled and public traffic disabled
图 3. 启用私有终结点并禁用公共流量的架构概述

要继续访问浏览器和 Bloom,您可以在 VPC 中配置 VPN(虚拟专用网络),并通过 VPN 连接到浏览器和 Bloom。

要通过 VPN 访问 Bloom 和浏览器,您必须确保

  • VPN 服务器使用VPC 的 DNS 服务器

  • 您使用实例磁贴和实例详细信息中显示的**私有 URI**。它将与您之前使用的**连接 URI**不同。

Accessing Browser and Bloom over a VPN
图 4. 通过 VPN 访问浏览器和 Bloom

启用私有终结点

要使用 AWS PrivateLink 启用私有终结点

  1. 从控制台的侧边栏菜单中选择**网络访问**。

  2. 选择**新的网络访问配置**,然后按照设置说明进行操作。

您将需要一个具有创建、修改、描述和删除终结点权限的 AWS 账户。有关更多信息,请参阅AWS 文档

GCP 私有终结点

AuraDB 虚拟专用云 AuraDS 企业版

AuraDB 虚拟专用云和 AuraDS 企业版支持使用GCP Private Service Connect在 GCP 上使用私有终结点。

激活后,您可以在 VPC 中创建一个连接到 Aura 的终结点。

VPC connectivity with GCP Private Service Connect
图 5. 使用 GCP Private Service Connect 的 VPC 连接

在 VPC 内运行 Neo4j 工作负载的所有应用程序都直接路由到 Aura 中的隔离环境,而无需遍历公共互联网。然后,您可以禁用公共流量,确保所有到实例的流量都保留在 VPC 内的私有状态。

  • Private Service Connect 适用于该区域中的所有实例。

  • 激活后,在 Aura 控制台中,使用 Private Service Connect 的任何实例磁贴上都会显示一个**私有连接**标签、盾牌图标和专用的**私有 URI**。

  • 如果您禁用公共流量,则必须使用专用 VPN 通过浏览器或 Bloom 连接到您的实例。

  • 使用私有终结点的连接是单向的。Aura VPC 无法启动到您的 VPC 的连接。

通过私有终结点访问浏览器和 Bloom

要通过浏览器或 Bloom 连接到您的实例,您必须使用专用 VPN。这是因为,当您禁用对实例的公共访问权限时,这将应用于所有连接,包括您在使用浏览器或 Bloom 时从计算机进行的连接。

在没有私有终结点的情况下,您可以通过互联网访问浏览器和 Bloom

Architecture overview before enabling private endpoints
图 6. 启用私有终结点之前的架构概述

当您已启用私有终结点并已禁用公共互联网访问时,您将无法再通过互联网将浏览器或 Bloom 连接到您的实例

Architecture overview with private endpoints enabled and public traffic disabled
图 7. 启用私有终结点并禁用公共流量的架构概述

要继续访问浏览器和 Bloom,您可以在 VPC 中配置GCP Cloud VPN(虚拟专用网络),并通过 VPN 连接到浏览器和 Bloom。

要通过 VPN 访问 Bloom 和浏览器,您必须确保

  • 您已在 VPC 内部设置了GCP 响应策略区域或等效的 DNS 服务。

  • 您使用实例磁贴和实例详细信息中显示的**私有 URI**。它将与您之前使用的**连接 URI**不同。

Accessing Browser and Bloom over a VPN
图 8. 通过 VPN 访问浏览器和 Bloom

启用私有终结点

要使用 GCP Private Service Connect 启用私有终结点

  1. 从控制台的侧边栏菜单中选择**网络访问**。

  2. 选择**新的网络访问配置**,然后按照设置说明进行操作。

有关所需的权限和角色,请参阅GCP 文档

Azure 专用终结点

AuraDB 虚拟专用云 AuraDS 企业版

AuraDB Virtual Dedicated Cloud 和 AuraDS Enterprise 支持使用 Azure 私有链接 在 Azure 上创建专用终结点。

激活后,您可以在您的虚拟网络 (VNet) 中创建一个连接到 Aura 的终结点。

VNet connectivity with Azure Private Link
图 9. 使用 Azure 私有链接的 VNet 连接

所有在 VNet 内运行 Neo4j 工作负载的应用程序都将直接路由到您在 Aura 中的隔离环境,而无需穿越公共互联网。然后,您可以禁用公共流量,确保所有到实例的流量都保持对您的 VNet 私有。

  • 私有链接适用于该区域中的所有实例。

  • 激活后,在 Aura 控制台中使用私有链接的任何实例磁贴上都会显示一个 **私有连接** 标签、盾牌图标和专用的 **私有 URI**。

  • 如果您禁用公共流量,则必须使用专用 VPN 通过浏览器或 Bloom 连接到您的实例。

  • 使用专用终结点的连接是单向的。Aura VNet 无法发起连接回您的 VNet。

通过专用终结点访问浏览器和 Bloom

要通过浏览器或 Bloom 连接到您的实例,您必须使用专用 VPN。这是因为,当您禁用对实例的公共访问权限时,这将应用于所有连接,包括您在使用浏览器或 Bloom 时从计算机进行的连接。

在没有私有终结点的情况下,您可以通过互联网访问浏览器和 Bloom

Architecture overview before enabling private endpoints
图 10. 启用专用终结点之前的架构概述

当您已启用私有终结点并已禁用公共互联网访问时,您将无法再通过互联网将浏览器或 Bloom 连接到您的实例

Architecture overview with private endpoints enabled and public traffic disabled
图 11. 启用专用终结点并禁用公共流量后的架构概述

要继续访问浏览器和 Bloom,您可以在您的 VNet 中配置 VPN(虚拟专用网络)并通过 VPN 连接到浏览器和 Bloom。

要通过 VPN 访问 Bloom 和浏览器,您必须确保

  • 您已在 VNet 内部设置了 Azure 私有 DNS 或等效的 DNS 服务。

  • 您使用实例磁贴和实例详细信息中显示的**私有 URI**。它将与您之前使用的**连接 URI**不同。

Accessing Browser and Bloom over a VPN
图 12. 通过 VPN 访问浏览器和 Bloom

启用专用终结点

要使用 Azure 私有链接启用专用终结点

  1. 从控制台的侧边栏菜单中选择**网络访问**。

  2. 选择**新的网络访问配置**,然后按照设置说明进行操作。

请参阅 Azure 文档 以了解所需的权限和角色。

AuraDB Virtual Dedicated Cloud

此私有链接部分与云无关,因此适用于所有云。私有链接在您的应用程序和 AuraDB 之间提供安全的网络连接,而不会将流量暴露给公共互联网。

“私有链接”一词指的是

  • 私有服务连接 = Google Cloud 平台

  • 私有链接 = AWS

  • 私有链接 = Azure

以下步骤说明了建立私有链接连接以安全地将您的应用程序连接到 AuraDB Virtual Dedicated Cloud 环境的过程。

本示例中使用了 dbid: abcd1234 和 orch-id: 0000。这些在您的 AuraDB Virtual Dedicated Cloud 环境中有所不同。

  1. 应用程序初始化到 neo4j+s://abcd1234.production-orch-0000.neo4j.io 的驱动程序连接。

  2. 然后,网络层查询 DNS 服务器以将完全限定域名 (FQDN)(在本例中为 abcd1234.production-orch-0000.neo4j.io)解析为其相应的 IP 地址。

  3. 查询云虚拟网络私有 DNS,它根据创建的通配符 DNS A 记录将 FQDN 解析为 10.10.10.10:*.production-orch-0000.neo4j.io → 10.10.10.10

  4. 应用程序的连接被定向到 10.10.10.10,它是私有链接终结点。从那里,私有链接终结点通过私有链接将网络连接转发到私有入口。

  5. 私有入口从 FQDN 中提取 dbid 并将连接定向到相应的 Aura 实例(dbid: abcd1234)。

  6. Aura 实例通过将 Neo4j 集群路由表发送回应用程序进行响应,该表包含有关实例及其角色的信息。

  7. 根据事务类型(读或写),驱动程序选择合适的实例来执行读或写事务。代码能够以这种方式将事务定向到相应的实例。

  8. 与之前类似,查询云虚拟网络私有 DNS 并将 FQDN 解析为 10.10.10.10。应用程序的连接被发送到私有链接终结点 (10.10.10.10),该终结点通过私有链接将网络连接转发到私有入口。然后,私有入口将连接定向到 dbid: abcd1234 的 Aura 实例。

  9. 最后,写事务被接收并在 dbid: abcd1234 的 Aura 实例中执行。

表 1. 可用实例及其角色

abcd1234.production-orch-0000.neo4j.io

角色:写

abcd1234.production-orch-0000.neo4j.io

角色:读

abcd1234.production-orch-0000.neo4j.io

角色:读

支持的 TLS 密码套件

为了提高安全性,客户端通信通过 TLS v1.2 和 TLS v1.3 进行。

AuraDB 有一份在 TLS 握手期间接受的密码套件受限列表,并且不接受所有可用的密码套件。以下列表符合 IANA、OpenSSL 和 GnuTLS 库的安全建议。

TLS v1.3

  • TLS_CHACHA20_POLY1305_SHA256 (RFC8446)

  • TLS_AES_128_GCM_SHA256 (RFC8446)

  • TLS_AES_256_GCM_SHA384 (RFC8446)

TLS v1.2

  • TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (RFC5288)

  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (RFC5289)

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (RFC5289)

  • TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (RFC7905)

  • TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (RFC5288)