Назначение пользовательской роли приложению-упаковщику в Azure - PullRequest
1 голос
/ 23 октября 2019

В настоящее время у нас есть корпоративное приложение Packer, которое работает с ролью участника на уровне подписки.

Однако мы считаем, что приложение имеет слишком большую область действия. Вместо этого мы хотели бы предоставить ему доступ уровня Contributor только для одной группы ресурсов.

Следовательно, Packer сможет создавать свои временные ресурсы для создания изображений только в одной группе ресурсов и не будетМне нужны разрешения для всего остального в подписке.

Я создал пользовательскую роль через JSON следующим образом: (Я изменил пример идентификатора подписки и имен ресурсов)

{
  "assignableScopes": [
    "/subscriptions/123456789/resourceGroups/packer"
  ],
  "description": "Custom role for packer app, with granular permssions for packer resource group",
  "id": "/subscriptions/123456789/providers/Microsoft.Authorization/roleDefinitions/123456-1234-1234-1234-12345678",
  "name": "123456-1234-1234-1234-12345678",
  "permissions": [
    {
      "actions": [
        "Microsoft.Authorization/*/Delete",
        "Microsoft.Authorization/*/Write",
        "Microsoft.Authorization/elevateAccess/Action",
        "Microsoft.Blueprint/blueprintAssignments/write",
        "Microsoft.Blueprint/blueprintAssignments/delete"
      ],
      "dataActions": [],
      "notActions": [],
      "notDataActions": []
    }
  ],
  "roleName": "PackerRole",
  "roleType": "CustomRole",
  "type": "Microsoft.Authorization/roleDefinitions"
} 

Затем я создалроль с помощью Azure CLI:

az role definition create --role-definition PackerRole.json --subscription 123456789

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

Я пытался перейти в Azure Active Directory -> приложениеРегистрация -> Упаковщик, но здесь некуда назначить мою пользовательскую роль. Вкладка «Роли и администраторы» не дает мне никакой ясности, так как здесь нет ни одной из наших пользовательских ролей, и создание новой роли, по-видимому, только разрешает действия с разрешениями в формате microsoft.directory / Applications /

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

Я изучил документацию, но пока не нашел ничего подходящего для этого варианта использования.

1 Ответ

1 голос
/ 23 октября 2019

Вам не нужно настраивать роль для этого. Роль участника является встроенной и может быть назначена для любой области. Причина, по которой ваша пользовательская роль не видна, заключается в том, что вы пропускаете параметр "isCustom": true из корня объекта.

Если вы хотите назначить участника на уровне группы ресурсов, вы можете использоватьПортал, PowerShell, Azure CLI или даже API REST. Это известно как назначение роли . Поскольку вы, похоже, используете CLI, вы можете назначить роль в области RG следующим образом:

Предполагая, что ваше приложение выполняется с использованием субъекта службы:

az role assignment create --assignee <packer-service-principal> --role Contributor --scope /subscriptions/123456789/resourceGroups/packer --assignee-principal-type ServicePrincipal

Если вы хотитеиспользуя портал, вы можете перейти в группы ресурсов -> упаковщик -> контроль доступа (IAM) -> назначения ролей -> добавить

...