Повышение прав доступа для управления всеми подписками Azure и группами управления

Даже если вы являетесь глобальным администратором в Azure Active Directory (Azure AD), у вас может не быть права доступа ко всем подпискам и группам управления в вашем каталоге. В этой статье описываются способы, с помощью которых вы можете повысить права доступа для всех подписок и групп управления.

Примечание

См. сведения о просмотре и удалении персональных данных в руководстве по созданию запросов субъектов данных Azure в соответствии с GDPR. Дополнительные сведения о GDPR см. в разделе, посвященном GDPR, в Центре управления безопасностью Майкрософт и на портале Service Trust Portal.

Для чего нужно повышение прав доступа

Если вы являетесь глобальным администратором, иногда могут возникать ситуации, требующие выполнения следующих действий:

  • восстановление доступа к подписке Azure или группе управления, если пользователь потерял доступ;
  • предоставление другому пользователю или себе доступа к подписке Azure или группе управления;
  • просмотр всех подписок Azure или групп управления в организации;
  • предоставление приложению автоматизации (например, приложению для выставления счетов или аудита) доступа ко всем подпискам Azure или группам управления.

Как работает повышение прав доступа

Azure AD и ресурсы Azure защищены независимо друг от друга. То есть назначения ролей Azure AD не предоставляют доступ к ресурсам Azure, а назначения ролей Azure не предоставляют доступ к Azure AD. Однако глобальный администратор в Azure AD может назначить себе права доступа для управления всеми подписками Azure и группами управления в вашем каталоге. Эту возможность следует использовать, если у вас нет доступа к ресурсам в подписке Azure, например к виртуальным машинам или учетным записям хранения, и вы хотите использовать свои привилегии глобального администратора для получения доступа к этим ресурсам.

При повышении прав доступа вам будет назначена роль администратора доступа пользователей в Azure, охватывающая корень каталога (/). Это позволяет просматривать все ресурсы и назначать доступ в любой подписке или группе управления в каталоге. Назначения роли администратора доступа пользователей можно удалить с помощью Azure PowerShell, Azure CLI или REST API.

После внесения изменений, которые необходимо выполнить на уровне корня, следует удалить этот повышенный уровень доступа.

Повышение прав доступа

Портал Azure

Повышение прав доступа глобального администратора

Выполните следующие действия, чтобы повысить права доступа глобального администратора с помощью портала Azure.

  1. Войдите на портал Azure или центр администрирования Azure Active Directory как глобальный администратор.

    Если вы используете Azure AD Privileged Identity Management, включите назначение роли глобального администратора.

  2. Откройте Azure Active Directory.

  3. В разделе Управление выберите Свойства.

    Снимок экрана: элемент

  4. В разделе Управление доступом для ресурсов Azure установите значение Да.

    Снимок экрана: управление доступом для ресурсов Azure

    Когда вы переводите этот переключатель в положение Да, вам назначается роль администратора доступа пользователей в Azure RBAC с корнем каталога (/) в качестве области действия. Это предоставляет разрешение на назначение ролей во всех подписках и группах управления Azure, связанных с данным каталогом Azure AD. Этот переключатель доступен только пользователям, которым назначена роль глобального администратора в Azure AD.

    Если для переключателя задать значение Нет, роль администратора доступа пользователей в Azure RBAC будет удалена из вашей учетной записи. Вы больше не сможете назначать роли во всех подписках и группах управления Azure, связанных с данным каталогом Azure AD. Вы сможете просматривать (и управлять ими) только подписки и группы управления Azure, к которым вам был предоставлен доступ.

    Примечание

    Если вы используете Privileged Identity Management, деактивация назначения ролей не приводит к перемещению переключателя Управление доступом для ресурсов Azure в положение Нет. Чтобы поддерживать минимально необходимый уровень привилегий, установите этот переключатель в положение Нет перед отключением назначения роли.

  5. Нажмите кнопку Сохранить, чтобы сохранить настройки.

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

  6. Выйдите из системы и войдите снова, чтобы обновить доступ.

    Теперь у вас есть доступ ко всем подпискам и группам управления в своем каталоге. Теперь на панели управления доступом (IAM) вы увидите, что вам назначена роль администратора доступа пользователей в корневой области.

    Назначения ролей подписки с помощью корневой области. Снимок экрана

  7. Выполните изменения, для которых требуются повышенные права доступа.

    Сведения о назначении ролей см. в статье Назначение ролей Azure с помощью портала Azure. Если вы используете Privileged Identity Management, воспользуйтесь инструкциями в статье Обнаружение ресурсов Azure для управления ими с помощью Privileged Identity Management (PIM) или Назначение ролей для доступа к ресурсам Azure с помощью службы "Управление привилегированными пользователями".

  8. Выполните действия, описанные в следующем разделе, чтобы удалить доступ с повышенными правами.

