【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式
问题描述
在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://<your key vault name>.vault.azure.cn/" credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential) retrieved_secret = client.get_secret("<your secret name>") print(f"Your secret is '{retrieved_secret.value}'.")
在执行中,会先后遇见
- azure.keyvault.secrets 和 azure.identity module没有安装
- 当前环境使用的Application ID 没有权限访问key vault的问题。
> 没有安装Module的解决办法可以直接使用 %pip install <module name> 解决
%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://<Azure Databricks Service URL>.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】
【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式的更多相关文章
- 获取Executor提交的并发执行的任务返回结果的两种方式/ExecutorCompletionService使用
当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直 ...
- 获取select文本框的下拉菜单文字内容的两种方式
<body> <div class="box"> <select id="sel"> <option value=&q ...
- Azure KeyVault(三)通过 Microsoft.Azure.KeyVault 类库在 .NET Core 上获取 Secrets
一,引言 上一篇文章,我们介绍了 Azure Key Vault 在实际项目中的用途,Azure Key Vault 作为密钥管理的服务,我们可以很轻松的利用它创建和控制用于加密的密钥,和管理证书和机 ...
- WebApplicationContext初始化的两种方式和获取的三种方式
原博客地址:http://blog.csdn.net/lmb55/article/details/50510547 接下来以ContextLoaderListener为例,分析它到底做了什么? app ...
- strus2中获取表单数据 两种方式 属性驱动 和模型驱动
strus2中获取表单数据 两种方式 属性驱动 和模型驱动 属性驱动 /** * 当前请求的action在栈顶,ss是栈顶的元素,所以可以利用setValue方法赋值 * 如果一个属性在对象栈,在页面 ...
- hadoop上C++开发两种方式的例子
百度在使用Hadoop过程中同样发现了Hadoop因为Java语言带来的低效问题,并对Hadoop进行扩展. 而在此之前,百度也尝试了 Hadoop PIPES 和 Hadoop Streamming ...
- Express全系列教程之(四):获取Post参数的两种方式
一.关于POST请求 post方法作为http请求很重要的一部分,几乎所有的网站都有用到它,与get不同,post请求更像是在服务器上做修改操作,它一般用于数据资源的更新.相比于get请求,post所 ...
- iOS 通过URL网络获取XML数据的两种方式
转载于:http://blog.csdn.net/crayondeng/article/details/8738768 下面简单介绍如何通过url获取xml的两种方式. 第一种方式相对简单,使用NSD ...
- 推送代码到GitHub上的两种方式
要想将本地Git上代码提交到GitHub可以使用两种协议进行提交,分别使用HTTPS和SSH两种协议,如下所示. 当使用HTTPS协议时,每次推送的时候都需要输入GitHub平台的用户名密码. ...
- Java反射02 : Class对象获取的三种方式和通过反射实例化对象的两种方式
1.Class对象获取的三种方式 本文转载自:https://blog.csdn.net/hanchao5272/article/details/79361463 上一章节已经说过,一般情况下,Jav ...
随机推荐
- 前端vue uni-app百度地图定位组件,显示地图定位,标记点,并显示详细地址
快速实现前端百度地图定位组件,显示地图定位,标记点,并显示详细地址; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12677 ...
- SparkMLlib机器学习实践:基于聚类的社交媒体分析
目录 <Spark MLlib 机器学习实践:基于聚类的社交媒体分析> 一.引言 社交媒体作为现代营销的一种重要手段,已经被广泛应用于市场调研.品牌监控.内容分析.用户互动等领域.在这个领 ...
- O2OA(翱途)开发平台如何在流程表单中使用基于Vue的ElementUI组件?
本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计,O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置,不需要过多的代码编写,业务人员可以直接进行修改操作. 在流程表单设计界面, ...
- IoTOS-v1.2.1接入J-IM(t-io)后台通知App
IoTOS v1.2.1 一.登录页增加可修改轮播 登录页增加可修改数据轮播: 首页轮播图由背景图片.标题.介绍.按钮一.按钮二(可配置跳转地址打开方式)组合而成 二.登录页增加常用运营商平台& ...
- 【环境搭建】多版本的jdk共存
问题来源 burpsuite 2021需要使用Java 9及以上版本,而其他工具需要Java 8,因此需要两个版本共存,并且做到除了burpsuite以外的工具默认使用Java 8打开. 需要的软件 ...
- 推荐一款.NET开源的轻量级分布式服务框架
前言 今天要给大家推荐一款由新生命开发团队开源的.NET轻量级分布式服务框架:星尘分布式平台(NewLife.Stardust). 项目介绍 星尘是一个轻量级分布式服务框架.它的功能包含配置中心.集群 ...
- 2023-07-22:一共有n个项目,每个项目都有两个信息, projects[i] = {a, b}, 表示i号项目做完要a天,但是当你投入b个资源,它就会缩短1天的时间, 你一共有k个资源,你的目
2023-07-22:一共有n个项目,每个项目都有两个信息, projects[i] = {a, b}, 表示i号项目做完要a天,但是当你投入b个资源,它就会缩短1天的时间, 你一共有k个资源,你的目 ...
- Linux 设置 VI 快捷键 -- 在多个打开的文件中切换
场景 部署完一系列服务后,想要查看所有服务的 catelina.out 日志: vi $(find /data/http | grep catalina.out | grep -v bak) 这个命令 ...
- 【pandas小技巧】--缺失值的列
在实际应用中,数据集中经常会存在缺失值,也就是某些数据项的值并未填充或者填充不完整.缺失值的存在可能会对后续的数据分析和建模产生影响,因此需要进行处理. pandas提供了多种方法来处理缺失值,例如删 ...
- [selenium]浏览器基本操作
前言 版本: python:3.9 selenium:4.1.5 浏览器:firefox 创建浏览器对象 from selenium import webdriver driver = webdriv ...