2017-04-25 84 views
0

我正在嘗試使用Visual Studio部署Azure HD洞察Spark模板。 HD insight集羣訪問Data Lake和Data Lake Storage,我創建了一個帶有證書的服務主體。我已將證書存儲在Azure Vault中,作爲祕密並嘗試在我的Azure資源管理器模板中訪問它。但是,它拋出了以下錯誤Service Principal Details are invalid 我已經從正在運行的集羣下載了證書,證書沒有任何問題。我總是使用此證書通過Portal創建羣集。無法使用存儲在Azure資源模板中密鑰保管庫中的證書祕密值

"reference": { 
    "keyVault": { 
     "id": "/subscriptions/e3f93473-xxx/resourceGroups/Production/providers/Microsoft.KeyVault/vaults/myvault" 
    }, 
    "secretName": "certificateNew" 
    } 
+0

我不認爲這是證書問題。如果可能的話,你可以檢查這個[鏈接](https://github.com/Azure/azure-powershell/issues/655)可以使用你的賬戶登錄你的賬戶'Login-AzureRmAccount -ServicePrincipal -TenantId $ tenantId -CertificateThumbprint $ thumbprint -ApplicationId $ azureAdApplication.ApplicationId'。 –

+0

您的參數語法看起來不錯 - Vault base64中的證書是否已編碼? –

+0

我不確定證書是否是vault是base64編碼的。基本上,我在使用Azure門戶創建HD洞察羣集時下載了此證書 – jane

回答

0

有同樣的問題,並管理通過使用this page的powershell命令到PFX證書爲基64字符串值轉換來解決它。然後我將密鑰庫中的字符串值上傳到祕密中。

$servicePrincipalCertificateBase64 = [System.Convert]::ToBase64String([System.IO.File]::ReadAllBytes(path-to-servicePrincipalCertificatePfxFile)) 

Github上有幾個腳本可將PFX轉換爲Base-64並將其上傳到您指定的Key Vault。我嘗試了其中的一些,但不知何故,他們轉換爲一種格式,導致ARM模板的問題。我提到的方法解決了我的問題。

+0

儘管鏈接背後的文檔可能會回答您的問題,但您也應該在其中添加內容,以防止文檔在移動或刪除時丟失。 – Markus

相關問題