秘密API 2.0

Secrets API允许您管理秘密、秘密作用域和访问权限。要管理秘密,你必须:

  1. 创建秘密作用域

  2. 将你的秘密添加到范围中

  3. 如果你有优质及以上计划将访问控制分配给秘密作用域

要了解BOB低频彩有关创建和管理秘密的更多信息,请参见保密管理而且秘密访问控制.您通过使用访问和引用笔记本和作业中的秘密秘密实用程序(dbutils.secrets)

重要的

要访问Databricks REST api,必须进行身份验证

创建秘密作用域

端点

HTTP方法

2.0 /机密/范围/创建

帖子

创建一个Databricks-backedsecret范围,其中秘密存储在databicks管理的存储中,并使用基于云的特定加密密钥进行加密。

作用域名称:

  • 在工作空间中必须是唯一的。

  • 必须由字母数字、破折号、下划线和点组成,且不能超过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.neidfyre.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.neidfyre.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.neidfyre.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.neidfyre.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.neidfyre.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—netrc—gethttps:// < databricks-instance > / api / 2.0 /机密/列表——数据范围< scope-name >|金桥。

替换:

  • < databricks-instance >和数据库工作空间实例名称例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

  • < scope-name >例如,使用secrets作用域的名称我的领域

本例使用. netrc文件和金桥

响应

“秘密”“关键”“my-string-key”“last_updated_timestamp”1520467595000},“关键”“my-byte-key”“last_updated_timestamp”1520467595000

返回的last_updated_timestamp的单位是从epoch开始的毫秒。

抛出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.neidfyre.com

  • 的内容put-secret-acl.json使用适合您的解决方案的字段。

本例使用. netrc文件。

主要field指定一个现有的Databricks主体,使用该主体的唯一标识符授予或撤销访问权。用户通过电子邮件指定,服务主体通过电子邮件指定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.neidfyre.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—netrc—gethttps:// < databricks-instance > / api / 2.0 /机密/ acl /——数据'范围= < scope-name >主要= <主体名称>”|金桥。

替换:

  • < databricks-instance >和数据库工作空间实例名称例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

  • < scope-name >例如,使用secrets作用域的名称我的领域

  • <主体名称>例如,使用主体的名称用户

本例使用. 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—netrc—gethttps:// < databricks-instance > / api / 2.0 /机密/ acl /列表——数据范围< scope-name >|金桥。

替换:

  • < databricks-instance >和数据库工作空间实例名称例如,dbc-a1b2345c-d6e7.cloud.www.neidfyre.com

  • < scope-name >例如,使用secrets作用域的名称我的领域

本例使用. 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

秘密作用域后端的类型。

只支持databicks支持的秘密作用域。

类型

描述

秘密作用域,秘密存储在Databricks管理的存储中,并使用基于云的特定加密密钥进行加密。