Databricks 第7篇:管理Secret
Azure中的Secret是指密码、凭证和密钥等,举个例子,使用Azure Databricks Secret来存储凭证,并在notebook和job中引用它们,而不是直接在notebook中输入凭据。
Secret Scope是Secret的集合,每一个Secret是由name唯一确定的。每一个Databricks 的workspace最多创建100个Secret Scope。Azure 支持两种类型的Secret Scope:Azure Key Vault-backed 和 Databricks-backed。
- 基于Azure Key Vault的Secret Scope:要引用存储在Azure Key Vault中的Secret,可以创建基于Azure Key Vault的Secret Scope,基于Azure Key Vault的Secret Scope对于Key Vault来说是只读的。
- 基于Databricks的Secret Scope:基于Databricks的Secret Scope存储在由Azure Databricks拥有和管理的加密数据库中,Secret Scope的name在工作空间中必须唯一,必须包含字母数字字符,破折号,下划线和句点,并且不得超过128个字符。名称被认为是不敏感的,并且工作空间中的所有用户都可以读取。
本文重点介绍基于Azure Key Vault的Secret Scope。
一,创建基于Azure Key Vault的Secret Scope
使用 Azure Portal UI创建Azure Key Vault-backed 的 secret scope。首先,在创建该类型的Secret Scope之前,确保对Azure Key Vault实例具有Contributor权限。
打开网页“https://<databricks-instance>#secrets/createScope”,这个URL是大小写敏感的,注意URL中的“createScope”,其中的“Scope”首字母必须是大写的。
主要的配置选项:
- Scope Name:指定Secret Scope的name,该名称是大小写敏感的。
- Manage Principal:用于定义该Secret Scope的Manage Principal(拥有管理权限的安全主体),选项All Users表示所有的用户都有MANAGE权限,选项Creator表示只有Secret Scope的创建者拥有MANAGE权限。MANAGE权限拥有对Secret Scope的读写权限,推荐选项是Creator,把MANAGE权限只授权给Creator。但是,用户的账户必须具有Azure Databricks Premium Plan ,才可以选择Creator。
- DNS Name:是Vault URI,从Key Vault的Properties面板中可以查看到。
- Resource ID:从Azure Key Valut的属性面板中可以查看到Resource ID。
二,个人访问Token
如果要访问Databricks REST API,可以使用Databricks personal access tokens来进行权限验证。
点击Databricks 工作区右上角的user profile icon
点击“User Settings”,进入到“User Settings”页面,在该页面中点击“Generage New Token”生成新的Token。
注意:要把Token保存起来,再次进入该页面,Token不再可见。
三:配置Databricks CLI
使用Databricks CLI (command-line interface)命令来验证Secret Scope是否创建成功。
Step1:安装Databricks CLI
pip install databricks-cli
查看Databricks CLI是否安装成功,可以运行Databricks CLI -h获得help文档:
databricks -h
Step2:配置验证信息
输入Databricks Host,并输入生成的个人访问Token
databricks configure --token Databricks Host (should begin with https://): Token:<personal-access-token>
Step3:查看Secret Scope列表
databricks secrets list-scopes
Step4:删除Secret Scope
注意:<scope-name>是大小写敏感的。
databricks secrets delete-scope --scope <scope-name>
参考稳定:
Authentication using Azure Databricks personal access tokens