Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Se aplica a:SQL Server
El principio de seguridad de la información de privilegios mínimos establece que a los usuarios y las aplicaciones se les debe conceder acceso solo a los datos y las operaciones que necesitan. Con SQL Server habilitado por Azure Arc, puede ejecutar el servicio de extensión del agente con privilegios mínimos. En este artículo se explica cómo ejecutar el servicio de extensión del agente con privilegios mínimos.
Para configurar opcionalmente el servicio para que se ejecute con privilegios mínimos, siga los pasos descritos en este artículo. Actualmente, el servicio no se ejecuta automáticamente con privilegios mínimos.
Configurar las cuentas de servicio de Windows y los permisos para la extensión de Azure para SQL Server describe los permisos con privilegios mínimos para el servicio de extensión del agente.
Nota:
Actualmente, la configuración con privilegios mínimos no se aplica de forma predeterminada.
Los servidores existentes con la versión 1.1.2859.223 de extensión o posterior tendrán aplicada la configuración con menos privilegios. Esta extensión se publicó en noviembre de 2024. Para evitar la aplicación automática del principio de menor privilegio, bloquee las actualizaciones de extensión después de 1.1.2859.223.
Después de configurar el servicio de extensión del agente para que se ejecute con privilegios mínimos, usa la cuenta de servicio NT SERVICE\SqlServerExtension.
La cuenta NT SERVICE\SqlServerExtension es una cuenta de servicio de Windows local:
- Creada y administrada por la extensión de Azure para SQL Server cuando está habilitada la opción con privilegios mínimos.
- Se conceden los permisos y privilegios mínimos necesarios para ejecutar la extensión de Azure para el servicio SQL Server en el sistema operativo Windows. Solo tiene acceso a carpetas y directorios usados para leer y almacenar registros de configuración o escritura.
- Se concede permiso para conectarse y consultar en SQL Server con un nuevo inicio de sesión específico para esa cuenta de servicio que tenga los permisos mínimos necesarios. Los permisos mínimos dependen de las características habilitadas.
- Se actualiza cuando los permisos ya no son necesarios. Por ejemplo, los permisos se revocan al deshabilitar una característica. La revocación garantiza que no permanezcan permisos después de que ya no sean necesarios.
-
NT SERVICE\SqlServerExtensionse quita cuando se desinstala Azure extensión para SQL Server o cuando se deshabilita la configuración con privilegios mínimos.
Requisitos previos
En esta sección se identifican los requisitos y las herramientas del sistema que necesita para completar el ejemplo de este artículo.
Requisitos del sistema
La configuración con privilegios mínimos requiere:
- Windows Server 2012 o versiones posteriores.
- SQL Server 2012 o versiones posteriores.
- La cuenta de servicio SQL Server debe ser miembro del rol fijo de servidor sysadmin.
- Todas las bases de datos deben estar en línea y actualizarse.
La configuración con privilegios mínimos no se admite actualmente en Linux.
Se siguen aplicando otros requisitos, como se indica en Requisitos previos.
Cuenta de servicio de SQL Server
De forma predeterminada, la cuenta de servicio SQL Server es miembro del rol fijo de servidor sysadmin.
Como se muestra en los requisitos previos, la cuenta de servicio de SQL Server debe ser miembro del rol fijo de servidor sysadmin en cada instancia de SQL Server. La extensión Azure para SQL Server tiene un proceso denominado Deployer.exe que se ejecuta como NT AUTHORITY\SYSTEM cuando:
- Las características están habilitadas o deshabilitadas
- Las instancias de SQL Server se agregan o quitan
Nota:
El componente Deployer.exe suplanta la cuenta de servicio de SQL Server cuando se conecta a SQL Server. Una vez conectado, agrega o quita permisos en los roles de servidor y base de datos en función de las características habilitadas o deshabilitadas. Este proceso garantiza que la extensión de Azure para SQL Server use los privilegios mínimos necesarios. Por lo tanto, la cuenta de servicio de SQL Server debe ser miembro del rol fijo de servidor sysadmin.
Si desea administrar este proceso con más control, de modo que la cuenta de servicio de SQL Server no sea miembro del rol de servidor fijo sysadmin todo el tiempo, siga estos pasos:
- Agregue temporalmente la cuenta de servicio de SQL Server al rol fijo de servidor sysadmin.
- Permitir que
Deployer.exese ejecuten al menos una vez para que se establezcan los permisos. - Quite la cuenta de servicio SQL Server del rol fijo de servidor sysadmin.
Repita este procedimiento siempre que las características estén habilitadas o deshabilitadas o SQL Server instancias se agreguen para permitir que Deployer.exe conceda los privilegios mínimos necesarios.
Importante
La extensión Azure para SQL Server Deployer.exe requiere NT AUTHORITY\SYSTEM para poder conectarse a SQL Server, con el permiso CONNECT SQL, en ambos modos standard y least privilege. Este requisito existe porque Deployer.exe siempre se ejecuta bajo la cuenta LocalSystem, independientemente de la cuenta de servicio que utilice la extensión después del aprovisionamiento.
Si NT AUTHORITY\SYSTEM no se puede conectar a SQL Server, Deployer.exe no puede crear el inicio de sesión de NT SERVICE\SqlServerExtension ni conceder los permisos necesarios. Antes de habilitar el modo de privilegios mínimos, compruebe que NT AUTHORITY\SYSTEM tenga un inicio de sesión de SQL Server activo con el permiso CONNECT SQL. Consulte Requisitos previos para conocer los pasos de comprobación.
Herramientas
Necesitará las siguientes herramientas para completar los pasos de este artículo:
- CLI de Azure
-
arcdataextensión de la CLI de Azure versión1.5.9o posterior - extensión de Azure para la versión de SQL Server
1.1.2859.223o versiones posteriores
Habilitar privilegios mínimos
Inicie sesión con la CLI de Azure.
az loginCompruebe la versión de la extensión
arcdata.az extension list -o tableSi los resultados incluyen una versión compatible de
arcdata, vaya al paso siguiente.Si fuera necesario, instale o actualice la extensión de la CLI de Azure
arcdata.Para instalar la extensión:
az extension add --name arcdataPara actualizar la extensión:
az extension update --name arcdataHabilite el privilegio mínimo con la CLI de Azure.
Para habilitar el privilegio mínimo, establezca la marca de característica
LeastPrivilegeentrue. Para completar esta tarea, ejecute el siguiente comando con valores actualizados para<resource-group>y<machine-name>.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>Por ejemplo, el siguiente comando habilita los privilegios mínimos para un servidor denominado
myserveren un grupo de recursos denominadomyrg:az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
Verificar la configuración de privilegios mínimos
Para comprobar que SQL Server habilitado para Azure Arc está configurado para ejecutarse con privilegios mínimos:
En los servicios de Windows, busque el servicio de extensión de Microsoft SQL Server. Compruebe que el servicio se está ejecutando como la cuenta de servicio
NT SERVICE\SqlServerExtension.Abra el programador de tareas en el servidor y compruebe que se crea una tarea controlada por eventos con el nombre
SqlServerExtensionPermissionProviderenMicrosoft\SqlServerExtension.Nota:
Antes de la versión de julio de 2024,
SqlServerExtensionPermissionProviderera una tarea programada que se ejecutó cada hora.Abra SQL Server Management Studio y compruebe el inicio de sesión denominado
NT SERVICE\SqlServerExtension. Compruebe que la cuenta tiene asignados estos permisos:- Conectar a SQL
- Ver estado de la base de datos
- Ver el estado del servidor
Valide los permisos con las siguientes consultas:
Para comprobar los permisos de nivel de servidor, ejecute la consulta siguiente:
EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; SELECT * FROM fn_my_permissions(NULL, 'SERVER'); REVERT;Para comprobar los permisos de nivel de base de datos, reemplace por
<database name>el nombre de una de las bases de datos y ejecute la consulta siguiente:EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; USE <database name>; SELECT * FROM fn_my_permissions(NULL, 'database'); REVERT;