问题描述
在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式?
问题解答
方式一: 在Databricks的Notebook 中,直接编写Python代码读取Key Vault的Secret
实例代码如下:
import os from azure.keyvault.secrets import SecretClient from azure.identity import DefaultAzureCredential KVUri = f"https://.vault.azure.cn/" credential = DefaultAzureCredential() client = SecretClient(vault_url=KVUri, credential=credential) retrieved_secret = client.get_secret("") print(f"Your sec服务器托管网ret is '{retrieved_secret.value}'.")
在执行中,会先后遇见
- azure.keyvault.secrets 和 azure.identity module没有安装
- 当前环境使用的Application ID 没有权限访问key vault的问题。
> 没有安装Module的解决办法可以直接使用 %pip install 解决
%pip install azure.keyvault.secrets %pip install azure.identity dbutils.library.restartPython()
执行效果截图:
> Application ID没有权限访问的问题可以通过Key Vault的Access Policy页面,为Application ID赋予读取权限来解决
解决以上两个问题后,再次执行Python Code,可以成功获取到Key Vault中的机密信息。
方式二:为Databricks定义Key Vault backend-secret scope,然后使用Databricks的工具包获取secret
当Azure Databricks和Azure Key Vault资源都创建成功后。
首先在Databricks的页面中添加 key Vault backed-secret scope,使用如下的URL打开Create Secret Scope
URL : https://.databricks.azure.cn/#secrets/createScope
在保存中如果遇见权限问题,可以在Key Vault的 Access Policy中为 AzureDatabricks 添加权限(GET, SET等权限)
设置完成后,回到Databricks的Notebook页面,使用如下语句进行验证:
ENCODED_AUTH_KEY = dbutils.secrets.get(scope = "scope name in databricks", key = "the secret name in key value") print(f"this result is:'{ENCODED_AUTH_KEY}'")
执行效果截图:
参考资料:
Databricks Secrets scopes: https://learn.microsoft.com/zh-cn/azure/databricks/security/secrets/secret-scopes
Databricks Secrets: https://learn.microsoft.com/zh-cn/azure/databricks/security/secrets/secrets
Databricks Escrets redaction: https://learn.microsoft.com/zh-服务器托管网cn/azure/databricks/security/secrets/redaction
【END】
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
源创会,线下重启!2023年7月1日深圳站—基础软件技术面面谈!免费票限时抢购! 作者 | 百度APP技术平台 导读 在移动互联网快速发展的背景下,保护Android应用程序的安全性和知识产权变得尤为重要。为了防止恶意攻击和未授权访问,通常采用对dex文件进…