WedX - журнал о программировании и компьютерных науках

Как назначить роль приложения управляемому удостоверению в шаблоне ARM

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

Я обновляю свой шаблон развертывания следующим ресурсом

   {
            "type": "Microsoft.Authorization/roleAssignments",
            "apiVersion": "2017-09-01",
            "name": "<random Guid>",
            "dependsOn": [
                "[concat('Microsoft.Compute/virtualMachineScaleSets/', '<scaleset name>')]"
            ],
            "properties": {
                
                "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '<app role guid>')]",
                "principalId": "[reference(resourceId('Microsoft.Compute/virtualMachineScaleSets', '<scaleset name>'), '2019-07-01', 'Full').Identity.principalId]",
                "scope": "[resourceGroup().id]"
            }
}

Однако развертывание завершается со следующим исключением

The specified role definition with ID '<app role guid>' does not exist.

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

Это вообще возможно?


Ответы:


1

вот пример того, как это сделать https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-template#new-service-principal

вам нужно будет добавить PrincipalType of Serviceprincipal, потому что, согласно документам, при создании нового serviceprincipal может возникнуть задержка, поэтому если вы этого не сделаете, произойдет сбой.

Изменить: извините, я не знал, что вы пытаетесь выполнить назначение роли приложения. Я не верю, что в настоящее время это поддерживается в шаблонах рук. роли rbac, которые можно назначить с помощью назначения ролей, не являются ролями приложения. например. вы не можете назначать роли приложений в шаблоне руки в настоящее время только для встроенных ролей Azure для ресурсов Azure, а не для приложений или рекламных ролей Azure. для справки https://github.com/MicrosoftDocs/azure-docs/issues/51914#issuecomment-612867662

единственный способ, которым вы можете обойти и сделать что-то подобное, вероятно, через сценарий развертывания, который запускает команды powershell в шаблоне руки, если это вообще возможно.

25.07.2020
  • Это не решает проблему, я получаю точно такое же сообщение после добавления pringcipalType. Итак, у вас есть пример, показывающий назначение роли приложения? 25.07.2020
  • Вы также создаете регистрацию приложения и роль приложения в том же шаблоне? 25.07.2020
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]