Перейти к содержимому

Как настроить права «Только чтение» для транспортных правил в Exchange Server (2016/2019)

Введение 
В Exchange Server по умолчанию существует встроенная роль Transport Rules, которая предоставляет полный доступ к управлению правилами обработки почты (создание, изменение, удаление, импорт/экспорт).
Назначение этой роли сотрудникам службы поддержки или аудиторам создает серьезный риск информационной безопасности: злоумышленник или невнимательный сотрудник может случайно перенаправить почту руководства или отключить критически важные правила фильтрации.
Поскольку встроенной роли «Только чтение» для транспортных правил не существует, мы создадим её самостоятельно, скопировав базовую роль и удалив из неё все командлеты, отвечающие за модификацию данных.
Предварительные требования 
  1. Доступ к Exchange Management Shell (EMS) с правами роли Organization Management.
  2. Заранее созданная в Active Directory группа безопасности (Security Group), в которую входят пользователи, нуждающиеся в правах на просмотр (например, G-View-Only Transport Rules).
    ⚠️ Важно: Группа должна быть именно группой безопасности, а не группой рассылки (Distribution Group).
Шаг 1. Анализ стандартной роли 
Для начала посмотрим, какие именно командлеты и параметры содержит стандартная роль Transport Rules. Это поможет понять, что именно мы будем удалять.
Get-ManagementRoleEntry "Transport Rules\*" | Select-Object Name, Parameters | Format-List
Эта команда выведет полный список из ~23 командлетов, включая New-TransportRule, Set-TransportRule, Remove-TransportRule и другие.
Шаг 2. Создание кастомной роли 
Создадим новую роль с именем View-Only Transport Rules Custom, используя встроенную роль Transport Rules как шаблон (родительскую роль).
New-ManagementRole -Name "View-Only Transport Rules Custom" -Parent "Transport Rules"
Шаг 3. Удаление опасных командлетов 
Теперь «очистим» нашу новую роль от всех командлетов, которые позволяют изменять состояние системы. Выполните следующий блок команд. Параметр -Confirm:$false подавляет запросы на подтверждение для каждого удаления.
# Удаление прав на управление правилами перехватчика
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Set-InterceptorRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Remove-InterceptorRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\New-InterceptorRule" -Confirm:$false

# Удаление прав на управление транспортными правилами
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Set-TransportRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Remove-TransportRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\New-TransportRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Enable-TransportRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Disable-TransportRule" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Import-TransportRuleCollection" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Import-JournalRuleCollection" -Confirm:$false

# Удаление прав на управление классификацией сообщений и аудитом
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Write-AdminAuditLog" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Set-MessageClassification" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\Remove-MessageClassification" -Confirm:$false
Remove-ManagementRoleEntry "View-Only Transport Rules Custom\New-MessageClassification" -Confirm:$false
Шаг 4. Проверка итогового списка разрешений
Убедимся, что в роли остались только безопасные командлеты для чтения (Get-*) и безопасного экспорта (Export-*).
Get-ManagementRoleEntry "View-Only Transport Rules Custom\*" | Select-Object Name
Ожидаемый результат: В выводе должны остаться только Get-TransportRule, Get-Recipient, Export-TransportRuleCollection, Get-InterceptorRule и другие вспомогательные командлеты чтения. Командлеты New-*, Set-* и Remove-* должны отсутствовать.
Шаг 5. Создание группы ролей и привязка к пользователям AD
Теперь создадим группу управления (Role Group), назначим ей нашу кастомную роль и добавим в неё группу пользователей из Active Directory.
New-RoleGroup -Name "Transport Rules Viewers" `
              -Roles "View-Only Transport Rules Custom" `
              -Members "G-View-Only Transport Rules" `
              -Description "Просмотр транспортных правил без возможности изменений"
💡 Замените "G-View-Only Transport Rules" на реальное имя вашей группы безопасности в Active Directory.
Шаг 6. Проверка назначения прав 
Выполните три команды для проверки корректности всей цепочки настроек:
# 1. Проверка создания самой группы ролей
Get-RoleGroup "Transport Rules Viewers"

# 2. Проверка того, что к группе привязана правильная роль
Get-ManagementRoleAssignment -RoleAssignee "Transport Rules Viewers" | Select-Object Role, RoleAssigneeName

# 3. Проверка того, что пользователи (или группа AD) успешно добавлены в состав
Get-RoleGroupMember "Transport Rules Viewers"
Важные нюансы: проверка через веб-интерфейс (ECP) 
  1. Обязательный перелогин. Права RBAC в Exchange кэшируются при входе в систему. Чтобы новые права вступили в силу, пользователь обязан полностью выйти из Центра администрирования Exchange (ECP / OWA) и зайти заново. Для первой проверки рекомендуется использовать режим инкогнито в браузере.
  2. Что увидит пользователь. В разделе Поток обработки почты (Mail flow) → Правила (Rules) пользователь увидит полный список правил, сможет открывать их и читать описание. Однако кнопки «Создать» (+), «Изменить» (карандаш) и «Удалить» (корзина) будут полностью неактивны (серые) или скрыты.
  3. Проверка через PowerShell. Если пользователь попытается выполнить Set-TransportRule, он получит ошибку: «The operation couldn’t be performed because it isn’t within your current write scopes».
Статья подготовлена на основе лучших практик управления ролями (RBAC) в Microsoft Exchange Server 2016/2019.

Similar Posts:

Добавить комментарий

Яндекс.Метрика