秘密API 2.0

Secrets API允許您管理秘密、秘密作用域和訪問權限。要管理秘密,你必須:

  1. 創建一個秘密範圍

  2. 將你的秘密添加到範圍中

  3. 如果你有保費計劃或以上將訪問控製分配給秘密範圍

要了解有關創建和管理機密的更多信息,請參見保密管理而且秘密訪問控製.您訪問和參考秘密在筆記本和工作使用秘密效用(dbutils.secrets)

重要的

要訪問Databricks REST接口,您必須進行身份驗證

創建秘密範圍

端點

HTTP方法

2.0 /機密/範圍/創建

帖子

創建一個Databricks-backed秘密範圍中,秘密存儲在databrick管理的存儲中,並使用基於雲的特定加密密鑰進行加密。

範圍名稱:

  • 在工作區中必須是唯一的。

  • 由字母、數字、“_”、“。”、“。”組成,不能超過128個字符。

這些名稱被認為是不敏感的,工作空間中的所有用戶都可讀。一個工作空間被限製為最多100個秘密範圍。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/範圍/創建——數據@create-scope.json

create-scope.json

“範圍”“my-simple-databricks-scope”“initial_manage_principal”“用戶”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容create-scope.json與適合您的解決方案的字段。

此示例使用. netrc文件。

拋出RESOURCE_ALREADY_EXISTS如果給定名稱的作用域已經存在。拋出RESOURCE_LIMIT_EXCEEDED如果超出了工作空間中作用域的最大數量。拋出INVALID_PARAMETER_VALUE如果作用域名無效。

請求結構

字段名

類型

描述

範圍

字符串

用戶請求的範圍名稱。作用域名稱是惟一的。此字段是必需的。

initial_manage_principal

字符串

該字段是可選的。如果沒有指定,則隻授予API請求發布者的標識管理對新範圍的權限。如果字符串用戶,工作區中的所有用戶都被授予管理權限。

刪除秘密範圍

端點

HTTP方法

2.0 /機密/範圍/刪除

帖子

刪除秘密作用域。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/範圍/刪除——數據@delete-scope.json

delete-scope.json

“範圍”“my-secret-scope”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容delete-scope.json與適合您的解決方案的字段。

此示例使用. netrc文件。

拋出RESOURCE_DOES_NOT_EXIST如果作用域不存在。拋出PERMISSION_DENIED如果用戶沒有這個API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要刪除的作用域的名稱。此字段是必需的。

秘密範圍列表

端點

HTTP方法

2.0 /機密/範圍/列表

得到

列出工作空間中所有可用的秘密作用域。

例子

請求

curl——netrc——請求GEThttps:// < databricks-instance > / api / 2.0 /機密/範圍/列表|金橋。

取代< databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

此示例使用. netrc文件和金橋

響應

“範圍”“名稱”“my-databricks-scope”“backend_type”“磚”},“名稱”“掛載點”“backend_type”“磚”

拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

響應結構

字段名

類型

描述

作用域

一個數組的SecretScope

可用的秘密望遠鏡。

把秘密

端點

HTTP方法

2.0 /機密/把

帖子

用給定的名稱在提供的作用域下插入一個秘密。如果已經存在同名的密鑰,此命令將覆蓋現有密鑰的值。服務器在存儲密鑰之前使用密鑰範圍的加密設置對密鑰進行加密。你必須有管理對秘密範圍的許可。

密鑰必須由字母、數字、“_”、“-”、“-”、“-”、“-”組成,長度不超過128個字符。允許的秘密值大小的最大值是128 KB。在給定的範圍內,秘密的最大數量是1000。

您隻能從集群上的一個命令中讀取秘密值(例如,通過一個筆記本);沒有API來讀取集群外部的秘密值。所應用的權限取決於調用該命令的人,您必須至少擁有該權限許可。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/把——數據@put-secret.json

put-secret.json

“範圍”“my-databricks-scope”“關鍵”“my-string-key”“string_value”“自己的價值”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容put-secret.json與適合您的解決方案的字段。

此示例使用. netrc文件。

