Трубопроводы DevOps Azure, не соблюдающие разрешения RBAC - PullRequest
1 голос
/ 24 апреля 2019

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

Какой смысл настраивать субъект-службу в DevOps Azure, если агент может обойти все разрешения?

Configuration:
Azure Portal
1. Created AD in Azure Portal. Created App under AD with client secret.
2. Granted 'contributor' role to App created in Step-1 with resource group scope.
3. Created two resource groups - RG1 and RG2 with one VM in each.
4. Granted role assignment to App created in step-1 for RG1 only. RG2 has no role assignments.

Azure DevOps
5. Connect Azure DevOps organization with Portal using AD connect.
6. Created service connection by going to Projects-> Service Principal(SP) -> Azure Resource Manager with Service Principal credentials (see step-1 above).
7. Created new pipeline and deployment group. Copied the deployment group agent code and ran it on both VMs in RG1 and RG2.

Фактический результат: Обе виртуальные машины нормально подключались в качестве целей в группе развертывания. Pipeline удалось успешно развернуть обе виртуальные машины. Даже если нет сервисных соединений, конвейеры могут развертываться на виртуальных машинах

Ожидаемый результат: Только виртуальная машина под RG1 должна подключаться на основе RBAC. Конвейер должен иметь возможность развертываться только на виртуальной машине под RG1, а не RG2. Конвейеры не должны быть в состоянии развернуться, если сервисные соединения не определены.

Обходной путь: Возможно, установка этого расширения (https://github.com/maikvandergaag/msft-extensions/wiki/Azure-RBAC) помогла бы, но я старался избегать его, если это возможно.

1 Ответ

1 голос
/ 24 апреля 2019

Я полагаю, что ваше понимание RBAC касается ресурсов Azure и ресурсов VM. Но вы уже отменили разрешение, установив агент развертывания в виртуальную машину.

В сценарии IAAS вы уже предоставили разрешение на использование агента развертывания.

В сценарии PAAS RBAC будет соблюдаться, поскольку вы будете использовать конечную точку обслуживания.

...