Funcionamiento de SQL Server habilitado para Azure Arc con privilegios mínimos (versión preliminar)

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:

Si la extensión de Azure es versión 1.1.2594.118 (versión de febrero de 2024) o posterior, el modo de privilegio mínimo se habilitará automáticamente en los próximos meses.

La compatibilidad con esta configuración está disponible actualmente para la versión preliminar.

Nota:

Como característica en versión preliminar, la tecnología que se presenta en este artículo está sujeta a los términos de uso complementarios para las versiones preliminares de Microsoft Azure.

Las actualizaciones más recientes están disponibles en las Notas de la versión: SQL Server habilitado por Azure Arc.

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, deshabilitar la configuración con privilegios mínimos o desinstalar la extensión de Azure para SQL Server. La revocación garantiza que no permanezcan permisos después de que ya no sean necesarios.

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 superior
  • SQL Server 2012 o posterior

La configuración con privilegios mínimos no se admite actualmente en Linux.

Herramientas

Necesitará las siguientes herramientas para completar los pasos de este artículo:

Habilitar privilegios mínimos

  1. Inicio de sesión con la CLI de Azure.

    az login
    
  2. Compruebe la versión de la extensión arcdata.

    az extension list -o table
    

    Si 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 arcdata
    

    Para actualizar la extensión:

    az extension update --name arcdata
    
  3. Habilite el privilegio mínimo con la CLI de Azure.

    Para habilitar el privilegio mínimo, establezca la marca de característica LeastPrivilege en true. 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 myserver en un grupo de recursos denominado myrg:

    az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver 
    

Validación de la configuración

Para comprobar que SQL Server habilitado para Azure Arc está configurado para ejecutarse con privilegios mínimos:

  1. En los servicios de Windows, busque el servicio de extensión de Microsoft SQL Server. Compruebe que el servicio se ejecuta como la cuenta de servicio NT Service\SqlServerExtension. 

  2. Abra el programador de tareas en el servidor y compruebe que se crea una tarea programada con el nombre SqlServerExtensionPermissionProvider en Microsoft\SqlServerExtension. Esta tarea se ejecuta cada hora para agregar o quitar permisos según sea necesario en función de las características habilitadas y deshabilitadas.

  3. 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 SQL
    • Ver estado de base de datos
    • Ver el estado del servidor
  4. 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");
    

    Para comprobar los permisos de nivel de base de datos, reemplace <database name> por 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");
    

Deshabilitar privilegios mínimos

Para habilitar el privilegio mínimo, establezca la marca de característica LeastPrivilege en false. 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 false --resource-group <resource-group> --machine-name <machine-name>

Por ejemplo, el siguiente comando deshabilita los privilegios mínimos para un servidor denominado myserver en un grupo de recursos denominado myrg:

az sql server-arc extension feature-flag set --name LeastPrivilege --enable false --resource-group myrg --machine-name myserver