访问S3与我凭证透传SAML 2.0联合会(遗留)

预览

这个特性是在公共预览

请注意

我凭证透传是一个遗留数据治理模型。砖建议你升级到统一的目录。统一目录简化了数据的安全性和治理提供一个中心位置管理和审计数据访问跨多个工作空间在您的帐户。看到联合目录是什么?

AWS支持SAML 2.0联合身份验证允许单点登录AWS管理控制台和AWS api。砖工作区配置了单点登录可以使用AWS联合会维护用户的映射我的角色在他们的身份提供商(IdP),而不是在使用SCIM砖。这允许您集中数据访问在你的国内流离失所者和有权利直接传递给砖集群。

请注意

我凭证透传与SAML 2.0联盟只能配置统一登录是禁用的。砖建议您升级到统一目录,看看联合目录是什么?。2023年6月21日,如果您的帐户被创建后,你需要我凭证与SAML 2.0联合会透传,请联系您的砖的代表。

下图说明了联合工作流程:

联盟工作流
  1. 配置一个信任你的国内流离失所者之间的关系和AWS帐户为了控制哪些角色用户可以假设的国内流离失所者。

  2. 用户登录数据砖通过SAML SSO,角色通过的国内流离失所者的权利。

  3. 砖调用AWS安全令牌服务(STS)和假定的角色用户通过SAML响应和临时令牌。

  4. 当用户访问S3从集群砖,砖的临时令牌运行时使用的用户执行访问自动和安全。

请注意

我凭证透传联盟总是将角色映射到用户在SAML允许我角色权利自动同步启用。它将覆盖任何以前的角色设置通过SCIM API。

需求

  • 保费计划或以上

  • SAML单点登录配置你的砖工作区。

  • AWS管理员访问:

    • 我的角色和策略的AWS帐户砖部署。

    • S3 bucket的AWS帐户。

  • 身份提供商(IdP)管理员来配置您的国内流离失所者通过AWS角色数据砖。

  • 砖工作区管理包括AWS角色在SAML断言。

步骤1:把砖SAML的URL

  1. 管理员设置页面

  2. 单击单点登录选项卡。

  3. 复制砖SAML的URL。

    SAML URL

第二步:下载身份提供商的元数据

请注意

在身份提供者的步骤为每个身份提供商控制台略有不同。看到集成第三方与AWS SAML解决方案提供商例如你的身份提供商。

  1. 在你的身份提供者管理控制台,找到你的砖应用程序的单点登录。

  2. 下载SAML的元数据。

    添加属性

步骤3:配置身份提供商

  1. 在AWS控制台,去服务。

  2. 单击身份提供者在侧边栏选项卡。

  3. 点击创建供应商

    1. 在提供者类型,选择SAML

    2. 在供应商名称,输入一个名称。

    3. 元数据文档,点击选择文件并导航到包含元数据文档的文件下载。

    4. 点击下一个步骤然后创建

步骤4:为联合配置我的角色

请注意

