在Azure Databricks上獲取Azure 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}'.")
在執行中,會先後遇見
%pip install azure.keyvault.secrets %pip install azure.identity dbutils.library.restartPython()
執行效果截圖:
解決以上兩個問題後,再次執行Python Code,可以成功獲取到Key Vault中的機密資訊。
當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】
當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!