輸入字段“string_value”或“bytes_value”指定了秘密的類型,它將決定請求秘密值時返回的值。必須指定一個。

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密範圍。拋出RESOURCE_LIMIT_EXCEEDED如果超出了範圍中的最大機密數。拋出INVALID_PARAMETER_VALUE如果鍵名或值長度無效。拋出PERMISSION_DENIED如果用戶沒有這個API調用的權限。

請求結構

字段名

類型

描述

string_value或bytes_value

字符串字節

如果指定了string_value,值將以UTF-8 (MB4)的形式存儲。

如果指定了bytes_value, value將以字節的形式存儲。

範圍

字符串

機密將與之關聯的範圍的名稱。此字段是必需的。

關鍵

字符串

用於標識秘密的唯一名稱。此字段是必需的。

刪除的秘密

端點

HTTP方法

2.0 /機密/刪除

帖子

刪除存儲在這個秘密範圍中的秘密。你必須有管理對秘密範圍的許可。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/刪除——數據@delete-secret.json

delete-secret.json

“範圍”“my-secret-scope”“關鍵”“my-secret-key”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容delete-secret.json與適合您的解決方案的字段。

此示例使用. netrc文件。

拋出RESOURCE_DOES_NOT_EXIST如果沒有這樣的秘密範圍或秘密存在。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

包含要刪除的機密的作用域的名稱。此字段是必需的。

關鍵

字符串

要刪除的密鑰的名稱。此字段是必需的。

列表的秘密

端點

HTTP方法

2.0 /機密/列表

得到

列出存儲在此範圍中的密鑰。這是一個純元數據操作;不能使用此API檢索機密數據。你必須有允許我打這個電話。

例子

請求

curl——netrc——請求GET“https:// < databricks-instance > / api / 2.0 /機密/列表嗎?範圍= < scope-name >”|金橋。

或者:

curl——netrchttps:// < databricks-instance > / api / 2.0 /機密/列表——數據範圍< scope-name >|金橋。

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • < scope-name >例如,使用機密範圍的名稱我的領域

此示例使用. netrc文件和金橋

響應

“秘密”“關鍵”“my-string-key”“last_updated_timestamp”1520467595000},“關鍵”“my-byte-key”“last_updated_timestamp”1520467595000

返回的last_updated_timestamp以毫秒為單位。

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密範圍。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要列出其機密的範圍的名稱。此字段是必需的。

響應結構

字段名

類型

描述

秘密

一個數組的SecretMetadata

給定範圍內包含的所有機密的元數據信息。

把秘密ACL

端點

HTTP方法

2.0 /機密/ acl /把

帖子

在指定的範圍點上創建或重寫與給定主體(用戶、服務主體或組)關聯的ACL。一般情況下,用戶、服務主體或組將使用其可用的最強大的權限,權限順序如下:

  • 管理—允許修改acl,並對這個秘密作用域進行讀寫操作。

  • -允許讀寫這個秘密範圍。

  • -允許閱讀這個秘密範圍,並列出什麼秘密是可用的。

你必須有管理調用此API的權限。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/ acl /——數據@put-secret-acl.json

put-secret-acl.json

“範圍”“my-secret-scope”“校長”“數據科學家”“許可”“讀”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容put-secret-acl.json與適合您的解決方案的字段。

此示例使用. netrc文件。

主要字段指定使用該主體的唯一標識符授予或撤銷現有數據ricks主體訪問權。用戶用其電子郵件指定,服務主體用其電子郵件指定applicationId值,以及具有組名的組。

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密範圍。拋出RESOURCE_ALREADY_EXISTS如果主體的權限已經存在。拋出INVALID_PARAMETER_VALUE權限無效。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要對其應用權限的作用域的名稱。此字段是必需的。

主要

字符串

應用權限的主體。此字段是必需的。

許可

AclPermission

應用於主體的權限級別。此字段是必需的。

刪除秘密ACL

端點

HTTP方法

2.0 /機密/ acl /刪除

帖子

在給定範圍上刪除給定的ACL。

你必須有管理調用此API的權限。

例子

curl——netrc——請求POSThttps:// < databricks-instance > / api / 2.0 /機密/ acl /刪除——數據@delete-secret-acl.json

delete-secret-acl.json

