本文属于【Azure 架构师学习笔记】系列。
本文属于【Azure Databricks】系列。
接上文 【Azure 架构师学习笔记】- Azure Databricks (3) - 再次认识DataBricks
前言
Azure Databricks有access token,是具有ADB内部最高权限的token。在云环境中这些高级别权限的secret都需要很好地被保护起来。
ADB提供了两种Secret Scopes:
- Azure Key Vault-backed: secret 存储在Azure Key Vault, ADB 通过创建于AKV支持的Secret Sope来实现引用Secret。
- Databricks-backed:Databricks自带有一个数据库,也可以通过存储在这个数据库来引用secret。 这种scope的好处在于可以不依赖于具体平台的设置, 在迁移过程中起到比较大的便利作用。
创建Key Vault和Secret
简单创建一个KV:
这里使用默认配置即可:
这里使用"Vault access policy"而不用RBAC, 虽然RBAC是推荐选项。
创建成功后,要记录好DNS 名字(也就是Vault URI)和Resource ID, 这个在后续步骤中需要使用。
创建Key Vault Secret
在Databricks中创建Azure Key Vault Secret Scope
进入ADB 之后,复制URL, 即下方蓝色部分,并用它替换成这样格式:https://<Databricks_url>#secrets/createScope
但是注意是大小写敏感,比如Scope的S必须是大写。如下图
填写信息并创建,创建完毕后ADB即可连接到这个Key Vault了。下面的Creator意味着只有创建者能用,而all users意味着这个workspace下的用户都能用。正式环境下需要根据ADB 的使用情况决定。
在Notebook中使用Azure Key Vault Secret Scope和Secret
接下来试一下如何使用这个Secret Scope进行访问,我们进入ADB,创建一个notebook。
根据上面的信息,输入下面的Pyhon代码并执行:
dbutils.secrets.get(scope = "akv_secret_scope_test", key = "adlsaccesskey") #azurekeyvault_secret_scope --> Azure Key Vault based scope which we created in Databricks
#BlobStorageAccessKey --> Secret name which we created in Azure Key Vault
如果出现[REDACTED]那么意味着成功访问。
我们也可以在notebook里面执行下面命令来查看当前已经创建了的secretscope:
dbutils.secrets.listScopes()