安全概述
本文概述了用于部署和管理Databricks帐户和工作空间的最重要的安全相关控件和配置。有关保护数据的信息,请参见数据治理指南.
请注意
本文的重点是最新(E2)版本Databricks平台。bob体育客户端下载这里描述的某些特性在尚未迁移到E2平台的遗留部署上可能不受支持。bob体育客户端下载
本文使用示例公司演示了一些场景,以比较小型和大型组织处理部署的不同之处。书中提到了虚构的大公司LargeCorp还有虚构的小公司SmallCorp.把这些例子作为一般的指导,但每个公司都是不同的。如果您有任何问题,请联系Databricks代表。
有关特定安全特性的详细信息,请参见安全和合规指南.您的Databricks代表还可以为您提供额外的安全性和遵从性文档。
安全与信任中心
的数据安全与信任中心提供有关如何将安全性构建到Databricks Lakehouse平台的每一层的信息。bob体育客户端下载安全与信任中心提供的信息使您能够在利用Databricks Lakehouse平台的同时满足您的监管需求。bob体育客户端下载在安全与信任中心中查找以下类型的信息:
平台内置的安全和治理功能的概述和列表。bob体育客户端下载
关于平台在每个云提供商上满足的遵从性标准的信息。bob体育客户端下载
尽职调查包,帮助您评估Databricks如何帮助您满足合规性和监管需求。
Databricks的隐私准则及其执行方式概述。
本文中的信息是对安全和信任中心的补充。
项目计划
与您的Databricks代表讨论您想要的功能。它们将帮助您选择定价计划(定价层)和部署类型(标准或自定义)。并非所有特性都适用于所有层、部署类型和区域。看到Databricks AWS定价页面了解功能如何与定价计划相匹配。
本文假设您的帐户使用的是平台的最新(E2)版本。bob体育客户端下载以下与安全相关的功能在某些遗留部署中可能不可用:
Customer-managed VPC:在AWS帐户的VPC中部署Databricks工作空间。需要高级计划。
安全的集群连接: vpc无开放端口,Databricks Runtime集群节点无公网IP地址。对于平台的E2版本,默认情况下启用安全集群连接。bob体育客户端下载需要高级计划。
用于托管服务的客户管理密钥:使用您管理的AWS KMS密钥对笔记本和机密数据进行加密。该特性需要Enterprise计划。
本文讨论的大多数其他与安全性相关的特性都可以在高级计划中使用。但是,有些要求企业计划:
IP访问列表:执行工作区用户的网络位置。
单点登录(SSO)适用于所有计划。
工作区
Databricks工作区是一个用于访问Databricks资产的环境。工作区组织对象(笔记本电脑,库,实验)文件夹.您的工作空间提供访问数据以及计算资源等集群而且工作.
确定您的组织需要多少工作空间,哪些团队需要协作,以及您对地理区域的需求。
像SmallCorp这样的小型组织可能只需要一个或少量的工作空间。对于一个相对独立的大公司的单个部门来说,这也可能是正确的。工作空间管理员可以是工作空间的常规用户。在某些情况下,一个独立的部门(IT/OpSec)可能会承担工作空间管理员的角色,根据企业治理策略进行部署,并管理权限、用户和组。
像LargeCorp这样的大型组织通常需要许多工作空间。LargeCorp已经有一个集中的小组(IT/OpSec)来处理所有的安全和管理功能。这个集中的小组通常会建立新的工作区,并在整个公司范围内实施安全控制。
大公司可能会创建独立工作空间的常见原因:
团队处理不同级别的机密信息,可能包括个人身份信息。通过分离工作空间,团队将不同级别的机密资产分开,而不需要额外的复杂性,如访问控制列表。例如,LargeCorp财务团队可以轻松地将其与财务相关的笔记本与其他部门使用的工作区分开存储。
简化了Databricks使用(DBUs)和云计算的计费,以收取不同的预算。
团队或数据源的地理区域变化。一个地区的团队可能更喜欢基于不同地区的云资源,考虑成本、网络延迟或法律合规性。每个工作区都可以在不同的受支持区域中定义。
工作区数据平面vpc可以位于AWS区域ap-northeast-1
,ap-northeast-2
,ap-south-1
,ap-southeast-1
,ap-southeast-2
,ca-central-1
,一来就
,eu-west-2
,eu-central-1
,us-east-1
,us-east-2
,us-west-1
,us-west-2
.
重要的
不能使用VPCus-west-1
如果你想用的话customer-managed键为加密。
尽管工作空间是按团队、项目或地理位置隔离资源访问的常用方法,但还有其他选择。有关Databricks上的数据治理的概述,请参见数据治理指南.
规划vpc
AWS虚拟私有云(VPC)允许您提供AWS云的逻辑隔离部分,您可以在虚拟网络中启动AWS资源。VPC是Databricks集群的网络位置。默认情况下,Databricks为其工作空间创建并管理一个VPC。
使用Customer-managed VPC特性,您可以提供您自己的客户管理的VPC,为您的工作空间托管集群。您可以控制您的IP地址范围、子网、路由表和NAT网关。
SmallCorp可能只有一个由客户管理的VPC用于Databricks工作空间。如果有两个或三个工作区,根据网络架构和区域的不同,它们可能与多个工作区共享一个VPC,也可能不共享。或者,SmallCorp可以选择使用Databricks创建和管理的VPC,在这种情况下,Databricks自动创建VPC,但需要为SmallCorp提供的跨帐户IAM角色分配更多权限。
如果您的组织比较大,您可能希望创建并指定一个由客户管理的VPC供Databricks使用。您可以让多个工作区共享一个VPC,以简化AWS资源分配。或者,如果您的组织在不同的AWS帐户和不同的区域中有vpc,则可以以不同的方式分配工作区和vpc。
LargeCorp这样的大公司可能会将多个工作区分组在一个VPC中,原因之一是通过VPC集中配置类似的出口规则。例如,可能有五个部门使用相似的数据源,因此它们共享同一个VPC。然而,财务团队中的数据分析师可能需要特殊的网络访问特殊的内部数据库,这对于降低未经授权访问的风险至关重要。通过在不同的vpc(可能在不同的AWS帐户中)中对团队进行分组和隔离,相应的云NAT或防火墙设备可以在网络级别上允许或阻止数据源。
在设计网络体系结构并决定是否跨工作空间共享vpc时,请考虑如何锁定从集群节点到各个数据源的出口网络连接。
创建工作区
你可以使用账户控制台或者是帐户API 2.0创建新的工作空间。或者,您可以使用自动化的模板使用Terraform或AWS快速入门(CloudFormation)。
创建新工作区的一般方法是:
创建一个IAM跨帐户角色(委托凭证),让Databricks使用工作区执行相关任务。接下来,使用帐户控制台或帐户API创建封装新角色id的凭据配置。
创建一个S3桶来存储一些工作区数据,比如库、日志和笔记本修订历史。不要将此根存储用于生产客户数据。接下来,使用帐户控制台或帐户API创建封装S3桶名的存储配置。
可选提供由客户管理的VPC。如果您还没有为您的工作空间创建VPC,现在就开始创建,但要小心阅读VPC要求在继续之前。使用帐户控制台或帐户API创建一个网络配置,为您的VPC、子网和安全组封装id。
可以提供用于托管服务的客户管理密钥而且用于工作空间存储的客户管理密钥.使用Account API提供包含AWS KMS密钥ID的密钥配置。
使用帐户控制台或帐户API创建引用配置对象的新工作空间。
您可以通过重复该过程为您的帐户创建多个工作区。有些资源可以跨工作区共享,但不是全部:
您可以跨工作空间重用凭据配置。
您可以跨工作空间重用存储配置。
VPC可以重复使用,但不能重复使用其他工作空间中的子网。因为网络配置封装了VPC的子网id,所以不能在其他工作空间中重用网络配置。
您可以跨工作空间共享客户管理的密钥。
详情如下:
有关帐户控制台,请参见创建和管理工作空间.
有关帐户API,请参见使用Account API创建一个新的工作空间.
身份验证和用户帐户提供
默认情况下,用户使用Databricks本地身份验证进行身份验证,这意味着本地用户帐户和凭据在Databricks控制平面内进行管理。
大多数注重安全的组织都使用SAML 2.0实现单点登录(SSO)。如果您的SAML 2.0身份验证提供程序(IdP)支持多因素身份验证(MFA),则它与Databricks一起工作,但IdP负责实现。Databricks无权访问用户的SSO凭据。看到设置单点登录.
如果启用名为“允许自动创建用户”的SAML配置特性,则在单点登录时将根据需要为用户提供本地Databricks帐户。这有时被称为即时(JIT)配置。
Databricks支持跨域身份管理系统(SCIM)。大多数idp都内置支持用户和组的SCIM同步,它支持Databricks帐户的配置和取消配置。虽然可以使用用户名管理Databricks资源(如笔记本)的访问控制列表(acl),但组的SCIM同步使管理Databricks acl更加容易。看到访问控制列表.SCIM可用为公共预览.
启用单点登录后,默认行为为只有admin用户和本地密码才能登录web应用。使用本地存储的密码登录称为本地身份验证.对于REST api,默认行为是所有具有本地(本地身份验证)密码的用户都可以进行身份验证。管理员可以使用管理控制台或权限API 2.0设置密码权限当SSO启用时,限制哪些用户可以连接本地身份验证(到web应用程序或REST API)。
如果你使用统一目录要在帐户级别管理所有数据,可以使用帐户控制台中的用户、服务主体和组应用访问控制。不能将访问控制授予工作区-本地组。看到团体特别注意事项.
安全的API访问
对于REST API身份验证,使用内置的可撤销Databricks个人访问令牌。用户在web应用程序用户界面中创建个人访问令牌。
有一个令牌管理API,可用于查看当前Databricks个人访问令牌、删除令牌和设置新令牌的最大生命周期。使用相关的权限API设置令牌的权限定义了哪些用户可以创建和使用令牌来访问工作区REST api。
使用令牌权限来强制最小特权原则这样,任何个人用户或组只有在有合法需求时才可以访问REST api。
对于Databricks平台3.28版本(2020年9月9日至15日)发布后创建的工作区,默认情况下只有管理员bob体育客户端下载用户能够生成个人访问令牌。管理员必须显式授予这些权限,无论是整个用户
组或按用户或组按组。在3.28之前创建的工作区维护在此更改之前已经存在但具有不同默认值的权限。如果不确定何时创建了工作空间,请检查工作空间的令牌权限。
有关令牌的api和管理控制台工具的完整列表,请参见管理个人访问令牌.
请注意
虽然Databricks强烈建议使用令牌,但AWS上的Databricks用户也可以使用Databricks用户名和密码访问REST api(本地身份验证)。您可以使用禁用REST api的本地身份验证密码访问控制并将访问权限分配给个别用户或组。可以在管理控制台和权限REST API中进行配置。
IP访问列表
身份验证证明了用户的身份,但它不强制执行用户的网络位置。从不安全的网络访问云服务会带来安全风险,特别是当用户可能已授权访问敏感数据或个人数据时。企业网络边界(例如,防火墙、代理、DLP和日志记录)应用安全策略并限制对外部服务的访问,因此超出这些控制的访问被认为是不可信的。
例如,如果一名员工从办公室走到咖啡店,即使客户拥有访问web应用程序和REST API的正确凭据,公司也可以阻止到Databricks工作空间的连接。
指定允许访问的公网IP地址(或CIDR范围)。这些IP地址可能属于出口网关或特定的用户环境。您还可以指定要阻止的IP地址或子网,即使它们包含在允许列表中。例如,允许的IP地址范围可能包括较小范围的基础架构IP地址,这些IP地址实际上超出了实际的安全网络边界。
详细信息请参见IP访问列表.
审计和使用日志
Databricks强烈建议您配置审计和使用日志记录,以监控Databricks用户执行的活动和使用情况:
计费使用日志交付:自动下发使用日志到AWS S3桶。看到交付和访问计费使用日志.
审计日志传递:审计日志自动下发到AWS S3桶。看到配置审计日志记录.
必须与Databricks代表联系,以便为新工作空间启用审计日志。启用它们之后,请尝试检查您的审计日志。计费使用日志默认启用,并可在账户控制台,但是您必须配置日志传递到AWS S3桶以获取日志文件本身。
集群政策
使用集群政策执行特定的集群设置,例如实例类型、节点数量、附加库和计算成本,并为不同的用户级别显示不同的集群创建界面。使用策略管理集群配置可以帮助实施通用治理控制和管理计算基础设施的成本。
像SmallCorp这样的小组织可能对所有集群都有一个单一的集群策略。
像LargeCorp这样的大型组织可能有更复杂的政策,例如:
处理超大数据集和复杂计算的客户数据分析师可能被允许拥有最多100个节点的集群。
财务团队数据分析师可能被允许使用最多10个节点的集群。
使用较小数据集和简单笔记本的人力资源部门可能只允许拥有4到8个节点的自动伸缩集群。
访问控制列表
许多Databricks对象具有访问控制列表(acl),您可以使用这些列表控制对特定用户和组的访问。除以下信息外,请参见数据治理指南有关管理对组织数据的访问的详细信息。
访问控制允许您对工作区中的数据和对象应用数据治理控件。管理员可以使用管理控制台或权限API.
管理员还可以通过授予的方式将一些ACL配置委托给非管理员用户可以管理
权限(例如,具有可以管理
对集群的权限可以授予其他用户附加、重新启动、调整大小和管理该集群的权限。)
可以为用户和组设置以下acl。除非另有说明,您可以同时使用web应用程序和REST API修改acl:
对象 |
描述 |
---|---|
强制对数据表的访问。 |
|
管理哪些用户可以管理、重新启动或附加到集群。 |
|
管理哪些用户可以管理或附加到池。一些api和文档将池称为实例池.池通过维护一组空闲的、随时可用的云实例来减少集群启动和自动伸缩时间。当连接到池的集群需要一个实例时,它首先尝试分配该池的一个空闲实例。如果池没有空闲实例,它将通过从实例提供程序分配一个新实例进行扩展,以适应集群的请求。当一个集群释放一个实例时,它将返回到池中,供另一个集群使用。只有附加到池的集群才能使用池的空闲实例。 |
|
管理哪些用户可以查看、管理、触发、取消或拥有作业。 |
|
管理哪些用户可以阅读、运行、编辑或管理笔记本。 |
|
管理哪些用户可以读取、运行、编辑或管理文件夹中的所有笔记本。 |
|
管理哪些用户可以阅读、编辑或管理MLflow注册的模型和实验。 |
|
管理哪些用户可以创建或使用令牌。另请参阅身份验证和用户帐户提供 |
|
管理哪些用户在启用SSO和使用REST api时可以使用密码登录。另请参阅身份验证和用户帐户提供. |
根据团队规模和信息的敏感性,像SmallCorp这样的小公司或LargeCorp内具有自己工作空间的小团队可能允许所有非管理员用户访问相同的对象,如集群、作业、笔记本和目录。
具有非常敏感信息的大型团队或组织可能希望使用所有这些访问控制来执行最小特权原则这样任何个人用户都可以访问只有他们有正当需要的资源。
例如,假设LargeCorp有三个人,他们需要访问财务团队的特定工作空间文件夹(其中包含笔记本和实验)。LargeCorp可以使用这些api仅向财务数据团队组授予目录访问权。
秘密
您可能还想使用秘密管理器进行设置你期望你的笔记本需要的秘密.密钥是一个键-值对,用于存储外部数据源或其他计算的密钥材料,密钥名在秘密的范围.
可以使用REST API或CLI创建秘密,但必须使用秘密实用程序(dbutils.secrets)在笔记本或工作中阅读你的秘密。
或者,大公司可能想把他们的秘密放在里面AWS机密管理器,创建一个IAM角色来访问秘密,然后将该角色添加到集群IAM角色中。看到使用实例概要配置S3访问.