使用手臂从密钥库导入apns certyfikace

时间:2019-09-26 13:12:25

标签: azure azure-resource-manager azure-notificationhub

我有一个可以创建通知中心名称空间和中心本身的手臂。 我也将证书导入了天蓝色的密钥库。 是否可以在布防或布防后使用此证书?

1 个答案:

答案 0 :(得分:1)

是的,您可以在ARM模板中使用密钥库密钥,但是只能以两种方式使用。在ARM模板中像这样引用关键文件库机密:

"sslCertData": {
  "reference": {
    "keyVault": {
      "id": "/subscriptions/<subscription-id>/resourceGroups/<rg-name>/providers/Microsoft.KeyVault/vaults/<vault-name>"
    },
  "secretName": "[parameters('keyVaultSslCertDataSecretName')]"
  }
}

但是,您只能在parameters.json文件中使用此引用。

使用密钥库的第一种方法包括创建带有用于秘密数据的参数的模板:

"sslCertData": {
  "type": "securestring"
}

然后创建一个包含上述密钥库和秘密名称引用的parameters.json文件,并从命令行通过参数文件部署模板:

New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroupName `
  -TemplateUri <The Template File URI> `
  -TemplateParameterFile <The Parameter File>

第二种方法是使用父模板或“包装器”模板,该模板将子模板部署到您要使用机密的位置。

在父模板中,您将部署以下资源:

{
  "type": "Microsoft.Resources/deployments",
  "name": "childTemplate",
  "apiVersion": "2017-06-01",
  "properties": {
    "mode": "incremental",
    "templateLink": {
    "uri": "[variables('child-template-url')]",
    "contentVersion": "1.0.0.0"
    },
    "parameters": {
      "sslCertData": {
        "reference": {
          "keyVault": {
            "id": "[resourceId(parameters('keyVaultSubscriptionId'),  parameters('keyVaultResourceGroupName'), 'Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
          },
          "secretName": "[parameters('keyVaultSslCertDataSecretName')]"
        }
      }
    }
  }
}

传递到子模板的参数用于构造参数文件。因此,就像在第一种方法中一样,我们使用模板文件和参数文件来访问密钥库机密,但是我们可以从门户而不是命令行中进行部署。