IP访问列表

使用云SaaS应用程序的企业需要限制对自己员工的访问。身份验证有助于证明用户身份,但不能强制执行用户的网络位置。从不安全的网络访问云服务可能会给企业带来安全风险,特别是当用户可能已授权访问敏感数据或个人数据时。企业网络周边应用安全策略并限制对外部服务(例如,防火墙、代理、DLP和日志记录)的访问,因此超出这些控制的访问被认为是不可信的。

例如,假设医院员工访问Databricks工作区。如果员工从办公室走到咖啡店,医院可以阻止到Databricks工作空间的连接,即使客户拥有访问web应用程序和REST API的正确凭据。

您可以配置Databricks工作空间,使员工只能通过具有安全边界的现有公司网络连接到服务。Databricks客户可以使用IP访问列表特性来定义一组已批准的IP地址。对web应用程序和REST api的所有传入访问都要求用户从授权的IP地址连接。

远程或出差的员工可以使用VPN连接到公司网络,从而访问工作空间。使用前面的示例,医院可以允许员工从咖啡店使用VPN访问Databricks工作区。

IP访问列表概览图

需求

  • IP访问列表只支持IPv4 (Internet Protocol version 4)地址。

灵活的配置

IP访问列表特性非常灵活:

  • 您自己的工作空间管理员控制允许访问的公共Internet上的IP地址集。这被称为允许列表。允许多个IP地址显式或作为整个子网(例如216.58.195.78/28)。

  • 工作空间管理员可以选择指定要阻止的IP地址或子网,即使它们包含在允许列表中。这就是所谓的块列表。如果允许的IP地址范围包括较小范围的基础架构IP地址,而这些IP地址实际上超出了实际的安全网络边界,则可以使用此特性。

  • 工作区管理员使用REST api更新允许和阻止的IP地址和子网列表。

功能细节

IP访问列表API允许Databricks管理员为工作空间配置IP允许列表和阻止列表。如果工作区禁用了该特性,则允许所有访问。支持允许列表(包含)和阻止列表(排除)。

尝试连接时:

1.首先检查所有的块列表。如果连接IP地址匹配任何阻断列表,则拒绝连接。

2.如果连接没有被阻塞列表拒绝时,IP地址与allow列表进行比较。如果工作区至少有一个允许列表,则只有IP地址与允许列表匹配时才允许连接。如果工作区没有允许列表,则允许所有IP地址。

对于所有允许列表和阻止列表的组合,工作空间最多支持1000个IP/CIDR值,其中一个CIDR作为单个值。

IP访问列表特性修改后,可能需要几分钟才能生效。

IP访问列表流程图

如何使用IP访问列表API

本文讨论可以使用API执行的最常见的任务。有关完整的REST API参考,请参见IP访问列表API 2.0.要了解如何对Databricks api进行身份验证,请参见使用Databricks个人访问令牌进行身份验证

本文中描述的端点的基本路径是https:// < databricks-instance > / api / 2.0,在那里< databricks-instance >< workspace-ID >。<数字> .gcp.www.neidfyre.comDatabricks部署的域名。

检查您的工作区是否启用了IP访问列表功能

要检查工作区是否启用了IP访问列表特性,请调用获取功能状态API得到/ workspace-conf).通过键= enableIpAccessLists作为请求的参数。

在响应中,enableIpAccessLists字段指定真正的

例如:

curl -X -nhttps:// < databricks-instance > / api / 2.0 / workspace-conf ?钥匙enableIpAccessLists

示例响应:

“enableIpAccessLists”“真正的”

为工作空间启用或禁用IP访问列表特性

要启用或禁用工作区的IP访问列表特性,请调用启用或禁用IP访问列表API补丁/ workspace-conf).

在JSON请求体中,指定enableIpAccessLists作为真正的(使)或(禁用)。

例如,要启用该特性:

curl -X PATCH -nhttps:// < databricks-instance > / api / 2.0 / workspace-conf- d”{“enableIpAccessLists”:“真正的”} '

示例响应:

“enableIpAccessLists”“真正的”

添加IP访问列表

要添加IP访问列表,请调用添加一个IP访问列表API帖子/ ip-access-lists).

在JSON请求体中,指定:

  • 标签-此列表的标签。

  • list_type——要么允许(允许列表)或(一个阻止列表,这意味着即使在允许列表中也要排除)。

  • ip_addresses- IP地址和CIDR范围的JSON数组,作为字符串值。

响应是您传入的对象的副本,但是有一些附加字段,最重要的是list_id字段。您可能希望保存该值,以便稍后更新或删除该列表。如果您没有保存它,您仍然可以在以后通过查询完整的IP访问列表来获得ID得到/ ip-access-lists端点。

例如,添加一个允许列表:

curl -X POST -nhttps:// < databricks-instance > / api / 2.0 / ip-access-lists - d”{“标签”:“办公室”,“list_type”:“允许”,“ip_addresses”:(“1.1.1.1”,“2.2.2.2/21”} '

示例响应:

“ip_access_list”“list_id”“< list-id >”“标签”“办公室”“ip_addresses”“1.1.1.1”“2.2.2.2/21”),“address_count”2“list_type”“允许”“created_at”1578423494457“created_by”6476783916686816“updated_at”1578423494457“updated_by”6476783916686816“启用”真正的

要添加一个块列表,请执行相同的操作,但是使用list_type设置为

更新IP访问列表

更新IP访问列表。

  1. 调用列出所有IP访问列表API得到/ ip-access-lists),并找到要更新的列表的ID。

  2. 调用更新一个IP访问列表API补丁/ ip-access-lists / < list-id >).

在JSON请求体中,指定至少一个要更新的值:

  • 标签-此列表的标签。

  • list_type——要么允许(允许列表)或(阻止列表,这意味着即使在允许列表中也不允许)。

  • ip_addresses- IP地址和CIDR范围的JSON数组,作为字符串值。

  • 启用—该列表是否启用。通过真正的

响应是您传入的对象的副本,其中包含用于ID和修改日期的附加字段。

例如,要更新一个列表以禁用它:

curl -X PATCH -nhttps:// < databricks-instance > / api / 2.0 / ip-access-lists / < list-id > - d'{"enabled": "false"}'

更换IP访问列表

使用实例替换IP访问列表。

  1. 调用列出所有IP访问列表API得到/ ip-access-lists),并找出要替换的列表的ID。

  2. 调用替换一个IP访问列表API/ ip-access-lists / < list-id >).

在JSON请求体中,指定:

  • 标签-此列表的标签。

  • list_type——要么允许(允许列表)或(阻止列表,这意味着即使在允许列表中也不允许)。

  • ip_addresses- IP地址和CIDR范围的JSON数组,作为字符串值。

  • 启用—该列表是否启用。通过真正的

响应是您传入的对象的副本,其中包含用于ID和修改日期的附加字段。

例如,将指定列表的内容替换为以下值:

curl -X PUT -nhttps:// < databricks-instance > / api / 2.0 / ip-access-lists / < list-id > - d”{“标签”:“办公室”,“list_type”:“允许”,“ip_addresses”:(“1.1.1.1”,“2.2.2.2/21”),“启用”:“假”} '

删除IP访问列表

删除IP访问列表。

  1. 调用列出所有IP访问列表API得到/ ip-access-lists),并找出要删除的列表的ID。

  2. 调用删除一个IP访问列表API删除/ ip-access-lists / < list-id >).

例如:

curl -X DELETE -nhttps:// < databricks-instance > / api / 2.0 / ip-access-lists / < list-id >