Разверните сертификат веб-приложения из секретного хранилища ключей и используйте его для создания привязки SSL - LinkedAuthorizationFailed - PullRequest
0 голосов
/ 04 июля 2019

Я пытаюсь добавить пользовательский домен с SSL-привязкой к веб-приложению с ARM-шаблоном.Я могу сделать это вручную на портале Azure, но я хочу, чтобы он работал с ARM-шаблоном.

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

Я использую этот шаблон github https://github.com/Azure/azure-quickstart-templates/tree/master/201-web-app-certificate-from-key-vault

Это ошибка, которую я получаю, когда пытаюсь развернуть ARM-шаблон сконвейер выпуска.

«ошибка»: {
«код»: «LinkedAuthorizationFailed»,
«сообщение»: «Клиент« xxxx »с идентификатором объекта« xxxx »имеет разрешениевыполнить действие «Microsoft.Web / Certificates / Write» в области действия '***/providers/Microsoft.Web/certificates/xxxxx', однако у него нет разрешения на выполнение действия «запись» в связанных областях (ях) '/subscriptions/xxxx/resourceGroups/xxx/providers/Microsoft.KeyVault/vaults/xxxxx'. "
}

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

Я решил это, создав 4 ресурса в шаблоне ARM.Сертификат, план обслуживания приложения, веб-приложение и привязка имени хоста.Точно так же, как этот github azure-quickstart-template https://github.com/Azure/azure-quickstart-templates/tree/master/201-web-app-custom-domain-and-ssl.

Ключом для меня было изменение ресурса сертификата путем добавления pxfBlob и удаления свойств хранилища ключей, см. Код ниже.CertificatePfx является защищенной строкой, которая устанавливается в конвейере выпуска из keyVault.

{
  "type": "Microsoft.Web/certificates",
  "name": "[parameters('certificateName')]",
  "apiVersion": "2016-03-01",
  "location": "[resourceGroup().location]",
  "properties": {
    "name": "[parameters('webAppName')]",
    "serverFarmId": "[concat(resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName')))]",
    "hostNames": [
      "parameters('hostname_wildcard')",
      "parameters('hostname_domain')"
    ],
    "pfxBlob": "[parameters('certificatePfx')]"
  },
  "dependsOn": [
    "[concat('Microsoft.Web/sites/',parameters('webAppName'))]"
  ]
},
0 голосов
/ 06 июля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...