Удаление повышенного права доступа

Чтобы удалить назначение роли администратора доступа пользователей в корневой области (/), выполните следующие шаги.

  1. Войдите в систему от имени пользователя, которого вы использовали для повышения уровня доступа.

  2. В списке навигации выберите Azure Active Directory, а затем нажмите кнопку Свойства.

  3. Переведите переключатель Управление доступом для ресурсов Azure в положение Нет. Так как это параметр для отдельного пользователя, необходимо войти как тот же пользователь, который использовался для повышения доступа.

    Если вы попытаетесь удалить назначение роли администратора доступа пользователей с помощью панели управления доступом (IAM), вы увидите следующее сообщение. Чтобы удалить это назначение роли, необходимо перевести переключатель в положение Нет или воспользоваться Azure PowerShell, Azure CLI или REST API.

    Удаление назначений ролей с корневой областью

  4. Выполните выход пользователя с правами глобального администратора.

    Если вы используете Privileged Identity Management, отключите назначение роли глобального администратора.

    Примечание

    Если вы используете Privileged Identity Management, деактивация назначения ролей не приводит к перемещению переключателя Управление доступом для ресурсов Azure в положение Нет. Чтобы поддерживать минимально необходимый уровень привилегий, установите этот переключатель в положение Нет перед отключением назначения роли.

Azure PowerShell

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Получение списка назначений ролей в корневой области (/)

Чтобы получить список назначений ролей администратора доступа пользователей для пользователя в корневой области (/), выполните команду Get-AzRoleAssignment.

Get-AzRoleAssignment | where {$_.RoleDefinitionName -eq "User Access Administrator" `
  -and $_.SignInName -eq "<username@example.com>" -and $_.Scope -eq "/"}
RoleAssignmentId   : /providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111
Scope              : /
DisplayName        : username
SignInName         : username@example.com
RoleDefinitionName : User Access Administrator
RoleDefinitionId   : 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9
ObjectId           : 22222222-2222-2222-2222-222222222222
ObjectType         : User
CanDelegate        : False

Удаление повышенного права доступа

Чтобы удалить назначение роли администратора доступа пользователей в корневой области (/) у себя или у другого пользователя, выполните следующие действия.

  1. Войдите в систему как пользователь, который может удалить повышенный уровень доступа. Это может быть тот же пользователь, который использовался для повышения прав доступа, или любой другой глобальный администратор с повышенными правами доступа в корневой области.

  2. Чтобы удалить назначение роли администратора доступа пользователей, воспользуйтесь командой Remove-AzRoleAssignment.

    Remove-AzRoleAssignment -SignInName <username@example.com> `
      -RoleDefinitionName "User Access Administrator" -Scope "/"
    

Azure CLI

Повышение прав доступа глобального администратора

Чтобы повысить права доступа глобального администратора с помощью Azure CLI, выполните приведенные ниже основные действия.

  1. Используйте команду az rest, чтобы вызвать конечную точку elevateAccess, которая предоставляет роль администратора доступа пользователей в корневой области (/).

    az rest --method post --url "/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
    
  2. Выполните изменения, для которых требуются повышенные права доступа.

    Сведения о назначении ролей см. в статье Назначение ролей Azure с помощью Azure CLI.

  3. Выполните действия, описанные в разделе ниже, чтобы удалить доступ с повышенными правами.

Получение списка назначений ролей в корневой области (/)

Чтобы получить список назначений ролей администратора доступа пользователей для пользователя в корневой области (/), выполните команду az role assignment list.

az role assignment list --role "User Access Administrator" --scope "/"
[
  {
    "canDelegate": null,
    "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
    "name": "11111111-1111-1111-1111-111111111111",
    "principalId": "22222222-2222-2222-2222-222222222222",
    "principalName": "username@example.com",
    "principalType": "User",
    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
    "roleDefinitionName": "User Access Administrator",
    "scope": "/",
    "type": "Microsoft.Authorization/roleAssignments"
  }
]

Удаление повышенного права доступа

Чтобы удалить назначение роли администратора доступа пользователей в корневой области (/) у себя или у другого пользователя, выполните следующие действия.

  1. Войдите в систему как пользователь, который может удалить повышенный уровень доступа. Это может быть тот же пользователь, который использовался для повышения прав доступа, или любой другой глобальный администратор с повышенными правами доступа в корневой области.

  2. Чтобы удалить назначение роли администратора доступа пользователей, воспользуйтесь командой az role assignment delete.

    az role assignment delete --assignee username@example.com --role "User Access Administrator" --scope "/"
    

REST API

Предварительные требования

Необходимо использовать следующие версии:

  • 2015-07-01 или более поздней версии для перечисления и удаления назначений ролей
  • 2016-07-01 или более поздней версии для повышения уровня доступа
  • 2018-07-01-preview или более поздней версии для вывода списка запрещенных назначений

Дополнительные сведения см. в статье Версии API REST API Azure RBAC.

Повышение прав доступа глобального администратора

Чтобы повысить права доступа глобального администратора с помощью REST API, выполните приведенные ниже основные действия.

  1. В REST API вызовите действие elevateAccess, которое предоставит вам роль администратора доступа пользователей в корневой области (/).

    POST https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01
    
  2. Выполните изменения, для которых требуются повышенные права доступа.

    Сведения о назначении ролей см. в статье Назначение ролей Azure с помощью REST API.

  3. Выполните действия, описанные в разделе ниже, чтобы удалить доступ с повышенными правами.

Получение списка назначений ролей в корневой области (/)

Вы можете получить полный список назначений ролей для пользователя в корневой области (/).

  • Вызов назначений ролей — список для области, где {objectIdOfUser} — это идентификатор объекта пользователя, назначения ролей которого требуется получить.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectIdOfUser}'
    

