Работа с SQL Server, включенная Azure Arc с минимальными привилегиями
Область применения: SQL Server
Принцип информационной безопасности наименьших привилегий утверждает, что учетные записи и приложения имеют доступ только к данным и операциям, которым они требуются. С помощью SQL Server с поддержкой Azure Arc можно запустить службу расширения агента с минимальными привилегиями. В этой статье объясняется, как запустить службу расширения агента с минимальными привилегиями.
Чтобы при необходимости настроить службу для выполнения с минимальными привилегиями, выполните действия, описанные в этой статье. В настоящее время служба не запускается автоматически с минимальными привилегиями.
Настройка учетных записей службы Windows и разрешений для расширения Azure для SQL Server описывает минимальные разрешения привилегий для службы расширений агента.
Примечание.
Существующие серверы с расширением с выпуска 2024 ноября 2024 г. или более поздней версии автоматически применяются к конфигурации с минимальными привилегиями. Это приложение будет происходить постепенно.
Чтобы предотвратить автоматическое применение минимальных привилегий, заблокируйте обновление расширений до выпуска за ноябрь 2024 г.
После настройки службы расширения агента для выполнения с минимальными привилегиями она использует NT Service\SQLServerExtension
учетную запись службы.
Учетная NT Service\SQLServerExtension
запись — это локальная учетная запись службы Windows:
- Создано и управляется расширением Azure для SQL Server, если включен параметр наименьших привилегий.
- Предоставляет минимальные необходимые разрешения и привилегии для запуска расширения Azure для службы SQL Server в операционной системе Windows. Он имеет доступ только к папкам и каталогам, используемым для чтения и хранения конфигурации или записи журналов.
- Предоставлено разрешение на подключение и запрос в SQL Server с новым именем входа специально для этой учетной записи службы с минимальными разрешениями. Минимальные разрешения зависят от включенных функций.
- Обновляется, когда разрешения больше не требуются. Например, разрешения отменяются при отключении функции, отключении конфигурации минимальных привилегий или удалении расширения Azure для SQL Server. Отзыв гарантирует, что разрешения не остаются после того, как они больше не требуются.
Необходимые компоненты
В этом разделе описаны требования к системе и средства, которые необходимо выполнить в этой статье.
Требования к системе
Для конфигурации с минимальными привилегиями требуется:
- Windows Server 2012 или более поздней версии;
- SQL Server 2012 или более поздней версии
- Учетная запись службы SQL Server должна быть членом
sysadmin
предопределенных ролей сервера. - Все базы данных должны быть в сети и доступны для обновления
Конфигурация с минимальными привилегиями в настоящее время не поддерживается в Linux.
Другие требования, как указано в предварительных требованиях— SQL Server, включенный Azure Arc , по-прежнему применяются.
Учетная запись службы SQL Server
По умолчанию учетная запись службы SQL Server является членом sysadmin
предопределенных ролей сервера.
Как указано в предварительных требованиях, учетная запись службы SQL Server должна быть членом sysadmin
предопределенной роли сервера на каждом экземпляре SQL Server. Расширение Azure для SQL Server имеет процесс, который Deployer.exe
временно выполняется в следующих NT AUTHORITY\SYSTEM
случаях:
- Функции включены или отключены
- Экземпляры SQL Server добавляются или удаляются
Deployer.exe
Олицетворяет учетную запись службы SQL Server для подключения к SQL Server и добавления или удаления разрешений в ролях сервера и базы данных в зависимости от того, какие функции включены или отключены, чтобы обеспечить, чтобы расширение Azure для SQL Server использовало минимальные привилегии. Чтобы изменить эти разрешения, учетная запись службы SQL Server должна быть членом sysadmin
роли сервера.
Если вы хотите управлять этим процессом с дополнительным контролем, таким образом, что учетная запись службы SQL Server не является членом роли сервера sysadmin все время, выполните следующие действия.
- Временно добавьте учетную запись службы SQL Server в роль сервера sysadmin.
- Разрешите
Deployer.exe
запускать по крайней мере один раз, чтобы задать разрешения. - Удалите учетную запись службы SQL Server из роли sysadmin.
Повторите эту процедуру в любое время, когда функции включены или отключены, или экземпляры SQL Server добавляются для Deployer.exe
предоставления минимальных привилегий.
Инструменты
Чтобы выполнить действия, описанные в этой статье, вам потребуется следующее:
- Azure CLI
arcdata
Версия1.5.9
расширения Azure CLI или более поздняя- Расширение Azure для версии SQL Server или более поздней версии
1.1.2504.99
Включение наименьших привилегий
Войдите в систему с помощью Azure CLI.
az login
Проверьте версию
arcdata
расширения.az extension list -o table
Если результаты включают поддерживаемую версию
arcdata
, перейдите к следующему шагу.При необходимости установите или обновите
arcdata
расширение Azure CLI.Чтобы установить расширение, сделайте следующее.
az extension add --name arcdata
Чтобы обновить расширение, выполните следующие действия.
az extension update --name arcdata
Включите минимальные привилегии с помощью Azure CLI.
Чтобы включить минимальные привилегии, задайте для флага
LeastPrivilege
true
функции значение . Чтобы выполнить эту задачу, выполните следующую команду с обновленными значениями для<resource-group>
и<machine-name>
.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>
Например, следующая команда включает минимальные привилегии для сервера с именем
myserver
в группе ресурсов с именемmyrg
:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Проверка конфигурации наименьших привилегий
Чтобы убедиться, что SQL Server включен Azure Arc, настроен для выполнения с минимальными привилегиями:
В службах Windows найдите службу расширений Microsoft SQL Server. Убедитесь, что служба запущена в качестве учетной записи
NT Service\SqlServerExtension
службы.Откройте планировщик задач на сервере и проверьте, создана
Microsoft\SqlServerExtension
ли задача на основе событий с именемSqlServerExtensionPermissionProvider
.Примечание.
До выпуска
SqlServerExtensionPermissionProvider
за июль 2024 г. запланирована задача. Она выполняется почасово.Откройте планировщик задач на сервере и проверьте, создана
Microsoft\SqlServerExtension
ли запланированная задача с именемSqlServerExtensionPermissionProvider
.Откройте SQL Server Management Studio и проверьте имя входа
NT Service\SqlServerExtension
. Убедитесь, что учетная запись назначена следующим разрешениям:- Подключение SQL
- Просмотр состояния базы данных
- Просмотр состояния сервера
Проверьте разрешения с помощью следующих запросов:
Чтобы проверить разрешения на уровне сервера, выполните следующий запрос:
EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' SELECT * FROM fn_my_permissions (NULL, 'SERVER");
Чтобы проверить разрешения на уровне базы данных, замените
<database name>
имя одной из баз данных и выполните следующий запрос:EXECUTE AS LOGIN = 'NT Service\SqlServerExtension' USE <database name>; SELECT * FROM fn_my_permissions (NULL, 'database");