启用AWS PrivateLink
本文解释了如何使用AWS PrivateLink在Databricks工作空间基础设施中的用户与其Databricks工作空间之间以及数据平面上的集群与控制平面上的核心服务之间启用私有连接。
重要的
这篇文章提到了这个术语数据平面,是Databricks平台的计算层。bob体育客户端下载在本文上下文中,数据平面指的是AWS帐户中的经典数据平面。相比之下,支持无服务器数据平面的无服务器SQL仓库(公开预览)在Databricks AWS帐户中运行。要了解BOB低频彩更多信息,请参见Serverless计算.
概述
AWS PrivateLink提供从AWS vpc和内部网络到AWS服务的私有连接,而不会将流量暴露给公共网络。E2版本平台上的Databricks工作区支持两种连接类型的PrivateLink连接:bob体育客户端下载
前端(用户到工作区):前端PrivateLink连接用于通过VPC接口端点连接Databricks web应用、REST API和Databricks connect API。
后端(数据平面到控制平面): Databricks用户管理VPC中的运行时集群数据平面)连接到Databricks工作空间的核心服务控制飞机)。集群连接到控制平面的目的有两个:REST API(例如Secrets API)和安全的集群连接继电器。由于有两个不同的目标服务,因此这种PrivateLink连接类型涉及两个不同的VPC接口端点。
您可以实现前端和后端PrivateLink连接,也可以只实现其中之一。本文讨论如何配置一种或两种PrivateLink连接类型。如果为前端和后端连接都实现了PrivateLink,则可以有选择地为工作空间强制私有连接,这意味着Databricks拒绝通过公共网络的任何连接。如果您拒绝实现这些连接类型中的任何一种,则不能强制执行此需求。
要启用PrivateLink连接,必须创建Databricks配置对象,并在现有配置对象中添加新字段。
要创建配置对象和创建(或更新)工作空间,本文将介绍如何使用帐户控制台或使用帐户API.
重要术语如下表所示。
术语 |
描述 |
---|---|
AWS PrivateLink |
一种AWS技术,提供从AWS vpc和内部网络到AWS服务的专用连接,而不会将流量暴露给公共网络。 |
前端PrivateLink |
PrivateLink连接用于用户连接到Databricks web应用程序、REST API和Databricks connect API。 |
后端PrivateLink |
|
AWS VPC端点服务 |
AWS VPC端点服务是一种基于私有链路的服务。每个Databricks控制平面(通常每个区域一个)为PrivateLink发布两个AWS VPC端点服务。工作空间VPC端点服务既适用于Databricks的前端PrivateLink连接,也适用于Databricks的后端PrivateLink REST接口连接。Databricks发布了另一个VPC端点服务安全的集群连接继电器。 |
AWS VPC端点 |
一个AWS VPC接口端点支持您的VPC与AWS PrivateLink支持的VPC端点服务之间的私有连接。您需要创建AWS VPC接口端点,并将其注册到Databricks。注册VPC端点会创建一个特定于databicks的对象,称为VPC端点注册,该对象引用AWS VPC端点。 |
数据网络配置 |
对象的重要信息Customer-managed VPC.如果您实现任何PrivateLink连接(前端或后端),您的工作空间必须使用客户管理的VPC。对于仅支持PrivateLink后端,您的网络配置需要一个额外的属性来标识后端连接的VPC端点。 |
数据库私有访问设置对象 |
描述工作空间的PrivateLink连接的Databricks对象。在工作空间创建过程中,您必须将私有访问设置对象附加到工作空间,无论是使用前端、后端还是两者都使用。它表达了您在工作区中使用AWS PrivateLink的意图。它控制您对AWS PrivateLink前端用例的设置,用于公共网络访问。它控制允许哪些VPC端点访问您的工作空间。 |
Databricks工作区配置对象 |
描述工作空间的Databricks对象。要启用PrivateLink,该对象必须引用Databricks私有访问设置对象。对于后端PrivateLink,工作空间还必须有一个Databricks网络配置对象,其中有两个额外的字段,用于指定要使用哪些VPC端点注册,一个用于控制平面的安全集群连接中继,另一个连接到工作空间以访问REST api。 |
现有PrivateLink配置对象的更新
本文主要关注创建新工作区或在工作区上启用PrivateLink的两个主要用例。您还可以使用UI或API对相关对象进行其他配置更改:
您可以升级工作区的PrivateLink支持,以添加对前端、后端或两种类型的连接的支持。添加私有访问设置对象(用户界面或API)或更新私有访问设置对象(用户界面或API).为此,使用新的设置创建一个新的网络配置,例如一个新的VPC或不同的PrivateLink支持设置,然后更新工作区以使用新的网络配置。注意,您不能删除(降级)工作空间上任何现有的前端或后端PrivateLink支持。
通过使用注册的VPC端点创建一个新的网络配置对象来添加或更新工作区的注册VPC端点,然后更新工作区的网络配置(用户界面或API).
注意,并不是所有相关的对象都可以更新。在不可能更新的地方,创建新对象并设置它们的父对象来引用新对象。以下规则同时适用于帐户控制台UI和帐户API:
对象 |
可以创建 |
可以更新 |
---|---|---|
工作空间配置 |
是的 |
是的 |
私人访问设置 |
是的 |
是的 |
网络配置 |
是的 |
没有 |
VPC端点注册 |
是的 |
没有 |
更新已存在VPC的CIDR范围,请参见更新cidr.
需求
砖的账户
砖的工作区
你的工作空间必须在一个支持E2版本平台的AWS区域bob体育客户端下载.然而,
us-west-1
即使在E2版本的平台上,区域也不支持PrivateLink。bob体育客户端下载您的Databricks工作区必须使用Customer-managed VPC来添加任何PrivateLink连接(甚至是仅前端连接)。注意,您不能使用databicks管理的VPC更新现有的工作空间,也不能将其更改为使用客户管理的VPC。
如果实现后端PrivateLink连接,则Databricks工作区必须使用安全的集群连接,这是E2版本平台上新工作区的默认设置。bob体育客户端下载若要将后端PrivateLink添加到不使用安全集群连接的旧现有工作空间,请与Databricks代表联系。
AWS帐户权限
如果您是设置PrivateLink的用户,那么您必须拥有提供Databricks工作空间和为您的工作空间提供新的VPC端点所需的所有必要的AWS权限。
网络体系结构
若要实现前端PrivateLink连接,从本地网络访问工作空间,可通过“直连”或VPN方式将本地网络的私有连接添加到AWS VPC中。
有关其他网络对象的指导,请参见步骤1:配置AWS网络对象.
步骤1:配置AWS网络对象
可以使用AWS管理控制台创建这些对象,或使用Terraform网络提供商.
配置VPC、子网和安全组。
为您的工作空间设置一个VPC(如果您还没有这样做的话)。您可以重用其他工作空间中的VPC,但必须为每个工作空间创建单独的子网。每个工作空间至少需要两个私有子网。
创建VPC,请参见创建VPCCustomer-managed VPC.如果您正在为PrivateLink更新工作空间,而不是创建新的工作空间,请注意工作空间必须已经在使用客户管理的VPC。
在VPC中,请确保已启用上述两种配置DNS主机名而且DNS解析.
确保子网的网络acl已配置双向(出站和入站)允许TCP访问这些端口0.0.0.0/0的规则:
443:用于Databricks基础设施、云数据源和图书馆存储库
3306:亚稳态
6666:私有链路
2443:仅用于合规性安全配置文件
重要的
如果您的工作空间使用遵从性安全配置文件,你也必须允许双向(出站和入站)访问端口2443,以支持安全集群连接中继的FIPS端点。
对于后端PrivateLink:
创建并配置额外的VPC子网(可选):
对于您的VPC端点,包括后端PrivateLink VPC端点和任何其他AWS服务的可选VPC端点,只要网络可以路由到VPC端点,您就可以在任何工作区子网中创建它们。
附加一个单独的路由表到您的VPC端点子网,这将不同于附加到您的工作空间子网的路由表。VPC端点子网的路由表只需要为本地VPC配置一条默认路由。
创建并配置一个额外的安全组(推荐但可选):
除了工作空间通常需要的安全组之外,还可以创建一个允许HTTPS/443和TCP/6666的单独安全组双向(出站和入站)访问两个工作区子网以及单独的VPC端点子网(如果您创建了一个)。此配置允许访问REST api的工作空间(端口443)和安全集群连接(6666)。这使得出于这两个目的共享安全组变得很容易。
重要的
如果您的工作空间使用遵从性安全配置文件,你也必须允许双向(出站和入站)访问端口2443,以支持安全集群连接中继的FIPS端点。
前端PrivateLink:
对于您的传输VPC及其子网,请确保用户环境可以访问它们。创建一个中转VPC,可以终止您的AWS直连连接或VPN网关连接,或与您的中转VPC路由可达。
如果同时启用了前端和后端PrivateLink功能,如果工作空间子网可以访问前端工作空间(web应用)VPC端点,则可以选择与后端工作空间(REST API) VPC端点共享。
为前端端点创建一个新的安全组。安全组必须允许HTTPS(端口443)双向源网络和端点子网本身的(出站和入站)访问。
步骤2:创建VPC端点
后端VPC端点
对于后端PrivateLink,需要创建两个VPC端点。一个是安全的集群连接继电器。一个是工作区,它允许数据平面调用Databricks REST api。有关使用AWS管理控制台管理VPC端点的一般文档,请参阅AWS文章在AWS管理控制台中创建VPC端点.在创建VPC端点时,设置该字段非常重要附加的设置在“AWS管理控制台”页面中创建VPC端点的名称启用DNS名称.作为术语说明,这与AWS在某些地方所指代的领域是相同的启用私有DNS或在此端点上启用私有DNS查看或编辑VPC端点时。
有关帮助您自动创建和管理VPC端点的工具,请参阅AWS文章CloudFormation:创建VPC Endpoint而且AWS命令行:create-vpc-endpoint.
您可以在多个使用相同客户管理VPC的工作空间之间共享后端VPC端点。是否跨多个工作空间共享后端VPC端点取决于您组织的AWS架构最佳实践和跨所有工作负载的总体吞吐量要求。
如果您决定跨工作空间共享这些资源,那么您必须在一个单独的子网中创建后端VPC端点,该子网可从所有工作空间的子网路由到。如需指导,请联系Databricks代表。
您还可以通过多个Databricks帐户跨工作空间共享VPC端点,只要这些工作空间共享同一个由客户管理的VPC即可。在这种情况下,您需要在每个Databricks帐户中注册VPC端点。
下面以AWS管理控制台为例进行说明。方法也可以自动执行此步骤Terraform提供VPC端点.
在AWS管理控制台中创建后端VPC端点。
去VPC端点AWS管理控制台的部分。
使用右上方帐户名称选择器旁边的区域选择器,并确认所使用的区域与将用于工作区的区域相匹配。如果需要,使用区域选择器更改区域。
创建VPC端点:
点击创建端点.
为端点指定一个名称,用于指定VPC端点的区域和用途。对于工作区VPC端点,Databricks建议包含区域和单词
工作空间
,例如databricks-us-west-2-workspace-vpce
.下服务类别,选择其他终端服务.
在服务名称字段中,粘贴服务名称。使用表格区域端点参考获取区域的两个区域服务名称。
对于您创建的第一个VPC端点,复制工作区的区域服务名称(REST API)。
点击验证服务.确认绿色框中的页面报告服务名称已验证.如果系统提示“Service name cannot be verified”错误,请检查VPC的区域、子网和新的VPC端点是否正确匹配。
在VPC字段,选择您的VPC。选择您的工作空间VPC。
在子网节中,选择一个Databricks工作区子网。相关讨论请参见步骤1:配置AWS网络对象.
在安全组节中,选择为后端连接创建的安全组步骤1:配置AWS网络对象.
单击可展开附加的设置部分。
确保端点具有启用DNS名称场启用。作为术语说明,这与AWS在某些地方所指代的领域是相同的启用私有DNS或在此端点上启用私有DNS查看或编辑VPC端点时。
点击创建端点.
重复上述步骤,并使用表格区域端点参考获取安全集群连接中继的区域服务名称。为端点指定一个名称,用于指定VPC端点的区域和用途。Databricks建议您将地区和单词包括在内
鳞状细胞癌
,例如databricks-us-west-2-scc-vpce
.
前端VPC端点
前端端点起源于您的传输VPC,通常是用户web应用访问的来源,通常是连接到内部网络的传输VPC。这通常是一个独立于工作空间数据平面VPC的VPC。虽然Databricks VPC端点服务对于前端连接和后端REST API连接是相同的共享服务,但在典型实现中,连接来自两个单独的VPC,因此需要来自每个VPC的单独的AWS VPC端点。
如果有多个“数据库”帐户,可以在多个“数据库”帐户之间共享前端VPC端点。在每个相关的Databricks帐户中注册端点。
下面以AWS管理控制台为例进行说明。方法也可以自动执行此步骤Terraform提供VPC端点.
在AWS管理控制台中创建前端VPC端点。
去VPC端点AWS管理控制台的部分。
属性旁边的区域选择器,并确认所使用的区域与之匹配transit VPC区域,在某些情况下可能与您的工作区区域不同。如果需要,使用区域选择器更改区域。
创建VPC端点:
点击创建端点.
为端点指定一个名称,用于指定VPC端点的区域和用途。对于工作区VPC端点,Databricks建议包含区域和单词
工作空间
或前端
,例如databricks-us-west-2-workspace-vpce
.下服务类别,选择其他终端服务.
在服务名称字段中,粘贴服务名称。使用表格区域端点参考查找区域服务名称。复制有标签的工作空间(包括REST API).
点击验证服务.确认绿色框中的页面报告服务名称已验证.如果系统提示“Service name cannot be verified”错误,请检查VPC的区域、子网和新的VPC端点是否正确匹配。
在VPC菜单,单击中转VPC。
在子网节,选择子网。相关讨论请参见步骤1:配置AWS网络对象.
在安全组节中,选择为前端连接创建的安全组步骤1:配置AWS网络对象.
点击创建端点.
区域端点参考
使用下表确定您所在区域的VPC端点服务域。您可以使用所在区域中的任何可用分区。
对于每个区域的行,标识为的端点服务工作空间(包括REST API)用于前端连接(用于web应用程序和REST api的用户到工作区)和后端连接(用于连接REST api)。如果您同时实现前端和后端连接,您将对这两个用例使用相同的工作区VPC端点服务。
请注意
如果您使用帐户控制台创建网络配置,则UI将工作区VPC端点作为REST api的VPC端点。
地区 |
为这些区域VPC端点服务创建VPC端点 |
---|---|
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
此区域不支持PrivateLink连接。 |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
|
工作区(包括REST API): 安全集群连接中继: |
步骤3:注册PrivateLink对象并将它们附加到工作空间
有两种方法可以执行此步骤:
使用帐户控制台
您可以使用账户控制台来注册您的VPC端点,创建并注册其他所需的工作空间资源,最后使用PrivateLink创建一个新的工作空间。
在帐户控制台中,有几种类型的对象与PrivateLink配置相关:
VPC端点注册(前端、后端或两者都需要):在AWS管理控制台中创建VPC端点后,请参见前一步骤),在“数据库”中注册,创建VPC端点注册。看到VPC端点的帐户控制台页面.
网络配置(后端VPC终端需配置):网络配置是用户管理VPC的信息。它们还包含两个后端PrivateLink配置字段。在网络配置对象中添加这两个字段。它们必须引用您在AWS中创建的两个后端VPC端点。看到用于网络配置的帐户控制台页面.如果您有一个现有的网络配置,并且希望为PrivateLink添加字段,则必须创建一个新的网络配置。
私有访问配置(前端、后端或两者都需要):工作空间的私有访问配置对象封装了一些关于AWS PrivateLink连接的设置。仅为该工作区创建一个新的私有访问设置对象,或者在同一AWS区域的多个工作区之间共享一个。这个对象有几个用途。它表达了您在工作区中使用AWS PrivateLink的意图。它控制您对AWS PrivateLink前端用例的设置,用于公共网络访问。它控制允许哪些VPC端点访问您的工作空间。
有两种方法可以使用帐户控制台为工作区定义云资源。
提前创建资源:在创建工作区之前,可以先创建相关的云资源帐户控制台的云资源区域.如果您可能无法同时执行所有步骤,或者不同的团队执行网络设置和创建工作区,那么这是非常有用的。
在工作区创建页面中,根据需要添加配置:在创建(或更新)工作区的页面上,有针对不同云资源的选择器。在大多数情况下,有一些选择器项可以让您在弹出视图中立即创建资源。例如,网络配置选择器有一个选项添加一个新的网络配置.
本文描述了如何预先创建资源,然后引用它们。如果另一种方法更适合你,你可以使用它。参见编辑器VPC端点,网络配置,私人访问设置.
步骤3a:注册VPC端点(用于前端、后端或两者)
请按照VPC端点注册管理.
对于后端PrivateLink,注册您创建的后端VPC端点,并根据它们的用途命名配置,例如add
鳞状细胞癌
用于安全的集群连接和工作空间
用于workspace (REST API) VPC端点注册。对于后端VPC端点,区域字段必须与您的工作区区域和正在注册的AWS VPC端点的区域相匹配。但是,Databricks仅在工作空间创建期间(或在使用PrivateLink更新工作空间期间)验证这一点,因此在此步骤中仔细设置区域是至关重要的。前端PrivateLink:注册在传输VPC中创建的前端VPC端点。对于前端PrivateLink,区域字段必须匹配您的传输VPC区域和AWS VPC端点的区域,用于前端连接的工作空间。
步骤3b:创建网络配置(用于后端)
请按照使用帐户控制台管理网络配置.客户管理VPC及其关联子网和安全组的详细要求请参见Customer-managed VPC.PrivateLink最重要的字段在标题下面后端私有连接.您可以在两个字段中选择您的后端VPC端点注册在上一步中创建.首先,选择VPC端点注册安全集群连接中继.对于另一种选择VPC端点注册为工作空间(REST api).
步骤3c:创建PAS对象(用于前端、后端或两者)
创建私有访问设置(PAS)对象是PrivateLink配置的重要步骤。请按照管理私人访问设置.
对于区域,请确保它与工作区的区域匹配,因为这不会立即进行验证,但如果不匹配,则工作区部署将失败。
设置启用公共访问字段,为你的工作空间配置对前端连接(web应用程序和REST api)的公共访问。
如果设置为假(默认值),前端连接只能使用PrivateLink连接访问,不能从公共互联网访问。因为在这种情况下不允许从公共网络访问,所以IP访问列表工作区不支持该特性。
如果设置为真正的,前端连接既可以从PrivateLink连接访问,也可以从公共互联网访问。您可以为工作区配置一个IP访问列表,以限制可以从公共internet(但不包括PrivateLink连接)访问web应用程序和REST api的源网络。
设置私人访问级别字段转换为最能代表允许您的工作区使用哪些VPC端点的值。
设置为账户限制与Databricks帐户中注册的VPC端点的连接。
设置为端点将连接限制到一个明确的VPC端点集合,您可以在出现的字段中输入该集合。它允许您选择已经创建的VPC端点注册。一定要包括你的前端VPC端点注册(创建VPC端点)。
步骤3d:创建或更新工作区(前端、后端或两者都有)
工作空间必须已经使用了客户管理的VPC,并且必须启用安全集群连接,这是大多数E2工作空间的情况。
下面的说明描述使用帐户控制台的工作区页面.
请按照使用帐户控制台创建工作空间创建一个工作区。请参阅那篇文章,以获得有关工作区字段(如工作区URL、区域、Unity Catalog、凭据配置和存储配置)的指导。还没有点击保存按钮。
点击高级配置查看其他字段。
对于后端PrivateLink,请选择网络配置。下虚拟私有云,在菜单中选择您创建的Databricks网络配置。
对于任何PrivateLink用法,选择私有访问设置对象。请看下面的私人联系标题。单击菜单并选择您创建的私有访问设置对象的名称。
点击保存.
在创建(或更新)工作空间之后,等待它可以使用或创建集群。工作区状态保持在status
运行
并且VPC立即发生变化。但在20分钟内,仍无法使用和创建集群。如果在此时间间隔结束之前创建或使用集群,集群将无法成功启动、失败或可能导致其他意外行为。
使用帐户API
步骤3a:注册VPC端点(前端、后端或两者)
使用帐户API 2.0,为后端VPC端点注册endpoint id。对于每一个,这将创建一个Databricks VPC端点注册。
对于后端VPC端点,如果在同一区域内有多个工作空间共享同一个由客户管理的VPC,可以选择共享AWS VPC端点。您也可以在多个Databricks帐户之间共享这些VPC端点,在这种情况下,在每个Databricks帐户中注册AWS VPC端点。
对于前端VPC端点,如果您有多个数据库帐户,可以在多个数据库帐户之间共享一个前端VPC端点。在每个相关的Databricks帐户中注册端点。
在“数据库”中注册VPC端点帖子
向/账户/ <帐户id > / vpc-endpoints
REST API端点,并在请求体中传递以下字段:
vpc_endpoint_name
:用户可见的名称,用于在Databricks中注册VPC端点。地区
: AWS区域名称aws_vpc_endpoint_id
: AWS内VPC端点的ID。它以前缀开头vpce -
.
例如:
curl -X POST -n\“https://accounts.cloud.www.neidfyre.com/api/2.0/accounts/ <帐户id > / vpc-endpoints '\- d”{"vpc_endpoint_name": "Databricks前端端点",“地区”:“us-west-2”,:“aws_vpc_endpoint_id < vpce-id >”} '
响应JSON包含一个vpc_endpoint_id
字段。如果您正在添加后端PrivateLink连接,请保存此值。此ID特定于Databricks中的此配置。在后面的步骤中创建网络配置时需要此ID (步骤3b:创建网络配置(后端)).
可能有用的相关Account API操作:
检查VPC端点注册状态- - -
状态
响应JSON中的字段表示AWS中的状态。
步骤3b:创建网络配置(后端)
请注意
如果仅实现前端连接,请跳过此步骤。虽然您必须创建网络配置,因为需要客户管理的VPC,但如果您只实现前端PrivateLink连接,则不需要对该对象进行PrivateLink更改。
对于任何PrivateLink支持,必须使用Customer-managed VPC.该特性需要创建一个网络配置对象,封装VPC、子网和安全组的ID。
对于后端PrivateLink支持,您的网络配置必须有一个特定于PrivateLink的额外字段。网络配置vpc_endpoints
字段引用您注册VPC端点时返回的特定于databicks的VPC端点id。看到步骤3a:注册VPC端点(前端、后端或两者).
在该对象中添加这两个字段:
rest_api
:将其设置为一个JSON数组,该数组只包含一个元素:您在其中注册的后端REST API VPC端点的databicks -specific ID步骤3a:注册VPC端点(前端、后端或两者).重要的
中的表注册区域端点时创建的特定于databicks的ID,请谨慎使用区域端点参考.在这个字段上设置错误的ID是一个常见的配置错误。
dataplane_relay
:将此设置为一个JSON数组,该数组只包含一个元素:您在其中注册的后端SCC VPC端点的特定于databicks的ID步骤3a:注册VPC端点(前端、后端或两者).重要的
中的表注册区域端点时创建的特定于databicks的ID,请谨慎使用区域端点参考.在这个字段上设置错误的ID是一个常见的配置错误。
您可以从请求的JSON响应中获得这些特定于databicks的VPC端点id步骤3a:注册VPC端点(前端、后端或两者),在vpc_endpoint_id
响应领域。
下面的示例创建一个引用VPC端点id的新网络配置。取代< databricks-vpce-id-for-scc >
用于安全集群连接中继的特定于databicks的VPC端点ID。取代< databricks-vpce-id-for-rest-apis >
用于REST api的特定于数据库的VPC端点ID。
curl -X POST -n\“https://accounts.cloud.www.neidfyre.com/api/2.0/accounts/ <帐户id > /网络的\- d”{"network_name": "为网络配置提供名称",:“vpc_id < aws-vpc-id >”,“subnet_ids”:(“< aws-subnet-1-id >”,“< aws-subnet-2-id >”),“security_group_ids”:(“< aws-sg-id >”)," vpc_endpoints ": {“dataplane_relay”:(“< databricks-vpce-id-for-scc >”),“rest_api”:(“< databricks-vpce-id-for-rest-apis >”]}} '
步骤3c:创建PAS配置(前端、后端或两者都有)
使用数据库帐户API 2.0创建或附加私有访问设置(PAS)对象。
私有访问设置对象支持以下场景:
仅实现前端VPC端点
仅实现后端VPC终端
同时实现前端VPC端点和后端VPC端点
对于支持任何这些PrivateLink连接场景的工作空间,必须在创建工作空间时附带一个私有访问设置对象.这可以是仅用于此工作区的新的私有访问设置对象,也可以跨同一AWS区域中的多个工作区重用和共享现有的私有访问设置对象。
该对象有两个用途:
表达您在工作区中使用AWS PrivateLink的意图。如果您打算使用前端或后端PrivateLink连接到您的工作空间,您必须在工作空间创建期间将这些对象之一附加到您的工作空间。
控制AWS PrivateLink前端用例的设置。如果您希望只使用后端PrivateLink,您可以选择设置对象的
public_access_enabled
字段真正的
.
在私有访问设置对象定义中public_access_enabled
为你的工作区配置对前端连接(web应用程序和REST api)的公共访问:
如果设置为
假
(默认值),前端连接只能使用PrivateLink连接访问,不能从公共互联网访问。因为在这种情况下不允许从公共网络访问,所以IP访问列表工作区不支持该特性。如果设置为
真正的
,前端连接既可以从PrivateLink连接访问,也可以从公共互联网访问。您可以为工作区配置一个IP访问列表,以限制可以从公共internet(但不包括PrivateLink连接)访问web应用程序和REST api的源网络。
若要创建私有访问设置对象,请创建帖子
向/账户/ <帐户id > / private-access-settings
REST API端点。请求体必须包含以下属性:
private_access_settings_name
:私有访问设置对象的人类可读的名称。地区
: AWS区域名称。public_access_enabled
:前端连接是否开放公共访问。如果真正的
,除了PrivateLink连接外,前端连接还可以进行公共访问。有关实现所需的值,请参阅上表。private_access_level
:指定哪些VPC端点可以连接到该工作空间。账户(默认)
:限制与“数据库”帐户中注册的VPC端点的连接。端点
:将连接限制在一个明确的VPC端点集合上。请参阅相关资料allowed_vpc_endpoint_ids
财产。
请注意
私有访问级别
任何
弃用。对于新的或现有的私有访问设置对象,该级别不可用。allowed_vpc_endpoint_ids
:仅在以下情况下使用private_access_level
设置为端点
.此属性指定可以连接到此工作区的VPC端点集。指定为VPC端点id的JSON数组。使用期间返回的Databricks id端点注册,而不是AWS id。
curl -X POST -n\“https://accounts.cloud.www.neidfyre.com/api/2.0/accounts/ <帐户id > / private-access-settings '\- d”{"private_access_settings_name": "Default PAS for us-west-2",“地区”:“us-west-2”,“public_access_enabled”:真的} '
响应JSON包含一个private_access_settings_id
字段。此ID特定于Databricks中的此配置。保存结果字段很重要,因为在创建工作区时将需要它。
相关的api:
步骤3d:创建或更新工作空间
工作空间必须已经使用了客户管理的VPC,并启用了安全的集群连接,这是大多数E2工作空间的情况。
创建具有PrivateLink连接的工作区的重要字段是private_access_settings_id
(你的新私有访问设置对象而且network_id
(你的新网络配置).
创建具有PrivateLink连接的工作空间:
阅读《数据手册》中的说明帐户API 2.0获取关于使用Account API创建新工作区的所有字段的指导。有关存储配置、凭据配置和客户管理密钥等所有字段的完整说明,请参见使用Account API创建一个新的工作空间.
调用创建一个新的工作区API(
帖子/账户/ {account_id} /工作区
),一定要包括private_access_settings_id
而且network_id
,例如:curl -X POST -n\“https://accounts.cloud.www.neidfyre.com/api/2.0/accounts/ < databricks-account-id > /工作区”\- d”{:“workspace_name my-company-example”,:“deployment_name my-company-example”,:“aws_region us-west-2”,:“credentials_id < aws-credentials-id >”,:“storage_configuration_id < databricks-storage-config-id >”,:“network_id < databricks-network-config-id >”,:“managed_services_customer_managed_key_id < aws-kms-managed-services-key-id >”,:“storage_customer_managed_key_id < aws-kms-notebook-workspace-storage-config-id >”,:“private_access_settings_id < private-access-settings-id >”} '
在使用PrivateLink创建或更新现有工作空间之后,必须等待工作空间才能使用或创建集群,工作空间状态保持为status
运行
并且VPC立即发生变化。但在20分钟内,仍无法使用和创建集群。如果在此时间间隔结束之前创建或使用集群,集群将无法成功启动、失败或可能导致其他意外行为。
使用起程拓殖
要使用Terraform创建底层AWS网络对象和相关的Databricks PrivateLink对象,请参阅这些Terraform提供程序:
注册VPC端点的Terraform提供者.在使用此资源之前,您必须已经创建了所需的AWS VPC端点。
要使用Terraform部署工作空间,请参阅这个Terraform提供程序:
步骤4:配置内部DNS,将用户请求重定向到web应用程序(用于前端)
您需要将用户请求重定向到web应用程序以使用前端PrivateLink连接。这需要更改用户使用或连接的网络的专用DNS。如果用户将从内部或自定义DNS范围内的内部网络访问Databricks工作空间,则必须在工作空间创建或更新后执行以下配置,以确保您的工作空间URL映射到工作空间VPC端点的私有IP。
配置内部DNS,使其将web应用程序工作空间URL映射到前端VPC端点。
使用网路资讯查询
Unix命令行工具,使用您的工作空间部署域名测试DNS解析,例如:
网路资讯查询my-workspace-name-here.cloud.www.neidfyre.com
示例响应:
非权威答案:my-workspacenamehere.cloud.www.neidfyre.com规范名称= oregon.cloud.www.neidfyre.comOregon.cloud.www.neidfyre.com规范名称= a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us- west2.amazonaws.com。名称:a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us- west2.amazonaws.com地址:44.234.192.47
前端VPC端点位于AWS区域的工作空间的DNS映射us-east-1
:
缺省情况下,DNS映射为:
myworkspace.cloud.www.neidfyre.com
映射到nvirginia.privatelink.cloud.www.neidfyre.com
.在这种情况下nvirginia
该区域中的控制平面实例的短名称。nvirginia.privatelink.cloud.www.neidfyre.com
映射到nvirginia.cloud.www.neidfyre.com
.nvirginia.cloud.www.neidfyre.com
对应AWS公共ip。
当您的DNS更改后,从您的过境VPC(前端VPC端点所在的位置),DNS映射将为:
myworkspace.cloud.www.neidfyre.com
映射到nvirginia.privatelink.cloud.www.neidfyre.com
.nvirginia.privatelink.cloud.www.neidfyre.com
VPC端点私有IP地址的映射关系。
若要将工作空间URL从本地网络映射到VPC端点的私有IP,需要执行以下操作之一:
为要使用的工作区URL配置有条件的转发AmazonDNS.
在本地DNS或内部DNS中为工作空间URL创建a记录,映射到VPC端点私有IP。
完成与启用对其他类似的启用privatelink的服务的访问类似的步骤。
您可以选择通过在内部DNS中创建a记录将工作空间URL直接映射到前端(工作空间)VPC端点私有IP,这样DNS映射看起来就像这样:
myworkspace.cloud.www.neidfyre.com
VPC端点私有IP的映射
更改内部DNS配置后,可以通过从中转VPC访问Databricks工作空间web应用程序和REST API来测试配置。在传输VPC中创建VPC,以测试配置结果。
如果您对如何将此应用于您的网络架构有疑问,请与Databricks代表联系。
步骤5:为其他AWS业务添加VPC端点(推荐,可选)
如果你正在使用安全的集群连接您可以选择将其他VPC端点添加到您的数据平面VPC中,以便您的集群可以连接到Databricks使用的AWS本地服务,例如S3、STS、Kinesis和您的工作空间访问的其他资源。
S3 VPC网关端点:只将此附加到附加到工作空间子网的路由表。如果为后端VPC端点使用推荐的单独子网和自己的路由表,则S3 VPC端点不需要附加到该特定的路由表。
VPC接口端点:在所有的工作空间子网中创建,并将其附加到工作空间安全组。请勿在后端VPC端点的子网中创建。
Kinesis VPC接口端点:像STS VPC接口端点一样,在所有的工作空间子网中创建Kinesis VPC接口端点,并将其挂载到工作空间安全组中。
如果您想锁定一个工作空间VPC,以不支持其他出站连接,那么工作空间将不能访问databicks提供的metastore(基于RDS的Hive metastore),因为AWS还不支持用于JDBC到RDS的PrivateLink流量。一种选择是,您可以在出口防火墙中配置区域databrick提供的metastore FQDN或IP,或到Internet网关的公共路由表,或用于承载NAT网关的公共子网的网络ACL。在这种情况下,到databicks提供的metastore的流量将通过公共网络。然而,如果你不想通过公共网络访问databicks管理的metastore:
您可以在自己的VPC中部署外部metastore。看到外部Apache Hive亚稳态.
你可以使用AWS胶来治疗亚瘤。Glue支持PrivateLink。看到使用AWS胶水数据目录作为一个亚矿.
您可能还想考虑是否需要访问公共库存储库,如pypi(用于python)或CRAN(用于R)。要访问这些库,要么重新考虑以完全锁定的出站模式部署,要么在体系结构中使用出口防火墙来配置所需的存储库。部署的整体架构取决于您的总体需求。如果您有任何问题,请联系Databricks代表。
使用AWS管理控制台创建AWS VPC端点,请参见AWS文章在AWS管理控制台中创建VPC端点.
有关自动化VPC端点创建和管理的工具,请参见:
Terraform资源databricks_mws_vpc_endpoint而且databricks_mws_private_access_settings.
terrraform指南部署必要的资源并启用PrivateLink连接.
关于AWS的文章CloudFormation:创建VPC Endpoint
关于AWS的文章AWS命令行:create-vpc-endpoint.