IP访问列表
使用云SaaS应用程序的企业需要限制对自己员工的访问。身份验证有助于证明用户身份,但不能强制执行用户的网络位置。从不安全的网络访问云服务可能会给企业带来安全风险,特别是当用户可能已授权访问敏感数据或个人数据时。企业网络周边应用安全策略并限制对外部服务(例如,防火墙、代理、DLP和日志记录)的访问,因此超出这些控制的访问被认为是不可信的。
例如,假设医院员工访问Databricks工作区。如果员工从办公室走到咖啡店,医院可以阻止到Databricks工作空间的连接,即使客户拥有访问web应用程序和REST API的正确凭据。
您可以配置Databricks工作空间,使员工只能通过具有安全边界的现有公司网络连接到服务。Databricks客户可以使用IP访问列表特性来定义一组已批准的IP地址。对web应用程序和REST api的所有传入访问都要求用户从授权的IP地址连接。
远程或出差的员工可以使用VPN连接到公司网络,从而访问工作空间。使用前面的示例,医院可以允许员工从咖啡店使用VPN访问Databricks工作区。
灵活的配置
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访问列表API
本文讨论可以使用API执行的最常见的任务。有关完整的REST API参考,请参见IP访问列表API 2.0.要了解如何对Databricks api进行身份验证,请参见使用Databricks个人访问令牌进行身份验证.
本文中描述的端点的基本路径是https:// < databricks-instance > / api / 2.0
,在那里< databricks-instance >
是< workspace-ID >。<数字> .gcp.www.neidfyre.com
Databricks部署的域名。
检查您的工作区是否启用了IP访问列表功能
要检查工作区是否启用了IP访问列表特性,请调用获取功能状态API(得到/ workspace-conf
).通过键= enableIpAccessLists
作为请求的参数。
在响应中,enableIpAccessLists
字段指定真正的
或假
.
例如:
curl -X -n\https:// < databricks-instance > / api / 2.0 / workspace-conf ?钥匙=enableIpAccessLists
示例响应:
{“enableIpAccessLists”:“真正的”,}
为工作空间启用或禁用IP访问列表特性
要启用或禁用工作区的IP访问列表特性,请调用启用或禁用IP访问列表API(补丁/ workspace-conf
).
在JSON请求体中,指定enableIpAccessLists
作为真正的
(使)或假
(禁用)。
例如,要启用该特性:
curl -X PATCH -n\https:// < 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 -n\https:// < 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访问列表。
调用列出所有IP访问列表API(
得到/ ip-access-lists
),并找到要更新的列表的ID。调用更新一个IP访问列表API(
补丁/ ip-access-lists / < list-id >
).
在JSON请求体中,指定至少一个要更新的值:
标签
-此列表的标签。list_type
——要么允许
(允许列表)或块
(阻止列表,这意味着即使在允许列表中也不允许)。ip_addresses
- IP地址和CIDR范围的JSON数组,作为字符串值。启用
—该列表是否启用。通过真正的
或假
.
响应是您传入的对象的副本,其中包含用于ID和修改日期的附加字段。
例如,要更新一个列表以禁用它:
curl -X PATCH -n\https:// < databricks-instance > / api / 2.0 / ip-access-lists / < list-id > - d'{"enabled": "false"}'
更换IP访问列表
使用实例替换IP访问列表。
调用列出所有IP访问列表API(
得到/ ip-access-lists
),并找出要替换的列表的ID。调用替换一个IP访问列表API(
把/ ip-access-lists / < list-id >
).
在JSON请求体中,指定:
标签
-此列表的标签。list_type
——要么允许
(允许列表)或块
(阻止列表,这意味着即使在允许列表中也不允许)。ip_addresses
- IP地址和CIDR范围的JSON数组,作为字符串值。启用
—该列表是否启用。通过真正的
或假
.
响应是您传入的对象的副本,其中包含用于ID和修改日期的附加字段。
例如,将指定列表的内容替换为以下值:
curl -X PUT -n\https:// < 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访问列表。
调用列出所有IP访问列表API(
得到/ ip-access-lists
),并找出要删除的列表的ID。调用删除一个IP访问列表API(
删除/ ip-access-lists / < list-id >
).
例如:
curl -X DELETE -n\https:// < databricks-instance > / api / 2.0 / ip-access-lists / < list-id >