云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

金山云_哈尔滨网站建设公司_返利

小七 141 0

介绍Databricks AWS IAM Credential Passthrough

随着越来越多的分析转移到云端,客户面临着如何控制哪些用户可以访问哪些数据的挑战。像AWS这样的云提供商为身份和访问管理(IAM)提供了一组丰富的特性,比如IAM用户、角色和策略。这些功能允许客户安全地管理对其敏感数据的访问。云端分析的身份和访问管理挑战我们看到许多AWS客户试图解决这个难题,要么使用IAM角色和IAM实例概要文件的组合,要么使用硬编码的IAM凭证。客户使用策略来控制对S3或其他AWS资源(如Kinesis、SQS等)的访问,然后使用实例配置文件将IAM角色信息传递给EC2实例。这允许他们在启动时将单个数据访问策略与EC2实例相关联。但是,这些选项存在一些挑战和局限性:EC2实例只能分配一个实例概要文件。这要求客户运行不同的EC2实例,每个实例具有不同的角色和访问控制来访问多个数据集,从而增加了复杂性和成本无论是使用实例配置文件还是硬编码的IAM凭据,EC2实例上的用户在访问资源时共享相同的身份,因此用户级访问控制是不可能的,并且对于EC2实例中的哪个用户访问了什么内容没有审计跟踪,比如cloud trail。实例配置文件或IAM凭据都不一定映射到企业身份管理系统(如LDAP或Active Directory组)中的访问策略,这需要跨不同的系统管理一组新的授权为了解决这些限制,我们看到一些客户转向使用遗留的或非云本地工具来代理对云存储的访问,比如S3。这些工具中的许多在设计时并没有考虑到云存储,在某些情况下,可能需要对apachespark进行自定义扩展,以支持有限的格式或较差的性能。为了管理一组新的服务和授权,这给客户带来了额外的操作负担,并否定了直接使用S3的可伸缩性、低成本和低维护性。对于Databricks客户,这些工具还可能影响我们在Databricks运行时提供的可用性和特性,比如DBIO和Delta。当我们开始设计解决方案时,我们的首要任务是集成AWS本机提供的身份和访问服务。特别是,我们的重点是利用带有SAML单点登录(SSO)的AWS身份联合。考虑到Databricks已经支持samlso,这是让客户在其身份提供者(IdP)内集中数据访问并将这些权利直接传递给Databricks集群上运行的代码的最无缝的选项。首先,客户在他们的IdP和AWS帐户之间配置一个信任关系,以便IdP控制用户可以承担哪些角色用户通过SAML SSO登录到Databricks,角色的权限由IdP传递Databricks调用AWS安全令牌服务(STS),并通过传递SAML响应和获取临时令牌来承担用户的角色当用户从Databricks集群访问S3时,Databricks运行时使用临时令牌让用户自动、安全地执行访问带数据块的IAM凭证传递为了使用IAM凭证传递,客户首先在其IdP和AWS帐户之间启用所需的集成,并且必须为数据块配置SAML SSO。其余部分由IdP和Databricks直接管理,比如用户有权使用哪些角色或从AWS获取临时令牌。为了使用联合角色,有一个新的集群配置称为"凭证传递"。高并发集群上的Passthrough可以安全地支持多个具有不同凭据的用户,运行Python和SQL。使用这些语言,我们可以在Java虚拟机之外的一个独立的、低权限的进程中运行用户代码,在Java虚拟机中Spark执行。对于需要完全控制环境的Scala、R或更高级的场景,也支持单个用户使用标准集群。作为DBUtils的一部分,用户可以使用专门针对联合角色的新API。首先,用户可以通过调用dbutils.credentials.showRoles为了承担特定的角色,用户调用dbutils.credentials.assumeRole从那时起,该笔记本中的任何S3访问都将使用所选的角色。如果用户没有显式地承担角色,那么集群将使用列表中的第一个角色。在某些情况下,用户可能需要分析需要不同角色的多个数据集。为了使角色选择透明,还可以使用bucket mounts:dbutils.fs.安装("s3a://databricks-demo-data-us-east-1/data/sensitive","/mnt/敏感数据",额外配置={"fs.s3a.credentialsType":"自定义","fs.s3a。credentialsType.customClass": "com.databricks.backend.daemon.driver.aws.AwsCredentialContextTokenProvider","fs.s3a。Stsasumerole.arn酒店": "arn:aws公司:iam::997123456789:角色/敏感数据角色"})dbutils.fs.安装("s3a://databricks-demo-data-us-east-1/data/hr","/mnt/hr数据",额外配置={"fs.s3a.credentialsType":"自定义","fs.s3a。credentialsType.customClass": "com.databricks.backend.daemon.driver.aws.AwsCredentialContextTokenProvider","fs.s3a。Stsasumerole.arn酒店": "arn:aws公司:iam::997123456789:角色/hr数据角色"})定义了bucket挂载后,用户可以引用DBFS路径,而无需选择任何角色。无法担任装入点指定的角色的用户将无法访问装入点。这还允许跨需要不同角色的数据集进行连接,并为最终用户提供无缝的体验。由于联合角色唯一地标识用户,因此它允许在S3上进行更强大的数据访问控制。一个例子是在S3上定义"主目录",允许用户将数据集保存到只有所有者可以访问的私有位置。即使用户可能共享相同的IAM角色或甚至共享同一个集群,这也是可能的。由于假定的角色识别单个用户,现在只需通过cloudtrail启用S3对象日志记录就可以进行审计了。所有S3访问都将通过云跟踪日志中的ARN直接绑定到用户。结论通过新的IAM凭证传递功能,我们将引入更强大的数据访问控制,直接与您的企业标识平台集成。它提供了对数据的无缝访问控制,而不会失去S3的可靠性、可伸缩性和低成本。使用Databricks进程隔离,您仍然可以安全地共享Spark集群资源,而不必在您的环境中管理其他工具。您可以安全地让您的分析师、数据科学家和数据工程师使用Databricks统一分析平台的强大功能,同时确保您的数据安全!IAM凭证传递正在进行私人预览,如果您想了解更多,请联系您的Databricks代表。 免费试用Databricks。今天就开始吧