只用于数据访问的角色应该用于联合会砖。我们不推荐允许角色通常用于AWS控制台访问他们可能有比必要的特权。

  1. 在AWS控制台,去服务。

  2. 单击角色在侧边栏选项卡。

  3. 点击创建角色

    1. 选择类型的信任的实体中,选择SAML 2.0联合会

    2. 在SAML provider,选择步骤3中创建的名称。

    3. 选择只允许编程访问

    4. 在属性,选择SAML:澳大利亚

    5. 在价值,将复制的砖SAML的URL粘贴在步骤1。

    6. 点击下一个:权限,下一个:标签,下一个:审查

    7. 在角色名称字段中,输入角色名称。

    8. 点击创建角色。角色的列表显示。

  4. 添加一个内联政策作用。这一政策授予访问S3 bucket。

    1. 在“权限”选项卡,单击内联政策

    2. 单击JSON选项卡。复制这个政策和设置< s3-bucket-name >桶的名称。

      {“版本”:“2012-10-17”,“声明”:({“效应”:“允许”,“行动”:(“s3: ListBucket”),“资源”:(“攻击:aws: s3::: < s3-bucket-name >”]},{“效应”:“允许”,“行动”:(“s3: propertynames”,“s3: GetObject”,“s3: DeleteObject”,“s3: PutObjectAcl”),“资源”:(“攻击:aws: s3::: < s3-bucket-name > / *”]}]}
    3. 点击审查政策

    4. 在Name字段中,输入一个政策的名字。

    5. 点击创建政策

  5. 信任的关系选项卡上,您应该能够看到类似:

    信任关系
  6. 单击编辑信任关系按钮。我得到的信任策略文档应该类似如下:

    {“版本”:“2012-10-17”,“声明”:({“效应”:“允许”,“校长”:{“联合”:“攻击:aws:我::< accountID >: saml provider / < IdP-name >”},“行动”:“sts: AssumeRoleWithSAML”,“条件”:{“StringEquals”:{“SAML:澳大利亚”:“https://xxxxxx.cloud.www.neidfyre.com/saml/consume”}}}]}

第五步:配置身份提供商通过属性数据砖

以下属性必须传递给砖SAML响应通过SSO为了砖通过角色的集群:

  • https://aws.amazon.com/SAML/Attributes/Role

  • https://aws.amazon.com/SAML/Attributes/RoleSessionName

这些属性是角色的列表在攻击和匹配单点登录的用户名登录。角色映射刷新当用户登录到砖工作区。

请注意

如果用户权利到我的角色是基于广告/ LDAP组成员,您必须配置角色映射/你的国内流离失所者。

每个身份提供者不同如何添加属性通过SAML。Okta下面的部分展示了一个例子。看到集成第三方与AWS SAML解决方案提供商例如你的身份提供商。

Okta例子

  1. 在Okta管理控制台应用程序,选择你的砖应用程序的单点登录。

  2. 点击编辑在SAML设置并点击下一个配置SAML选项卡。

  3. 在属性声明中添加以下属性:

    1. 名称:https://aws.amazon.com/SAML/Attributes/RoleSessionName名字格式:URI引用值:user.login

  4. 管理的角色很容易使用组,创建组对应于你我的角色,例如GroupAGroupB,并将用户添加到组。

  5. 您可以使用Okta表达式匹配组和角色在以下方式:

    1. 名称:https://aws.amazon.com/SAML/Attributes/Role名字格式:URI参考价值:

      Arrays.flatten (isMemberOfGroupName (“GroupA”) ?“攻击:aws:我::xxx:角色/角色,攻击:aws:我::xxx: saml provider / okta-databricks ": {}, isMemberOfGroupName (“GroupB”) ?“攻击:aws:我::xxx:角色/角色b,在攻击:aws:我::xxx: saml provider / okta-databricks ": {})

      它应该看起来像:

      Okta表达式

      只允许用户在某一组会使用相应的我的角色。

  6. 使用管理的人添加用户到组。

  7. 使用管理应用程序分配组SSO应用程序允许用户登录到砖。

按照上面的步骤,添加额外的角色映射Okta组织联合作用。在不同角色AWS帐户,添加SSO应用程序作为一个新的我身份提供商每个额外的AWS帐户,将为砖有联邦的角色。

步骤6:可选配置映射从SAML SCIM砖同步的作用

做这一步,如果你想使用我凭证透传工作JDBC。否则,你必须设置映射使用我的角色SCIM API

  1. 管理员设置页面

  2. 单击单点登录选项卡。

  3. 选择允许我角色权利自动同步

    SSO选项卡

最佳实践

最好的经验,我们建议设置我的角色之间的最大会话持续时间4到8小时。这是为了避免用户不得不反复确认自己为了获取新的令牌或长时间查询失败由于过期的令牌。设置时间:

  1. 在AWS控制台中,单击我的角色配置步骤4:为联合配置我的角色

  2. 最大CLI / API会话持续时间属性,点击编辑

    设置会话持续时间
  3. 选择时间和点击保存更改

使用我凭证透传联盟

按照说明在发射一个我凭证透传集群和不添加一个实例配置文件。使用我透传联盟工作或JDBC连接、遵循的指令建立一个元实例配置文件

安全

是安全与其他用户共享高并发我凭证透传集群。你将从彼此孤立,将无法阅读或使用对方的凭证。

故障排除

配置错误时一种常见的错误设置凭据透传。的X-Databricks-PassThrough-Error头返回的登录响应标头来帮助识别这些错误的根源。可能的值是:

  • ValidationError:角色在身份提供者的配置不能满足指定的约束AWS服务。这个错误的常见原因是角色名称和身份提供商名称错误的订单。

  • InvalidIdentityToken:身份提供商提交是无效的。这个错误的常见原因是身份提供商在AWS的元数据没有被正确设置我的服务。

  • AccessDenied:验证的角色已经失败了。这个错误的常见原因是没有添加到角色的身份提供商信任的关系在AWS服务我。

  • 畸形的角色名称属性:角色的身份提供者的配置是错误的格式。

请咨询您的网络浏览器的文档说明访问响应标头。

已知的限制

与我联盟不支持以下特性:

  • % fs(使用相当于dbutils.fs命令相反)。

  • 访问控制表

  • 下列方法SparkContext (sc)和SparkSession (火花)对象:

    • 弃用的方法。

    • 方法如addFile ()addJar ()允许非管理用户调用Scala代码。

    • S3以外的任何方法访问一个文件系统。

    • 老Hadoop api (hadoopFile ()hadoopRDD ())。

    • 流api,因为通过证书将过期而流仍在运行。

  • DBFS坐骑(/ dbfs)只有在砖运行时7.3 LTS及以上。挂载点与凭证透传配置不支持通过这条路。

  • 整个集群范围的图书馆需要集群实例配置文件下载的权限。只有库DBFS路径支持。

  • 砖连接高并发集群中只有砖运行时7.3 LTS及以上。

  • MLflow