Вывод списка назначений запрета в корневой области (/)

Вы можете получить полный список назначений запрета для пользователя в корневой области (/).

  • Вызовите GET denyAssignments, где {objectIdOfUser} — идентификатор объекта пользователя, запреты назначений которого вы хотите получить.

    GET https://management.azure.com/providers/Microsoft.Authorization/denyAssignments?api-version=2022-04-01&$filter=gdprExportPrincipalId+eq+'{objectIdOfUser}'
    

Удаление повышенного права доступа

При вызове elevateAccess для вас создается назначение роли, а для отзыва этих привилегий необходимо удалить назначение роли администратора доступа пользователей в корневой области (/).

  1. Вызов определений ролей — получение , где roleName равно администратору доступа пользователей, чтобы определить идентификатор имени роли администратора доступа пользователей.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleDefinitions?api-version=2022-04-01&$filter=roleName+eq+'User Access Administrator'
    
    {
      "value": [
        {
          "properties": {
      "roleName": "User Access Administrator",
      "type": "BuiltInRole",
      "description": "Lets you manage user access to Azure resources.",
      "assignableScopes": [
        "/"
      ],
      "permissions": [
        {
          "actions": [
            "*/read",
            "Microsoft.Authorization/*",
            "Microsoft.Support/*"
          ],
          "notActions": []
        }
      ],
      "createdOn": "0001-01-01T08:00:00.0000000Z",
      "updatedOn": "2016-05-31T23:14:04.6964687Z",
      "createdBy": null,
      "updatedBy": null
          },
          "id": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
          "type": "Microsoft.Authorization/roleDefinitions",
          "name": "18d7d88d-d35e-4fb5-a5c3-7773c20a72d9"
        }
      ],
      "nextLink": null
    }
    

    Сохраните ИД из параметра name. В этом случае — 18d7d88d-d35e-4fb5-a5c3-7773c20a72d9.

  2. Также необходимо вывести назначений ролей для администратора каталога в области каталога. Выведите список всех назначений в области каталога для principalId администратора каталога, совершившего вызов для повышения прав доступа. При этом будут перечислены все назначения в каталоге для objectid.

    GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId+eq+'{objectid}'
    

    Примечание

    У администратора каталога не должно быть много назначений. Если предыдущий запрос возвращает слишком много назначений, можно запросить все назначения только на уровне области каталога, а затем отфильтровать результаты: GET https://management.azure.com/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=atScope().

  3. Предыдущие вызовы возвращают список назначения ролей. Найдите назначение роли, у которого задана область "/" и roleDefinitionId заканчивается значением ИД имени роли, найденным на шаге 1, а principalId совпадает со значением objectId администратора каталога.

    Пример назначения ролей:

    {
      "value": [
        {
          "properties": {
            "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9",
            "principalId": "{objectID}",
            "scope": "/",
            "createdOn": "2016-08-17T19:21:16.3422480Z",
            "updatedOn": "2016-08-17T19:21:16.3422480Z",
            "createdBy": "22222222-2222-2222-2222-222222222222",
            "updatedBy": "22222222-2222-2222-2222-222222222222"
          },
          "id": "/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111",
          "type": "Microsoft.Authorization/roleAssignments",
          "name": "11111111-1111-1111-1111-111111111111"
        }
      ],
      "nextLink": null
    }
    

    Сохраните идентификатор из параметра name, который в нашем примере имеет значение 11111111-1111-1111-1111-111111111111.

  4. Наконец, используйте ИД назначения роли, чтобы удалить назначение, добавленное elevateAccess:

    DELETE https://management.azure.com/providers/Microsoft.Authorization/roleAssignments/11111111-1111-1111-1111-111111111111?api-version=2022-04-01
    

