【问题标题】:ARM Deployment using KeyVault and certificates for Azure Data Lake Store使用 KeyVault 和 Azure Data Lake Store 证书的 ARM 部署
【发布时间】:2017-08-18 08:34:11
【问题描述】:

我基本上想创建我的 HDI/Spark 集群,它使用 ARM 模板和 Azure Key Vault 访问 Azure Data Lake Store。

到目前为止,我手动创建了集群并存储了 ARM 模板。然后我尝试从 Azure Key Vault 填充敏感值,但我正在努力如何正确传递“identityCertificate”。

我也按照以下步骤创建证书和所有内容:https://github.com/Azure/azure-quickstart-templates/tree/master/201-hdinsight-datalake-store-azure-storage 然后这个步骤将证书上传到 KeyVault:https://blogs.technet.microsoft.com/kv/2016/09/26/get-started-with-azure-key-vault-certificates/

但是,在我的 ARM 模板中引用 KeyVault 机密总是会出现此错误:

{“状态”:“失败”,“错误”:{“代码”:“资源部署失败”, "message": "资源操作完成,终端配置状态为 'Failed'。", "details": [ { "code": "InvalidDocumentErrorCode", "message": "DeploymentDocument 'AmbariConfiguration_1_7' 验证失败。错误:'访问 datalake 存储帐户 gbhdi 时出错:指定的网络密码不正确。\r\n。'" } ] } }

使用相同的证书等在 Azure 门户中手动执行所有操作都可以正常工作 我还尝试使用我的证书的 Base64 编码值手动设置“identityCertificate”参数,但这也不起作用

如果我对参数进行硬编码,我需要将哪个值传递给它?

【问题讨论】:

    标签: azure azure-data-lake azure-keyvault azure-resource-manager


    【解决方案1】:

    似乎我发现了这个问题,它实际上与之前失败的 ARM 部署有关,这些部署会留下一些 HDI 集群碎片,而新部署不会覆盖这些碎片,而是使用旧设置

    删除集群后(无论如何都无法正常工作),我可以按预期部署它。

    但是,值得一提的是,证书必须作为 Secret 而不是 Key 存储在 KeyVault 中,并且必须进行 base64 编码!

    这是我使用的 PowerShell 脚本:

    #Add Certificate to KeyVault
    
    $base64Cert = [System.Convert]::ToBase64String((Get-Content $certFilePath -Encoding Byte))
    $base64Cert | Out-File $certFilePath.Replace(".pfx", ".base64.txt")
    $cer3 = Set-AzureKeyVaultSecret -VaultName $vaultName -Name $certName -
    
    SecretValue (ConvertTo-SecureString –String $base64Cert –AsPlainText –Force)
    

    希望能帮助其他面临同样问题的人!

    -格哈德

    【讨论】:

      【解决方案2】:

      感谢 Gerhard,我想你为我节省了几个小时的调查时间。

      首先我尝试使用纯文本值。我在模板中将 SecureString 类型更改为 String,并提供了纯文本密码。对于identityCertificate 参数,我添加了证书的Base64 编码字符串,一切正常。如果您想对其进行硬编码,那将是这样做的方法。这可能是由于之前的失败尝试造成的。

      之后我尝试使用密钥保管库。我将密码作为机密添加到保管库中,并将证书添加为...作为证书。然后它以您提到的完全相同的错误消息失败。因此解决方案是将 Base64 编码的证书也添加为机密(通过 UI)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多