Operar o SQL Server habilitado pelo Azure Arc com privilégios mínimos
Aplica-se: SQL Server
O princípio de segurança da informação de privilégios mínimos afirma que as contas e os aplicativos apenas têm acesso aos dados e às 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 menos privilégios. Este artigo explica como executar o serviço de extensão de agente com privilégios mínimos.
Para configurar opcionalmente o serviço para ser executado com privilégios mínimos, siga as etapas neste artigo. Atualmente, o serviço não é executado automaticamente com privilégios mínimos.
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égios mínimos 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 a configuração com privilégios mínimos aplicada. A aplicação acontecerá de forma gradual.
Bloqueie as atualizações de extensão para a versão de novembro de 2024 ou posterior para evitar a aplicação automática de privilégios mínimos.
Depois de configurar o serviço de extensão do agente para execução com privilégios mínimos, ele usa a conta de serviço NT Service\SQLServerExtension
.
A conta NT Service\SQLServerExtension
é uma conta de serviço local do Windows:
- Criada e gerenciada pela Extensão do Azure para SQL Server quando a opção de privilégios mínimos está habilitada.
- Recebe as permissões e privilégios mínimos necessários para executar a extensão do Azure para o serviço SQL Server no sistema operacional Windows. Só tem acesso a pastas e diretórios usados para ler e armazenar logs de configuração ou de gravação.
- Recebe permissão para se conectar e consultar no SQL Server com um novo logon especificamente para a conta de serviço que tem as permissões mínimas necessárias. As permissões mínimas dependem dos recursos habilitados.
- Atualizada 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 não forem mais necessárias.
Pré-requisitos
Esta seção identifica os requisitos de sistema e as ferramentas necessárias para concluir o exemplo neste artigo.
Requisitos do sistema
A configuração com privilégios mínimos 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
sysadmin
de servidor fixa - Todos os bancos de dados devem estar online e atualizáveis
No momento, não há suporte para a configuração com privilégios mínimos 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 é um membro da função de servidor fixa sysadmin
.
Conforme listado em pré-requisitos, a conta de serviço do SQL Server deve ser um 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:
- Os recursos estão habilitados ou desabilitados
- As instâncias do SQL Server foram 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 os privilégios mínimos necessários. Para modificar essas permissões, a conta de serviço do SQL Server deve ser um membro da função de servidor sysadmin
.
Se você quiser gerenciar este processo com mais controle, de modo que a conta de serviço do SQL Server não seja membro da função de servidor sysadmin o tempo todo, siga estas etapas:
- Adicione temporariamente a conta de serviço do SQL Server à função de servidor sysadmin.
- Permitir a execução de
Deployer.exe
pelo menos uma vez para que as permissões sejam definidas. - Remova a conta de serviço do SQL Server da função sysadmin.
Repita este procedimento sempre que os recursos estiverem habilitados ou desabilitados ou as instâncias do SQL Server forem adicionadas para permitir que o Deployer.exe
conceda os privilégios mínimos necessários.
Ferramentas
Para concluir as etapas neste artigo, você precisa das seguintes ferramentas:
- CLI do Azure
arcdata
Extensão da CLI do Azure versão1.5.9
ou posterior- Extensão do Azure para o SQL Server versão
1.1.2504.99
ou posterior
Habilitar privilégios mínimos
Faça login com a CLI do Azure.
az login
Verifique a versão da extensão
arcdata
.az extension list -o table
Se os resultados incluírem uma versão com suporte do
arcdata
, avance para a etapa seguinte.Se necessário, instale ou atualize a extensão da
arcdata
CLI do Azure.Para instalar a extensão:
az extension add --name arcdata
Para atualizar a extensão:
az extension update --name arcdata
Habilite privilégios mínimos com a CLI do Azure.
Para habilitar privilégios mínimos, defina o sinalizador de recurso
LeastPrivilege
comotrue
. Para concluir essa tarefa, execute o seguinte comando com valores atualizados para<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 privilégios mínimos para um servidor nomeado
myserver
em um grupo de recursos chamadomyrg
: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 execução com privilégios mínimos:
Nos serviços do Windows, localize o serviço Extensão do Microsoft SQL Server. Verifique se o serviço está sendo executado na conta como o serviço
NT Service\SqlServerExtension
.Abra o agendador de tarefas no servidor e verifique se uma tarefa promovida por evento com o nome
SqlServerExtensionPermissionProvider
foi criada emMicrosoft\SqlServerExtension
.Observação
Antes da versão de julho de 2024,
SqlServerExtensionPermissionProvider
é uma tarefa agendada. Ela funciona de hora em hora.Abra o agendador de tarefas no servidor e verifique se uma tarefa agendada com nome
SqlServerExtensionPermissionProvider
foi criada emMicrosoft\SqlServerExtension
.Abra o SQL Server Management Studio e verifique o logon denominado
NT Service\SqlServerExtension
. Verifique se a conta recebeu estas permissões:- Conectar SQL
- Exibir estado do banco de dados
- Exibir estado do servidor
Valide as permissões com as seguintes consultas:
Para verificar 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 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");