【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式

azure,key,vault,databricks,获取,中所,存储,机密,secret,两种,方式 · 浏览次数 : 3

小编点评

**方式一:在Databricks的Notebook 中读取Key Vault的Secret实例代码** ```python import os from azure.keyvault.secrets import SecretClient from azure.identity import DefaultAzureCredentialKVUri = f"https://.vault.azure.cn/" credential = DefaultAzureCredential() client = SecretClient(vault_url=KVUri, credential=credential) retrieved_secret = client.get_secret("") print(f"Your secret is '{retrieved_secret.value}'.") ``` **方式二:为Databricks定义Key Vault backend-secret scope,然后使用Databricks的工具包获取secret** 1. 在Databricks的页面中添加 key Vault backed-secret scope: ``` https://.databricks.azure.cn/#secrets/createScope ``` 2. 使用如下的URL打开Create Secret ScopeURL : ``` https://.databricks.azure.cn/#secrets/createScope ``` 3. 在保存中如果遇见权限问题,可以在Key Vault的 Access Policy中为 AzureDatabricks 添加权限(GET, SET等权限)设置完成后,回到Databricks的Notebook页面,使用如下语句进行验证: ```python ENCODED_AUTH_KEY = dbutils.secrets.get(scope = "scope name in databricks", key = "") print(f"this result is:'{ENCODED_AUTH_KEY}'\") ``` **注意:** * 在方式一中,需要提前安装 `azure.keyvault.secrets` 模块。 * 在方式二中,需要在Key Vault的 Access Policy页面中为 AzureDatabricks 添加权限(GET, SET等权限)。

正文

问题描述

在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}'.")

在执行中,会先后遇见

  1. azure.keyvault.secrets 和 azure.identity module没有安装
  2. 当前环境使用的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)的两种方式相似的内容:

【Azure Key Vault】在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式

问题描述 在Azure Databricks上获取Azure Key Vault中所存储的机密(secret)的两种方式? 问题解答 方式一: 在Databricks的Notebook 中,直接编写Python代码读取Key Vault的Secret 实例代码如下: import os from a

【Azure 应用服务】 在App Service中无法上传证书[Private Key Certificates (.pfx)],导入Azure Key Vault中的证书也无法成功

问题描述 在App Service的TLS/SSL settings页面,切换到Private Key Certificates (.pfx),通过Import Key Vault Certificate方式上传证书,提示成功,实际没有上传成功。通过Upload Certificate的方式上传证书

【Azure Key Vault】Key Vault能不能生成DigiCert证书?能不能自动 Rotate 证书呢?

问题描述 因为Azure Key Vault服务上保管的证书可以轻松的与其他Azure服务集成使用,所以需要知道 Key Vault 能不能生成 DigiCert 证书?能不能自动 Rotate 证书呢? 问题解答 Azure Key Vault本身只是一个保管库,它不会颁发证书。但是可以在页面上直

Azure Terraform(十四)Azure Key Vault 的机密管理

一,引言 最近有网友私信我,将 Terraform 部署到 Azure 是一种将基础结构作为代码进行管理的好方法,但是如何使用 Azure Key Vault 来存储我们的 Secret ?在这篇博文中,我将给大家展示一下展示如何使用 Terraform 引用 Azure Key Vault Sec

【Azure 环境】向Azure Key Vault中导入证书有输入密码,那么导出pfx证书的时候,为什么没有密码呢?

问题描述 将pfx证书导入Key Vault的证书时,这个PFX需要输入正确的密码导入成功。但是当需要导出时,生成的pfx证书则不需要密码。这是正常的情况吗? 问题解答 是的,这是Azure Key Vault 证书导入/导出 功能的设计使然。当一个PFX不需要密码的时候,也可以直接导入到Azure

【Azure 环境】把OpenSSL生产的自签名证书导入到Azure Key Vault Certificate中报错

问题描述 通过本地生成的自签名证书导入到Azure Key Vault Certificate报错。 错误信息 the specified PEM X.509 certificate content can not be read. Please check if certificate is in

【Azure Spring Cloud】Spring Cloud Azure 4.0 调用Key Vault遇见认证错误 AADSTS90002: Tenant not found.

问题描述 Spring Cloud Azure 4.0 调用 Key Vault 的代码中,没有找到设置 authority-host 的配置项,导致认证出现错误 Caused by: com.microsoft.aad.msal4j.MsalServiceException: AADSTS9000

【Azure Developer】Springboot 集成 中国区的Key Vault 报错 AADSTS90002: Tenant 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' not found

spring.cloud.azure.keyvault.secret.property-sources[0].profile.cloud-type=AZURE_CHINA

【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值

问题描述 App Service中,如何通过 Application Setting 来配置 Key Vault中的值呢? 问题解答 首先,App Service服务可以直接通过引用的方式,无需代码的情况下,为Application Setting中的Key配置Key Vault中保存的值。参考官方

【Azure Fabric Service】Service Fabric 托管群集通过 Connect-ServiceFabricCluster 连接时候报错 CertificatedNotMatched

问题描述 Service Fabric 托管群集, 使用Key Vault中证书,把证书导入到本地安装后,使用该证书的 Thumbprint 作为指令 Connect-ServiceFabricCluster 的 ServerCertThumbprint 和FindValue 的值。结果连接失败,错