Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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.
Mínimo privilegio habilitado por defecto
El privilegio mínimo está activado por defecto en las siguientes versiones de Azure Extension for SQL Server:
- Versión 1.1.3453.436
- Versión 1.1.3518.465 y versiones posteriores
El privilegio mínimo no está activado por defecto en versiones anteriores a 1.1.3453.436 ni en las versiones 1.1.3464.439, 1.1.3494.451 y 1.1.3500.453. Para estas versiones, sigue los pasos de este artículo para habilitar manualmente el privilegio mínimo.
Nota:
Para servidores existentes que usan 1.1.2859.223 o versiones posteriores, cuando se habilita la actualización automática, la configuración de menor privilegio se aplica eventualmente como parte de las actualizaciones automáticas. Para evitar la aplicación automática de la configuración de privilegios mínimos, bloquee las actualizaciones de la extensión después de 1.1.2859.223.
Cuando el privilegio mínimo está habilitado, la extensión de Azure para SQL Server crea y gestiona NT SERVICE\SqlServerExtension automáticamente como una cuenta local de servicio de Windows y inicio de sesión en SQL Server:
- La extensión concede a la cuenta solo los permisos de Windows necesarios para leer y almacenar configuraciones y escribir registros.
- La extensión otorga al inicio de sesión los permisos mínimos de SQL Server requeridos por las funciones habilitadas.
- La extensión revoca permisos cuando ya no son necesarios, como cuando desactivas una función.
- La extensión elimina la cuenta cuando desinstalas la extensión de Azure para SQL Server o desactivas el privilegio mínimo.
Requisitos previos
Esta sección identifica los requisitos del sistema y las herramientas que necesitas para habilitar o desactivar el privilegio mínimo.
Requisitos del sistema
Configurar el privilegio mínimo requiere:
- Windows Server 2016 o versiones posteriores.
- SQL Server 2014 (12.x) 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.
Actualmente, el privilegio mínimo no está soportado en Linux.
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 versiones
1.1.2859.223de SQL Server o versiones posteriores para habilitar manualmente el privilegio mínimo.
Activar o desactivar el privilegio mínimo
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 desactivar, establece la bandera de característica enfalse. Para completar esta tarea, ejecuta el siguiente comando con tus valores 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 Servicios, localice Microsoft SQL Server Extension Service. Verifique que el servicio se ejecute con la cuenta de servicio
NT SERVICE\SqlServerExtension.Abre el programador de tareas en el servidor. Verifica que existe una tarea impulsada por eventos llamada
SqlServerExtensionPermissionProviderbajoMicrosoft\SqlServerExtension.Abra SQL Server Management Studio y compruebe el inicio de sesión denominado
NT SERVICE\SqlServerExtension. Verifica que la cuenta tenga asignados estos permisos base:CONNECT SQLVIEW DATABASE STATEVIEW SERVER STATE
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;
Opcional: Gestionar la cuenta de servicio del motor de base de datos de SQL Server
Utiliza la configuración predeterminada de cuentas de servicio para la mayoría de los entornos. Utilice el siguiente procedimiento solo si necesita quitar la cuenta de servicio del motor de base de datos de SQL Server del rol fijo de servidor sysadmin entre operaciones de extensión.
Para usar el modo de menor privilegio, la cuenta del servicio del motor de base de datos de SQL Server debe ser miembro del rol fijo de servidor administrador del sistema en cada instancia de SQL Server. Esta membresía permite al sistema conceder o revocar permisos automáticamente. Por defecto, la cuenta de servicio del Motor de base de datos de SQL Server es miembro del rol fijo de servidor sysadmin.
La extensión de Azure para SQL Server ejecuta un proceso temporal llamado Deployer.exe como NT AUTHORITY\SYSTEM cuando:
- Puedes activar o desactivar funciones
- Añades o eliminas instancias de SQL Server
- Instalas o actualizas la extensión
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.
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:
- Antes de instalar o actualizar la extensión, activar o desactivar una función, o añadir o eliminar una instancia de SQL Server, añade temporalmente la cuenta del servicio del motor de base de datos de SQL Server al rol de servidor fijo de 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.
Repite este procedimiento cada vez que instales o actualices la extensión, habilites o desactives una función, o añadas o elimines una instancia de SQL Server. Este procedimiento permite Deployer.exe conceder los menores privilegios requeridos.
Como debes repetir este procedimiento en cada actualización de extensión, considera desactivar las actualizaciones automáticas. Luego puedes usar un script que realice estos pasos y actualice la extensión.
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. Para verificar, consulta Requisitos previos.
Si la cuenta del servicio del motor de base de datos de SQL Server no tiene el rol fijo de servidor de administrador del sistema, no se pueden conceder permisos justo a tiempo.
Para detalles sobre cuándo se utilizan estos permisos, consulte Configurar cuentas de servicio Windows y permisos para Azure Extension for SQL Server.