Я создаю автоматизацию для Azure DevOps. Я хочу следовать принципу наименьших привилегий. Мне нужно только предоставить разрешения на создание репозиториев для всех проектов в организации. Я знаю, как это сделать на уровне проекта, но для организаций с большим количеством проектов назначение разрешений на уровне проекта потребует много времени.
Знаете ли вы и можете ли вы привести пример того, как давать разрешения на создание репозиториев на уровне всей организации?
вы можете попробовать использовать Azure DevOps CLI «az DevOps Security Permission», чтобы назначить разрешение:
Перейдите на страницу «Настройки организации» > «Разрешения», чтобы создать новую группу (например, Create Repos
). После создания откройте его, вы увидите дескриптор группы (subjectDescriptor
) этой группы в адресной строке браузера. Скопируйте и запомните значение дескриптора (vssgp.xxxx
), оно будет использоваться в последующем CLI Azure DevOps.
Запустите команду «az devops список пространств имен разрешений безопасности», чтобы получить namespaceId
и bit
элемента разрешения «Создать репозиторий». Как правило, значения этих двух свойств фиксированы. Все элементы разрешений, связанные с репозиторием, обычно имеют одно и то же пространство имен, и каждый элемент имеет свой собственный бит.
2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87
256
Затем вы можете запустить «az devops обновление разрешений безопасности», чтобы глобально установить для элемента разрешения «Создать репозиторий» значение «Разрешить» для группы «Create Repos
» внутри организации.
Ниже приведен пример сценария Bash для вызова Azure DevOps CLI.
#!/bin/bash
organization = "xxxx"
pat = "xxxx"
groupDescriptor = "vssgp.xxxx"
namespaceId = "2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87"
# Login the Azure DevOps organization.
echo $pat | az devops login --org https://dev.azure.com/$organization
# If you do not know the the 'namespaceId' and 'bit' of the permission item, you can run below command, and then check the values in the output json file.
# az devops security permission namespace list > namespaces.json
# Globally set the permission "Create repository" to "Allow" for the group "Create Repos" within the organization.
az devops security permission update --id $namespaceId --subject $groupDescriptor --token "repoV2" --allow-bit 256
Таким образом:
Create Repos
» во всех проектах внутри организации.Create Repos
», также автоматически унаследуют это разрешение по умолчанию.