問題描述
在使用Azure Key Vault的過程中控嗜,遇見無法獲取機(jī)密信息怀估,在不方便直接寫代碼的情況下损姜,快速使用Azure CLI指令來驗(yàn)證當(dāng)前使用的認(rèn)證是否可以獲取到正確的機(jī)密值。
使用CLI的指令為:
第一步:設(shè)置azure 的云環(huán)境參數(shù)忠荞,指定為中國區(qū)云服務(wù)
az cloud set --name AzureChinaCloud
第二步:使用az login并且指定 servie principal來完成登錄
az login --service-principal --tenant <Tenant-ID> --username <Client-ID> --password <Client-secret> --output table
第三步:獲取azure key vault的機(jī)密蒋歌,但是遇見server principal因?yàn)闆]有權(quán)限綁定訂閱號而無法完成。
az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value"
結(jié)果卻無法獲取到機(jī)密值:
問題解答
因?yàn)樾枰焖俚霓k法來使用Service Principal賬號是否有權(quán)限委煤,是否能成功獲取到Key Vault機(jī)密信息堂油,在不寫代碼的情況下,處理CLI指令外碧绞,還有REST API可以調(diào)用府框。所以想到了使用curl指令直接調(diào)用API。
第一步:安全curl
- 在Windows系統(tǒng)中讥邻,下載到本地后即可使用:https://curl.se/windows/
- 在Linux系統(tǒng)中迫靖,使用命令:sudo apt-get install curl 進(jìn)行安裝。
第二步:通過Service Principal的賬號信息在AAD中獲取到Token
curl https://login.partner.microsoftonline.cn/<Tenant-ID>/oauth2/token --data "grant_type=client_credentials&client_id=<Client-ID>&client_secret=<Client-secret>&resource=https://vault.azure.cn"
- 替換 <Tenant-ID>计维,<Client-ID>袜香,<Client-secret>為真實(shí)值
第三步:調(diào)用Key Vault API獲取結(jié)果
curl https://<your-key-vault-name>.vault.azure.cn/secrets/<your-secret-name>?api-version=7.4 -H "Authorization: Bearer <your-token-in-step-2>"
- 替換 <your-key-vault-name>,<your-secret-name>鲫惶,<your-token-in-step-2>為真實(shí)值
執(zhí)行結(jié)果
附錄:Azure CLI 和 CURL 合集
# Azure CLI:
az cloud set --name AzureChinaCloud
az login --service-principal --tenant <Tenant-ID> --username <Client-ID> --password <Client-secret> --output table
az keyvault secret show --name "ExamplePassword" --vault-name "<your-unique-keyvault-name>" --query "value" # CURL:
curl https://login.partner.microsoftonline.cn/<Tenant-ID>/oauth2/token --data "grant_type=client_credentials&client_id=<Client-ID>&client_secret=<Client-secret>&resource=https://vault.azure.cn" curl https://<your-key-vault-name>.vault.azure.cn/secrets/<your-secret-name>?api-version=7.4 -H "Authorization: Bearer <your-token-in-step-2>"
參考資料
1: https://docs.azure.cn/zh-cn/key-vault/secrets/quick-create-cli
2: https://learn.microsoft.com/en-us/azure/databricks/dev-tools/azure-cli-login-service-principal
3: https://jiasli.github.io/azure-notes/aad/Service-Principal-get-token-with-curl.html
當(dāng)在復(fù)雜的環(huán)境中面臨問題,格物之道需:濁而靜之徐清实抡,安以動之徐生欠母。 云中,恰是如此!