Просмотр журналов доступа с повышенными привилегиями

При повышении прав доступа в журналы добавляется запись. Как глобальный администратор в Azure AD, вы можете проверить, когда доступ был повышен и кто это сделал. Записи журнала с повышенными правами доступа не отображаются в стандартных журналах действий, а в журналах действий каталога. В этом разделе описаны различные способы просмотра журналов доступа с повышенными привилегиями.

Просмотр журналов доступа с повышенными привилегиями с помощью портал Azure

  1. Выполните действия, описанные ранее в этой статье, чтобы повысить уровень доступа.

  2. Войдите на портал Azure как глобальный администратор.

  3. Откройтежурнал действий монитора>.

  4. Измените список действий на Действие каталога.

  5. Найдите следующую операцию, которая обозначает действие повышения прав доступа.

    Assigns the caller to User Access Administrator role

    Снимок экрана: журналы действий каталога в Мониторе.

  6. Выполните действия, описанные ранее в этой статье, чтобы удалить доступ с повышенными привилегиями.

Просмотр журналов доступа с повышенными привилегиями с помощью Azure CLI

  1. Выполните действия, описанные ранее в этой статье, чтобы повысить уровень доступа.

  2. Выполните команду az login , чтобы войти в качестве глобального администратора.

  3. Используйте команду az rest , чтобы выполнить следующий вызов, в котором необходимо выполнить фильтрацию по дате, как показано в примере метки времени, и указать имя файла, в котором должны храниться журналы.

    Вызывает url API для получения журналов в Microsoft.Insights. Выходные данные будут сохранены в файл.

    az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt
    
  4. В выходном файле найдите elevateAccess.

    Журнал будет похож на следующий, где можно увидеть метку времени, когда произошло действие и кто его вызвал.

      "submissionTimestamp": "2021-08-27T15:42:00.1527942Z",
      "subscriptionId": "",
      "tenantId": "33333333-3333-3333-3333-333333333333"
    },
    {
      "authorization": {
        "action": "Microsoft.Authorization/elevateAccess/action",
        "scope": "/providers/Microsoft.Authorization"
      },
      "caller": "user@example.com",
      "category": {
        "localizedValue": "Administrative",
        "value": "Administrative"
      },
    
  5. Выполните действия, описанные ранее в этой статье, чтобы удалить доступ с повышенными привилегиями.

Делегирование доступа к группе для просмотра журналов доступа с повышенными привилегиями с помощью Azure CLI

Если вы хотите периодически получать журналы доступа с повышенными привилегиями, можно делегировать доступ к группе, а затем использовать Azure CLI.

  1. ОткройтегруппыAzure Active Directory>.

  2. Создайте группу безопасности и запишите идентификатор объекта группы.

  3. Выполните действия, описанные ранее в этой статье, чтобы повысить уровень доступа.

  4. Выполните команду az login , чтобы войти в качестве глобального администратора.

  5. Используйте команду az role assignment create , чтобы назначить роль читателя группе, которая может считывать только журналы на уровне каталога, которые находятся в Microsoft/Insights.

    az role assignment create --assignee "{groupId}" --role "Reader" --scope "/providers/Microsoft.Insights"
    
  6. Добавьте пользователя, который будет считывать журналы в ранее созданную группу.

  7. Выполните действия, описанные ранее в этой статье, чтобы удалить доступ с повышенными привилегиями.

Теперь пользователь в группе может периодически выполнять команду az rest , чтобы просмотреть журналы доступа с повышенными привилегиями.

az rest --url "https://management.azure.com/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-01&$filter=eventTimestamp ge '2021-09-10T20:00:00Z'" > output.txt

Дальнейшие действия