“範圍”“my-secret-scope”“校長”“數據科學家”

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • 的內容delete-secret-acl.json與適合您的解決方案的字段。

此示例使用. netrc文件。

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密作用域、主體或ACL。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要從中刪除權限的作用域的名稱。此字段是必需的。

主要

字符串

要從中刪除現有ACL的主體。此字段是必需的。

得到秘密ACL

端點

HTTP方法

2.0 /機密/ acl /

得到

描述給定ACL的詳細信息,如組、權限等。

你必須有管理調用此API的權限。

例子

請求

curl——netrc——請求GET“https:// < databricks-instance > / api / 2.0 /機密/ acl / ?範圍= < scope-name >主要= <主體名稱>”|金橋。

或者:

curl——netrchttps:// < databricks-instance > / api / 2.0 /機密/ acl /——數據'範圍= < scope-name >主要= <主體名稱>”|金橋。

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • < scope-name >例如,使用機密範圍的名稱我的領域

  • <主體名稱>例如,使用主體的名稱用戶

此示例使用. netrc文件和金橋

響應

“校長”“數據科學家”“許可”“讀”

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密範圍。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要從中獲取ACL信息的作用域的名稱。此字段是必需的。

主要

字符串

要為其獲取ACL信息的主體。此字段是必需的。

響應結構

字段名

類型

描述

主要

字符串

應用權限的主體。此字段是必需的。

許可

AclPermission

應用於主體的權限級別。此字段是必需的。

秘密acl列表

端點

HTTP方法

2.0 /機密/ acl列表

得到

列出在給定範圍上設置的acl。

你必須有管理調用此API的權限。

例子

請求

curl——netrc——請求GET“https:// < databricks-instance > / api / 2.0 /機密/ acl /列表嗎?範圍= < scope-name >”|金橋。

或者:

curl——netrchttps:// < databricks-instance > / api / 2.0 /機密/ acl /列表——數據範圍< scope-name >|金橋。

替換:

  • < databricks-instance >與磚工作區實例名例如,dbc-a1b2345c-d6e7.cloud.www.eheci.com

  • < scope-name >例如,使用機密範圍的名稱我的領域

此示例使用. netrc文件和金橋

響應

“項目”“校長”“管理員”“許可”“管理”},“校長”“數據科學家”“許可”“讀”

拋出RESOURCE_DOES_NOT_EXIST如果不存在這樣的秘密範圍。拋出PERMISSION_DENIED如果您沒有進行此API調用的權限。

請求結構

字段名

類型

描述

範圍

字符串

要從中獲取ACL信息的作用域的名稱。此字段是必需的。

響應結構

字段名

類型

描述

項目

一個數組的AclItem

應用於給定範圍中的主體的關聯acl規則。

數據結構

AclItem

表示應用於關聯範圍點上給定主體(用戶、服務主體或組)的ACL規則的項。

字段名

類型

描述

主要

字符串

應用權限的主體。此字段是必需的。

許可

AclPermission

應用於主體的權限級別。此字段是必需的。

SecretMetadata

關於秘密的元數據。列出機密時返回。不包含實際的秘密值。

字段名

類型

描述

關鍵

字符串

用於標識秘密的唯一名稱。

last_updated_timestamp

INT64

秘密的最後一次更新時間戳(以毫秒為單位)。

SecretScope

存儲機密的組織資源。秘密作用域可以是不同的類型,並且可以應用acl來控製一個作用域中所有秘密的權限。

字段名

類型

描述

的名字

字符串

標識秘密範圍的唯一名稱。

backend_type

ScopeBackendType

秘密範圍後端類型。

AclPermission

應用於秘密作用域的秘密ACL的ACL權限級別。

許可

描述

允許在此範圍內對秘密執行讀取操作(get, list)。

允許在這個秘密範圍內讀寫秘密。

管理

允許讀/寫acl,並對這個秘密範圍讀/寫秘密。

ScopeBackendType

秘密範圍後端類型。

隻支持databrick支持的秘密作用域。

類型

描述

一個秘密範圍,秘密存儲在Databricks管理的存儲中,並使用基於雲的特定加密密鑰進行加密。