импортировать apns certyfikace из хранилища ключей, используя arm - PullRequest
1 голос
/ 26 сентября 2019

У меня есть рука, которая создает мне пространство имен концентратора уведомлений и сам концентратор.Я также импортировал сертификат в хранилище ключей Azure.Можно ли использовать этот сертификат на вооружении или после развертывания на руке?

1 Ответ

1 голос
/ 27 сентября 2019

Да, вы можете использовать ключевые секретные хранилища в шаблонах 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')]"
        }
      }
    }
  }
}

Параметры, передаваемые в дочерний шаблон, используются для создания файла параметров.Так же, как и в первом методе, мы используем файл шаблона и файл параметров, чтобы иметь доступ к секретам хранилища ключей, но мы можем развернуть его из портала, а не из командной строки.

...