Azure Контейнер BLOB-объекта хранилища назначает RBA C с использованием ARM - PullRequest
0 голосов
/ 18 февраля 2020

В настоящее время у нас есть шаблоны ARM, которые создают учетные записи и контейнеры в решении, однако мне, кажется, не удается назначить RBA C доступ к контейнеру в шаблоне ARM. Я попытался использовать решение Эрика здесь

"type": "Microsoft.Storage/storageAccounts/blobServices/containers/providers/roleAssignments",
  "apiVersion": "2017-09-01",
  "name": "[concat(parameters('storageAccountName'),'/default/filedrop/Microsoft.Authorization/{NEW GUID}')]",
  "properties": {
    "roleDefinitionId": "ba92f5b4-2d11-453d-a403-e96b0029c9fe",
    "principalId": "[parameters('ServicePrincipalId')]"
}

Я получаю ошибку "error": {"code": "BadRequestFormat", "message": "Запрос был неправильно отформатирован «. } Кто-нибудь видит, где я иду не так?

1 Ответ

1 голос
/ 18 февраля 2020

Вот что я использовал: https://github.com/juunas11/managedidentity-filesharing/blob/8410ed3f3d4061de7d40531c025bf6e474489135/Joonasw.ManagedIdentityFileSharingDemo.ARM/azuredeploy.json#L223 -L236

    {
      "type": "Microsoft.Storage/storageAccounts/blobServices/containers/providers/roleAssignments",
      "apiVersion": "2018-01-01-preview",
      "name": "[concat(parameters('storageAccountName'), '/default/', parameters('storageContainerName'), '/Microsoft.Authorization/', guid(resourceGroup().id, 'webAppFilesAccess'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices/containers', parameters('storageAccountName'), 'default', parameters('storageContainerName'))]",
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ],
      "properties": {
        "principalId": "[reference(resourceId('Microsoft.Web/sites', parameters('webAppName')), '2016-08-01', 'Full').identity.principalId]",
        "roleDefinitionId": "[variables('storageBlobContributorRoleId')]"
      }
    }

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

Функция guid () очень удобна, так как вы можете дать ей некоторый текст, и если текст такой же, он будет выдавать один и тот же GUID каждый раз.

...