訪問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.eheci.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