開始
加載和管理數據
處理數據
政府
引用和資源
2023年5月23日更新
給我們反饋
一個服務主體身份創建使用自動化工具和係統包括腳本、程序,和CI / CD平台。Beplay体育安卓版本
作為一個安全最佳實踐,磚建議使用磚服務主體及其OAuth的令牌或個人訪問令牌,而不是你的磚用戶或磚個人工作區用戶訪問令牌給自動化工具和係統訪問數據磚資源。這種方法包括以下一些好處:
格蘭特和可以限製訪問為磚磚資源服務主體獨立於用戶。例如,這允許您禁止磚服務主體作為一個管理員在你磚的工作空間,同時允許其他特定用戶在您的工作空間中繼續充當管理員。
用戶可以維護自己的訪問令牌訪問自動化工具和係統。
你可以暫時禁用或永久刪除一個磚服務主體而不影響其他用戶。例如,這允許您從磚暫停或刪除訪問服務主體,你懷疑是惡意的方式使用。
如果用戶離開你的組織,你可以刪除用戶,而不會影響任何磚服務主體。
創建一個磚服務主體,您可以使用這些工具和api:
你在您的工作區中創建一個磚服務主體的磚用戶界麵。或者,您可以使用SCIM API 2.0 (ServicePrincipals)工作區。調用此API,您可以使用工具等旋度或郵差,或者你可以使用起程拓殖。
您創建一個磚磚的服務主體的訪問令牌令牌管理API 2.0。調用此API,您可以使用工具等旋度或郵差,或者你可以使用起程拓殖。你不能使用磚的用戶界麵。
創建一個OAuth磚服務主體的令牌,看到的使用OAuth身份驗證令牌服務主體。
本文描述如何:
你的磚的工作區中創建一個磚服務主體。
創建一個磚磚服務主體的訪問令牌。
創建一個使用磚磚服務主體的用戶界麵,看到的添加一個服務主體磚賬戶和服務主體添加到工作區。注意,磚的用戶界麵服務主體在工作區中僅僅是可用的身份聯合工作區。
創建一個磚磚服務主體的訪問令牌,看到的管理個人訪問令牌服務主體。你不能使用磚這一步的用戶界麵。
請注意
本節描述如何使用旋度或郵差以編程方式創建服務主體。你可以更容易和更快的通過用戶界麵。
旋度
按照下列指示來使用旋度或郵差在磚工作區中創建一個數據磚服務主體,然後創建一個磚磚服務主體的訪問令牌。
使用起程拓殖代替旋度或郵差,跳過創建一個磚服務主體。
你必須是一個工作空間管理。
一個磚個人訪問令牌為你的磚用戶工作區。這使您能夠調用磚api。
旋度或郵遞員調用數據磚api。
如果你想把磚api的郵差,注意,而不是進入你的磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.m.eheci.com和你的磚個人工作區用戶訪問令牌每郵差本文中的示例,您可以定義變量和使用變量在郵遞員。
dbc-a1b2345c-d6e7.cloud.m.eheci.com
如果你想把磚api旋度,這篇文章的旋度示例使用兩個環境變量,DATABRICKS_HOST和DATABRICKS_TOKEN代表你的磚工作區實例URL例如,https://dbc-a1b2345c-d6e7.cloud.m.eheci.com;和你的磚為工作區用戶個人訪問令牌。這些環境變量設置,請執行以下操作:
DATABRICKS_HOST
DATABRICKS_TOKEN
https://dbc-a1b2345c-d6e7.cloud.m.eheci.com
設置環境變量隻有當前終端會話,運行以下命令。為所有終端會話,設置環境變量中輸入以下命令shell啟動文件,然後重啟你的終端。這裏的示例值替換為你自己的價值觀。
出口DATABRICKS_HOST=“https://dbc-a1b2345c-d6e78.cloud.m.eheci.com”出口DATABRICKS_TOKEN=“dapi1234567890b2cd34ef5a67bc8de90fa12b”
設置環境變量隻有當前命令提示會話,運行以下命令。這裏的示例值替換為你自己的價值觀。
集DATABRICKS_HOST=“https://dbc-a1b2345c-d6e78.cloud.m.eheci.com”集DATABRICKS_TOKEN=“dapi1234567890b2cd34ef5a67bc8de90fa12b”
設置環境變量對所有命令提示會話,運行以下命令,然後重新啟動命令提示符。這裏的示例值替換為你自己的價值觀。
對於setx DATABRICKS_HOST“https://dbc-a1b2345c-d6e78.cloud.m.eheci.com”對於setx DATABRICKS_TOKEN“dapi1234567890b2cd34ef5a67bc8de90fa12b”
如果你想把磚api旋度,還應注意以下幾點:
本文的旋度示例使用shell命令格式為Unix, Linux和macOS。Windows命令shell,替換\與^,替換$ {…}與%…%。
\
^
$ {…}
%…%
您可以使用一個工具等金橋格式的json格式的輸出旋度為了方便閱讀和查詢。本文的旋度示例使用金橋以JSON格式輸出。
金橋
如果您使用多個磚工作區,而是不斷變化的DATABRICKS_HOST和DATABRICKS_TOKEN變量,您可以使用一個. netrc文件。如果你使用一個. netrc文件,修改本文旋度例子如下:
. netrc
改變旋度- x來旋度——netrc- x
旋度- x
旋度——netrc- x
取代$ {DATABRICKS_HOST}與你的磚工作區實例URL例如,https://dbc-a1b2345c-d6e7.cloud.m.eheci.com
$ {DATABRICKS_HOST}
刪除——頭“授權:持票人$ {DATABRICKS_TOKEN}”\
——頭“授權:持票人$ {DATABRICKS_TOKEN}”\
如果你已經有一個磚服務主體,跳到下一節創建一個磚磚服務主體的訪問令牌。
下麵的指示創建一個服務主體在磚工作區級別。磚也自動同步的新磚帳戶(見相關服務主體管理員分配用戶工作區嗎?)。
您可以使用工具,如旋度和郵差添加磚磚工作區服務主體。下麵的說明,更換:
<顯示名稱>磚的顯示名稱服務主體。
<顯示名稱>
的權利與任何額外的數組權利磚服務主體。這個例子贈款磚服務主體能夠創建集群。工作區訪問和磚SQL訪問被授予磚默認服務主體。
權利
<組id >任何組的組ID磚工作區中您希望磚屬於服務主體。(它可以更容易設置訪問權限組而不是單獨每個磚服務主體的。)
<組id >
添加其他組,每組ID添加到組數組中。
組
組ID,電話獲得團體。
要創建一個組,管理組與用戶界麵或調用創建組API。
添加訪問權限組,明白了管理組為用戶界麵選項或調用權限API 2.0。
不添加磚服務主體的任何組,刪除組數組中。
運行以下命令。確保create-service-principal.json文件在同一個目錄下運行這個命令。
create-service-principal.json
在該命令的輸出,複製applicationId值,您將需要創建一個磚磚服務主體的訪問令牌。
applicationId
curl - x的帖子\$ {DATABRICKS_HOST}/ api / 2.0 /預覽/ scim / v2 / ServicePrincipals\——頭“內容類型:應用程序/ scim + json”\——頭“授權:持票人$ {DATABRICKS_TOKEN}”\——數據@create-service-principal.json\|金橋。
create-service-principal.json:
{“displayName”:“<顯示名稱>”,“權利”:({“價值”:“allow-cluster-create”}),“組織”:({“價值”:“<組id >”}),“模式”:(“urn: ietf:參數:scim:模式:核心:2.0:ServicePrincipal”),“活躍”:真正的}
創建一個新的HTTP請求(File > New > HTTP請求)。
在HTTP動詞下拉列表中,選擇帖子。
為輸入請求URL,輸入https:// < databricks-instance-name > / api / 2.0 /預覽/ scim / v2 / ServicePrincipals,在那裏< databricks-instance-name >是你的磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.m.eheci.com。
https:// < databricks-instance-name > / api / 2.0 /預覽/ scim / v2 / ServicePrincipals
< databricks-instance-name >
在授權選項卡,類型列表中,選擇不記名的令牌。
為令牌,輸入您的磚為工作區用戶個人訪問令牌。
在頭選項卡中,添加關鍵和價值一雙內容類型和應用程序/ scim + json
內容類型
應用程序/ scim + json
在身體選項卡上,選擇生和JSON。
輸入以下身體有效載荷:
點擊發送。
在響應負載,複製applicationId值,您將需要創建一個磚磚服務主體的訪問令牌。
以下步驟生成一個磚個人訪問令牌對於一個服務主體分配給一個磚工作區。這種個人訪問令牌可以使用自動化的服務主體隻在指定的磚的工作區。你不能使用磚戶頭級別的自動化服務主體。如果你試圖為服務主體生成個人訪問令牌在磚賬戶層麵,嚐試會失敗。
如果你已經有磚的ID服務主體,跳到第2步。
您可以使用工具,如旋度和郵差磚服務主體的ID。的ID,請執行以下操作:
運行以下命令。在該命令的輸出,複製applicationId磚服務主體的價值。
curl - x得到\$ {DATABRICKS_HOST}/ api / 2.0 /預覽/ scim / v2 / ServicePrincipals\——頭“授權:持票人$ {DATABRICKS_TOKEN}”\|金橋。
在HTTP動詞下拉列表中,選擇得到。
在響應負載,複製applicationId服務主體的價值。
使用旋度或郵差來創建數據磚磚服務主體的訪問令牌。下麵的說明,更換:
<應用程序id >與applicationId磚服務主體的價值。
<應用程序id >
< >的評論與任何評論與磚訪問令牌。不添加一個評論,刪除評論對象。
< >的評論
評論
1209600的秒數,這個磚訪問令牌是有效的。本例中指定了14天。
1209600
重要的
這個磚訪問令牌將不再是有效的這段時間到期後,和任何CI / CD平台,依賴於這個磚訪問令牌可能會停止工作。Beplay体育安卓版本為了防止這種情況,在這個時期到期之前,您必須創建一個新的數據磚訪問令牌給CI / CD平台。Beplay体育安卓版本
運行以下命令。確保create-service-principal-token.json文件在同一個目錄下運行這個命令。
create-service-principal-token.json
在該命令的輸出,複製token_value值,您將需要設置CI / CD平台。Beplay体育安卓版本
token_value
如果你沒有權限信息,明白了管理令牌使用管理權限設置頁麵授予的磚服務主體的可以使用允許使用磚訪問令牌。然後再次運行該命令。
curl - x的帖子\$ {DATABRICKS_HOST}/ api / 2.0 /令牌管理/代表/令牌\——頭“application / json內容類型:\——頭“授權:持票人$ {DATABRICKS_TOKEN}”\——數據@create-service-principal-token.json\|金橋。
create-service-principal-token.json:
{“application_id”:“<應用程序id >”,“評論”:“< >評論”,“lifetime_seconds”:1209600}
為輸入請求URL,輸入https:// < databricks-instance-name > / api / 2.0 /令牌管理/代表/令牌,在那裏< databricks-instance-name >是你的磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.m.eheci.com。
https:// < databricks-instance-name > / api / 2.0 /令牌管理/代表/令牌
在頭選項卡中,添加關鍵和價值一雙內容類型和application / json
application / json
如果你沒有權限信息,明白了管理令牌使用管理權限設置頁麵授予的磚服務主體的可以使用允許使用磚訪問令牌。然後單擊發送一次。
在響應負載,複製token_value值,您需要將它添加到您的腳本時,應用程序,或係統。
本節描述如何使用起程拓殖以編程方式創建服務主體。你可以更容易和更快的通過用戶界麵。
按照下列指示來使用起程拓殖創建一個磚在磚工作區服務主體,然後創建一個磚磚服務主體的訪問令牌。
使用旋度或郵差代替起程拓殖,跳過使用curl或郵差。
磚的個人訪問令牌允許起程拓殖叫磚內的磚api的帳戶。有關詳細信息,請參見磚個人訪問令牌。
磚的命令行界麵(CLI),配置你的磚個人訪問令牌通過運行磚配置——令牌——簡介<概要名稱>命令創建一個連接配置文件數據磚個人訪問令牌。詳情,請參閱“設置身份驗證”和“連接配置文件”部分磚CLI。
磚配置——令牌——簡介<概要名稱>
起程拓殖CLI。有關詳細信息,請參見下載起程拓殖在起程拓殖網站上。
在終端中,創建一個空目錄,然後切換到它。每個單獨的組起程拓殖配置文件必須在自己的目錄中。例如:mkdirterraform_service_principal_demo& &cdterraform_service_principal_demo。
mkdirterraform_service_principal_demo& &cdterraform_service_principal_demo
mkdir terraform__service_principal_demo& &cdterraform__service_principal_demo
在這個空目錄中,創建一個文件命名main.tf。將以下內容添加到這個文件,然後保存文件。
main.tf
警告
以下內容包含聲明授權=“令牌”。隻能有一個授權=“令牌”權限資源/磚工作區,否則將會有一個永久配置漂移。應用以下更改後,用戶之前CAN_USE或CAN_MANAGE權限但不再有權限吊銷訪問基於令牌的身份驗證。其積極的令牌將會立即被刪除(撤銷)。
授權=“令牌”
CAN_USE
CAN_MANAGE
以下內容創建一個服務主體在磚工作區級別。以下內容還自動同步服務主體的相關數據磚賬戶(見管理員分配用戶工作區嗎?)。創建一個服務主體在磚帳戶級別相反,看到“創建服務主體在AWS磚賬戶”的部分databricks_service_principal資源在磚起程拓殖供應商文檔。
以下內容也使用databricks_obo_token資源生成磚個人訪問令牌對於一個服務主體分配給一個磚工作區。這種個人訪問令牌可以使用自動化的服務主體隻在指定的磚的工作區。你不能使用磚戶頭級別的自動化服務主體。如果你試圖為服務主體生成個人訪問令牌在磚賬戶層麵,嚐試會失敗。
databricks_obo_token
變量“databricks_account_id”{描述= "磚的磚帳戶ID的工作區。”類型= string}變量“databricks_connection_profile”={描述“磚連接配置文件的名稱使用。”類型= string}變量“service_principal_display_name”={描述“服務主體的顯示名稱。”類型= string}變量“service_principal_access_token_lifetime”={描述”的生命周期服務主體的訪問令牌,在幾秒鍾內。”類型=違約數量= 3600}起程拓殖{required_providers{磚={源=“磚/磚"}}}提供者“磚”{主機= " https://accounts.cloud.m.eheci.com " account_id = var.databricks_account_id profile = var.databricks_connection_profile}資源“databricks_service_principal”“sp”{提供者=磚display_name = var.service_principal_display_name}資源“databricks_permissions”“token_usage”=“令牌”access_control {service_principal_name ={授權databricks_service_principal.sp。application_id permission_level = " CAN_USE "}}資源“databricks_obo_token”“這“{depends_on = [databricks_permissions。token_usage] application_id = databricks_service_principal.sp。application_id評論= " $ {databricks_service_principal.sp的個人訪問令牌代表。display_name} service_principal_name“輸出lifetime_seconds = var.service_principal_access_token_lifetime} {value = databricks_service_principal.sp。display_name} {value = databricks_service_principal.sp“service_principal_id”輸出。application_id} {value = databricks_obo_token.this“service_principal_access_token”輸出。token_value敏感= true}
添加服務主體磚工作空間的組織,並添加磚工作區服務主體權利,明白了databricks_service_principal在起程拓殖網站上。
在相同的目錄中,創建一個文件命名terraform.tfvars。將以下內容添加到該文件,替換以下值,然後保存文件:
terraform.tfvars
取代databricks_account_id價值的磚帳戶ID的工作區。
databricks_account_id
提示
使用環境變量而不是terraform.tfvars申請這個值,設置一個環境變量命名TF_VAR_DATABRICKS_ACCOUNT_ID為您的工作區磚帳戶ID。也刪除databricks_account_id變量的main.tf以及參考account_id在磚供應商main.tf。
TF_VAR_DATABRICKS_ACCOUNT_ID
account_id
磚
取代databricks_connection_profile價值需求的連接配置文件的名稱。
databricks_connection_profile
使用環境變量而不是terraform.tfvars申請這個值,設置一個環境變量命名TF_VAR_DATABRICKS_CONFIG_PROFILE連接配置文件的名稱的要求。也刪除databricks_connection_profile變量的main.tf以及參考配置文件在磚供應商main.tf。
TF_VAR_DATABRICKS_CONFIG_PROFILE
配置文件
取代service_principal_display_name值的顯示名稱服務主體。
service_principal_display_name
取代service_principal_access_token_lifetime價值的秒數的訪問令牌的生命周期服務主體。
service_principal_access_token_lifetime
使用缺省生命周期價值3600秒,刪除service_principal_access_token_lifetime從terraform.tfvars文件。
databricks_account_id = " <磚帳戶ID,如00000000-0000-0000-0000-000000000000 >”databricks_connection_profile =“<磚連接配置文件名稱>”service_principal_display_name = <服務主體顯示名稱>”service_principal_access_token_lifetime = 3600
包含初始化工作目錄main.tf文件通過運行起程拓殖初始化命令。有關更多信息,請參見命令:初始化在起程拓殖網站上。
起程拓殖初始化
起程拓殖init
應用更改需要達到所需的配置通過運行狀態起程拓殖應用命令。有關更多信息,請參見命令:在起程拓殖網站上。
起程拓殖應用
服務主體的訪問令牌,看到的價值outputs.service_principal_access_token.value在terraform.tfstate文件,該文件是包含在工作目錄main.tf文件。
outputs.service_principal_access_token.value
terraform.tfstate