Partilhar via


Operar o SQL Server habilitado pelo Azure Arc com o menor privilégio

Aplica-se a:SQL Server

O princípio de segurança da informação de menor privilégio afirma que as contas e aplicações só têm acesso aos dados e operações de que necessitam. Com o SQL Server habilitado pelo Azure Arc, você pode executar o serviço de extensão de agente com o menor privilégio. Este artigo explica como executar o serviço de extensão do agente com o mínimo privilégio.

Para configurar opcionalmente o serviço para ser executado com o menor privilégio, siga as etapas neste artigo. Atualmente, o serviço não é executado automaticamente com o menor privilégio.

Configurar contas de serviço do Windows e permissões para a Extensão do Azure para SQL Server descreve as permissões de privilégio mínimo para o serviço de extensão de agente.

Observação

Os servidores existentes com a extensão da versão de novembro de 2024 ou posterior terão automaticamente a configuração menos privilegiada aplicada. Esta aplicação acontecerá gradualmente.

Para evitar a aplicação automática de privilégios mínimos, bloqueie as atualizações de extensão para a versão de novembro de 2024.

Depois de configurar o serviço de extensão do agente para ser executado com o menor privilégio, utiliza a conta de serviço NT Service\SQLServerExtension.

A conta NT Service\SQLServerExtension é uma conta de serviço local do Windows:

  • Criado e gerenciado pela Extensão do Azure para SQL Server quando a opção de menor privilégio está habilitada.
  • Concedido o mínimo de permissões e privilégios necessários para executar a extensão do Azure para o serviço SQL Server no sistema operacional Windows. Ele só tem acesso a pastas e diretórios usados para leitura e armazenamento de configuração ou para escrever logs.
  • Permissão concedida para se conectar e consultar no SQL Server com um novo logon especificamente para essa conta de serviço que tem as permissões mínimas necessárias. As permissões mínimas dependem dos recursos habilitados.
  • Atualizado quando as permissões não são mais necessárias. Por exemplo, as permissões são revogadas quando você desabilita um recurso, desabilita a configuração de privilégios mínimos ou desinstala a extensão do Azure para SQL Server. A revogação garante que nenhuma permissão permaneça depois que elas não forem mais necessárias.

Pré-requisitos

Esta seção identifica os requisitos do sistema e as ferramentas necessárias para concluir o exemplo neste artigo.

Requisitos do sistema

A configuração com menor privilégio requer:

  • Windows Server 2012 ou posterior
  • SQL Server 2012 ou posterior
  • A conta de serviço do SQL Server deve ser membro da função de servidor fixa sysadmin
  • Todas as bases de dados devem estar online e atualizáveis

A configuração com menor privilégio não é suportada atualmente no Linux.

Outros requisitos, conforme listados em Pré-requisitos - SQL Server habilitado pelo Azure Arc ainda se aplicam.

Conta de serviço do SQL Server

Por padrão, a conta de serviço do SQL Server é membro da função de servidor fixa sysadmin.

Conforme listado em pré-requisitos, a conta de serviço do SQL Server deve ser membro da função de servidor fixa sysadmin em cada instância do SQL Server. A extensão do Azure para SQL Server tem um processo chamado Deployer.exe que é executado temporariamente como NT AUTHORITY\SYSTEM quando:

  • As funcionalidades estão ativadas ou desativadas
  • As instâncias do SQL Server são adicionadas ou removidas

Deployer.exe representa a conta de serviço do SQL Server para se conectar ao SQL Server e adicionar ou remover permissões em funções de servidor e banco de dados, dependendo de quais recursos estão habilitados ou desabilitados para garantir que a extensão do Azure para SQL Server use o mínimo de privilégios necessários. Para modificar essas permissões, a conta de serviço do SQL Server deve ser membro da função de servidor sysadmin.

Se você quiser gerenciar esse processo com mais controle, de modo que a conta de serviço do SQL Server não seja um membro da função de servidor sysadmin o tempo todo, siga estas etapas:

  1. Adicione temporariamente a conta de serviço do SQL Server à função de servidor sysadmin.
  2. Permita que Deployer.exe seja executado pelo menos uma vez para que as permissões sejam definidas.
  3. Remova a conta de serviço do SQL Server da função sysadmin.

Repita este procedimento sempre que os recursos forem habilitados ou desabilitados ou instâncias do SQL Server forem adicionadas para permitir que Deployer.exe concedam o mínimo de privilégios necessários.

Ferramentas

Para concluir as etapas neste artigo, você precisa das seguintes ferramentas:

Implementar o princípio de privilégio mínimo

  1. Faça logon com a CLI do Azure.

    az login
    
  2. Verifique a versão da extensão arcdata.

    az extension list -o table
    

    Se os resultados incluírem uma versão suportada do arcdata, avance para o passo seguinte.

    Se necessário, instale ou atualize a extensão arcdata CLI do Azure.

    Para instalar a extensão:

    az extension add --name arcdata
    

    Para atualizar a extensão:

    az extension update --name arcdata
    
  3. Habilite o privilégio mínimo com a CLI do Azure.

    Para habilitar o privilégio mínimo, defina o sinalizador de recurso LeastPrivilege como true. Para concluir essa tarefa, execute o seguinte comando com valores atualizados para o <resource-group> e <machine-name>.

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

    Por exemplo, o comando a seguir habilita o privilégio mínimo para um servidor chamado myserver em um grupo de recursos chamado myrg:

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

Verificar a configuração de privilégios mínimos

Para verificar se o SQL Server habilitado pelo Azure Arc está configurado para ser executado com o menor privilégio:

  1. Nos serviços do Windows, localize o serviço do Microsoft SQL Server Extension Service. Verifique se o serviço está a ser executado sob a conta de serviço NT Service\SqlServerExtension. 

  2. Abra o agendador de tarefas no servidor e verifique se uma tarefa orientada a eventos com nome SqlServerExtensionPermissionProvider foi criada em Microsoft\SqlServerExtension.

    Observação

    Antes da versão de julho de 2024, SqlServerExtensionPermissionProvider é uma tarefa agendada. Funciona de hora em hora.

    Abra o agendador de tarefas no servidor e verifique se uma tarefa agendada com nome SqlServerExtensionPermissionProvider foi criada em Microsoft\SqlServerExtension.

  3. Abra o SQL Server Management Studio e verifique o logon chamado NT Service\SqlServerExtension. Verifique se a conta recebeu estas permissões:

    • Conectar SQL
    • Exibir estado do banco de dados
    • Exibir estado do servidor
  4. Valide as permissões com as seguintes consultas:

    Para verificar as permissões no nível do servidor, execute a seguinte consulta:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    SELECT * FROM fn_my_permissions (NULL, 'SERVER");
    

    Para verificar as permissões no nível do banco de dados, substitua <database name> pelo nome de um dos bancos de dados e execute a seguinte consulta:

    EXECUTE AS LOGIN = 'NT Service\SqlServerExtension'  
    USE <database name>; 
    SELECT * FROM fn_my_permissions (NULL, 'database");