GitLab развертывает приложение-контейнер в службе приложений Azure

Я настроил службу приложений Azure, которая использует модель публикации контейнера. Все работает так, как ожидалось, но я хочу автоматизировать развертывание с помощью конвейера GitLab. Поэтому я создал субъекта-службы и назначил ему роль участника службы приложений. Однако в журналах заданий я вижу следующую ошибку:

ERROR: (AuthorizationFailed) The client 'xxx' with object id 'xxx' does not have authorization to perform action 'Microsoft.Web/serverfarms/read' over scope '/subscriptions/yyy/resourceGroups/my-resource-group/providers/Microsoft.Web/serverfarms/foo' or the scope is invalid. If access was recently granted, please refresh your credentials.
Code: AuthorizationFailed

Это мой трубопровод:

deploy:
    image: mcr.microsoft.com/azure-cli
    stage: deploy
    before_script:
        - az login --service-principal -u $AZURE_SP_ID -p $AZURE_SP_PASSWORD -t $AZURE_TENANT
        - az extension add --name webapp --upgrade
    script:
        - az webapp config container set --name $AZURE_APP_NAME --resource-group $AZURE_APP_RESOURCE_GROUP
          --container-image-name ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
    rules:
        - if: $CI_COMMIT_TAG

Когда я назначаю роль участника службы на уровне подписки, все работает. Но не позволит ли это субъекту-службе получить доступ ко всем ресурсам в рамках этой подписки?

Да, назначив субъекту-службе роль участника на уровне подписки, вы предоставите ему доступ для выполнения всех типов операций с ресурсами в области подписки. Поскольку ошибка указывает на то, что он пытается прочитать ресурс фермы серверов, который используется Службой приложений, я предлагаю предоставить SPN роль читателя на ресурсе фермы серверов, избегая при этом назначения какой-либо привилегированной роли на более высоком уровне. область действия в иерархии управления.

GalnaGreta 13.05.2024 00:06
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
1
151
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проблема заключалась в том, что мне нужно было предоставить роль читателя в плане обслуживания приложений. Недостаточно предоставить роль участника в сервисе приложений.

Другие вопросы по теме

Похожие вопросы

Невозможно создать и использовать токен для использования ACS для пользователя команды: «CallAgent должен быть создан только с токеном ACS»
Проблема с пропускной способностью сети службы приложений Azure (очень медленная загрузка)
Пересылаемые сообщения Azure IoT Edge между модулями не содержат свойств (целевой Node-RED) (РЕШЕНО)
Клонирование/копирование репозитория из AzureDevOps в Databricks
Проблема приложения логики Azure с управляемым удостоверением, назначенным пользователем
Клиент с идентификатором объекта не имеет полномочий на выполнение действия «Microsoft.DataFactory/factories/triggers/write» в области действия
SQL-запросы Databricks, требующие много времени для выполнения без ключа/поля JOIN
Powershell Термин HandleException не распознается как имя командлета, функции, файла сценария или исполняемой программы
Get-MgGroupMember по пользовательскому поиску — нужна помощь по сопоставлению массива
Могу ли я управлять уже созданными ресурсами в Azure с помощью Terraform?