Implantar o serviço Host Guardian para SQL Server
Aplica-se a: SQL Server 2019 (15.x) e posterior - apenas Windows
Este artigo descreve como implantar o Serviço de Guardião do Host (HGS) como um serviço de atestado para o SQL Server. Antes de começar, certifique-se de ler o artigo de comprovação do Plano para o Serviço de Guarda de Host para obter uma lista completa de pré-requisitos e orientações de arquitetura.
Observação
O administrador do HGS é responsável por executar todas as etapas descritas neste artigo. Consulte Funções e responsabilidades ao configurar a atestação com o HGS.
Passo 1: Configurar o primeiro computador HGS
O Host Guardian Service (HGS) é executado como um serviço em cluster em um ou mais computadores. Nesta etapa, você configurará um novo cluster HGS no primeiro computador. Se você já tiver um cluster HGS e estiver adicionando computadores adicionais a ele para alta disponibilidade, pule para Etapa 2: Adicionar mais computadores HGS ao cluster.
Antes de começar, verifique se o computador que você está usando está executando o Windows Server 2019 ou posterior - Standard ou Datacenter edition, se você tem privilégios de administrador local e se o computador ainda não ingressou em um domínio do Ative Directory.
Entre no primeiro computador HGS como administrador local e abra um console do Windows PowerShell com privilégios elevados. Execute o seguinte comando para instalar a função Host Guardian Service. O computador será reiniciado automaticamente para aplicar as alterações.
Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
Depois que o computador HGS for reiniciado, execute os seguintes comandos em um console do Windows PowerShell com privilégios elevados para instalar a nova floresta do Ative Directory:
# Select the name for your new Active Directory root domain. # Make sure the name does not conflict with, and is not subordinate to, any existing domains on your network. $HGSDomainName = 'bastion.local' # Specify a Directory Services Restore Mode password that can be used to recover your domain in safe mode. # This password is not, and will not change, your admin account password. # Save this password somewhere safe and include it in your disaster recovery plan. $DSRMPassword = Read-Host -AsSecureString -Prompt "Directory Services Restore Mode Password" Install-HgsServer -HgsDomainName $HgsDomainName -SafeModeAdministratorPassword $DSRMPassword -Restart
O computador HGS será reiniciado novamente para concluir a configuração da floresta do Ative Directory. Da próxima vez que iniciar sessão, a sua conta de administrador será uma conta de administrador de domínio. Recomendamos consultar a documentação das operações dos Serviços de Domínio do Active Directory para obter mais informações sobre como gerir e proteger a sua nova floresta.
Em seguida, você configurará o cluster HGS e instalará o serviço de atestado executando o seguinte comando em um console do Windows PowerShell com privilégios elevados:
# Note: the name you provide here will be shared by all HGS nodes and used to point your SQL Server computers to the HGS cluster. # For example, if you provide "attsvc" here, a DNS record for "attsvc.yourdomain.com" will be created for every HGS computer. Initialize-HgsAttestation -HgsServiceName 'hgs'
Etapa 2: Adicionar mais computadores HGS ao cluster
Assim que o seu primeiro computador e cluster HGS estiver configurado, pode adicionar servidores HGS adicionais para fornecer alta disponibilidade. Se estiver a configurar apenas um servidor HGS (num ambiente de desenvolvimento/teste, por exemplo), pode saltar para o Passo 3.
Tal como acontece com o primeiro computador HGS, certifique-se de que o computador que está a aderir ao cluster está a executar o Windows Server 2019 ou posterior - Standard ou Datacenter edition, que tem privilégios de administrador local e que o computador ainda não está associado a um domínio do Ative Directory.
Entre no computador como administrador local e abra um console do Windows PowerShell com privilégios elevados. Execute o seguinte comando para instalar a função Host Guardian Service. O computador será reiniciado automaticamente para aplicar as alterações.
Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
Verifique a configuração do cliente DNS no seu computador para garantir que ele possa resolver o domínio HGS. O comando a seguir deve retornar um endereço IP para o seu servidor HGS. Se não conseguir resolver o domínio HGS, poderá ter de atualizar as informações do servidor DNS na placa de rede para utilizar o servidor DNS HGS para resolução de nomes.
# Change 'bastion.local' to the domain name you specified in Step 1.2 nslookup bastion.local # If it fails, use sconfig.exe, option 8, to set the first HGS computer as your preferred DNS server.
Depois que o computador for reiniciado, execute o seguinte comando em um console do Windows PowerShell com privilégios elevados para associar o computador ao domínio do Ative Directory criado pelo primeiro servidor HGS. Você precisará de credenciais de administrador de domínio para o domínio do AD para executar esse comando. Quando o comando for concluído, o computador será reiniciado e a máquina se tornará um controlador de domínio do Ative Directory para o domínio HGS.
# Provide the fully qualified HGS domain name $HGSDomainName = 'bastion.local' # Provide a domain administrator's credential for the HGS domain $DomainAdminCred = Get-Credential # Specify a Directory Services Restore Mode password that can be used to recover your domain in safe mode. # This password is not, and will not change, your admin account password. # Save this password somewhere safe and include it in your disaster recovery plan. $DSRMPassword = Read-Host -AsSecureString -Prompt "Directory Services Restore Mode Password" Install-HgsServer -HgsDomainName $HgsDomainName -HgsDomainCredential $DomainAdminCred -SafeModeAdministratorPassword $DSRMPassword -Restart
Entre com credenciais de administrador de domínio depois que o computador for reiniciado. Abra um console do Windows PowerShell com privilégios elevados e execute os seguintes comandos para configurar o serviço de atestado. Como o serviço de atestado é ciente de clusters, ele replicará a sua configuração de outros membros do cluster. As alterações feitas nas políticas de atestação em qualquer nó do HGS serão aplicadas a todos os outros nós.
# Provide the IP address of an existing, initialized HGS server # If you are using separate networks for cluster and application traffic, choose an IP address on the cluster network. # You can find the IP address of your HGS server by signing in and running "ipconfig /all" Initialize-HgsAttestation -HgsServerIPAddress '172.16.10.20'
Repita o Passo 2 para cada computador que pretende adicionar ao seu cluster HGS.
Etapa 3: Configurar um encaminhador DNS para o cluster HGS
O HGS executa seu próprio servidor DNS, que contém os registros de nome necessários para resolver o serviço de atestado. Seus computadores SQL Server não poderão resolver esses registros até que você configure o servidor DNS da rede para encaminhar solicitações para os servidores DNS HGS.
O processo de configuração de encaminhadores DNS é específico do fornecedor, por isso recomendamos entrar em contato com o administrador da rede para obter a orientação correta para sua rede específica.
Se estiver a utilizar a função de Servidor DNS do Windows Server para a sua rede empresarial, o administrador de DNS pode criar um reencaminhador condicional para o domínio HGS para que apenas os pedidos para o domínio HGS sejam encaminhados. Por exemplo, se os seus servidores HGS utilizarem o nome de domínio "bastion.local" e tiverem endereços IP de 172.16.10.20, 172.16.10.21 e 172.16.10.22, pode executar o seguinte comando no servidor DNS empresarial para configurar um reencaminhador condicional:
# Tip: make sure to provide every HGS server's IP address
# If you use separate NICs for cluster and application traffic, use the application traffic NIC IP addresses here
Add-DnsServerConditionalForwarderZone -Name 'bastion.local' -ReplicationScope "Forest" -MasterServers "172.16.10.20", "172.16.10.21", "172.16.10.22"
Etapa 4: Configurar o serviço de atestado
O HGS oferece suporte a dois modos de atestado: atestado TPM para verificação criptográfica da integridade e identidade de cada computador SQL Server e atestado de Chave Host para verificação simples da identidade do computador SQL Server. Se ainda não seleccionou um modo de atestação, consulte as informações sobre a atestação no do guia de planeamento para obter mais detalhes sobre as garantias de segurança e casos de uso para cada modo.
As etapas nesta seção configurarão as políticas básicas de atestado para um modo de atestado específico. Você registrará informações específicas do host na Etapa 4. Se você precisar alterar seu modo de atestado no futuro, repita as etapas 3 e 4 usando o modo de atestado desejado.
Mudar para o atestado TPM
Para configurar o atestado TPM no HGS, você precisará de um computador com acesso à Internet e pelo menos um computador SQL Server com um chip TPM 2.0 rev 1.16.
Para configurar o HGS para usar o modo TPM, abra um console do PowerShell com privilégios elevados e execute o seguinte comando:
Set-HgsServer -TrustTpm
Todos os computadores HGS no seu cluster agora usarão o modo TPM quando um computador SQL Server tentar fazer a atestação.
Antes de registrar as informações do TPM de seus computadores SQL Server com o HGS, você precisa instalar os certificados raiz da chave de endosso (EK) do(s) seu(s) fornecedor(es) do TPM. Cada TPM físico é configurado de fábrica com uma chave de endosso exclusiva que é acompanhada por um certificado de chave de endosso que identifica o fabricante. Este certificado garante que o seu TPM é genuíno. O HGS verifica o certificado de chave de endosso quando você registra um novo TPM no HGS, comparando a cadeia de certificados com uma lista de certificados raiz confiáveis.
A Microsoft publica uma lista de certificados raiz de fornecedores de TPM comprovadamente bons que pode importar para o armazenamento de Certificados Raiz TPM Confiáveis do HGS. Se seus computadores SQL Server forem virtualizados, você precisará entrar em contato com seu provedor de serviços de nuvem ou fornecedor de plataforma de virtualização para obter informações sobre como obter a cadeia de certificados para a chave de endosso do TPM virtual.
Para baixar o pacote de certificados raiz TPM confiáveis da Microsoft para TPMs físicos, conclua as seguintes etapas:
Em um computador com acesso à Internet, baixe o pacote de certificados raiz TPM mais recente do https://go.microsoft.com/fwlink/?linkid=2097925
Verifique a assinatura do ficheiro .cab para assegurar que é autêntico.
# Note: replace the path below with the correct one to the file you downloaded in step 1 Get-AuthenticodeSignature ".\TrustedTpm.cab"
Advertência
Não prossiga se a assinatura for inválida e contacte o suporte da Microsoft para obter assistência.
Expanda o arquivo cab para um novo diretório.
mkdir .\TrustedTpmCertificates expand.exe -F:* ".\TrustedTpm.cab" ".\TrustedTpmCertificates"
No novo diretório, você verá diretórios para cada fornecedor de TPM. Você pode excluir os diretórios de fornecedores que não usa.
Copie todo o diretório "TrustedTpmCertificates" para o seu servidor HGS.
Abra um console do PowerShell com privilégios elevados no servidor HGS e execute o seguinte comando para importar todos os certificados raiz e intermediários do TPM:
# Note: replace the path below with the correct location of the TrustedTpmCertificates folder on your HGS computer cd "C:\scratch\TrustedTpmCertificates" .\setup.cmd
Repita os passos 5 e 6 para cada computador HGS.
Se você tiver obtido certificados de CA intermediários e raiz de seu OEM, provedor de serviços de nuvem ou fornecedor de plataforma de virtualização, poderá importar diretamente os certificados para o respetivo armazenamento de certificados de máquina local: TrustedHgs_RootCA
ou TrustedHgs_IntermediateCA
. Por exemplo, no PowerShell:
# Imports MyCustomTpmVendor_Root.cer to the local machine's "TrustedHgs_RootCA" store
Import-Certificate -FilePath ".\MyCustomTpmVendor_Root.cer" -CertStoreLocation "Cert:\LocalMachine\TrustedHgs_RootCA"
Alternar para o atestado de chave do host
Para usar o atestado de chave de host, execute o seguinte comando em um servidor HGS em um console do PowerShell elevado:
Set-HgsServer -TrustHostKey
Todos os computadores HGS no seu cluster agora usarão o modo de chave de host quando um computador SQL Server tentar fazer uma verificação.
Etapa 5: Configurar a ligação HTTPS HGS
Em uma instalação padrão, o HGS expõe apenas uma ligação HTTP (porta 80). Você pode configurar uma associação HTTPS (porta 443) para criptografar todas as comunicações entre computadores SQL Server e HGS. É recomendável que todas as instâncias de produção do HGS usem uma ligação HTTPS.
Obtenha um certificado TLS da sua autoridade de certificação, usando o nome de serviço HGS totalmente qualificado da Etapa 1.3 como o nome do assunto. Se não souber o nome do serviço, pode encontrá-lo executando
Get-HgsServer
em qualquer computador HGS. Pode adicionar nomes DNS alternativos à Lista de Nomes Alternativos do Sujeito se os computadores SQL Server utilizarem um nome DNS diferente para aceder ao cluster HGS (por exemplo, se o HGS estiver atrás de um balanceador de carga com um endereço diferente).No computador HGS, use Set-HgsServer para habilitar a associação HTTPS e especificar o certificado TLS obtido na etapa anterior. Se o certificado já estiver instalado no computador no armazenamento de certificados local, use o seguinte comando para registrá-lo no HGS:
# Note: you'll need to know the thumbprint for your certificate to configure HGS this way Set-HgsServer -Http -Https -HttpsCertificateThumbprint "54A043386555EB5118DB367CFE38776F82F4A181"
Se tiver exportado o seu certificado (com uma chave privada) para um ficheiro PFX protegido por palavra-passe, pode registá-lo no HGS executando o seguinte comando:
$PFXPassword = Read-Host -AsSecureString -Prompt "PFX Password" Set-HgsServer -Http -Https -HttpsCertificatePath "C:\path\to\hgs_tls.pfx" -HttpsCertificatePassword $PFXPassword
Repita as etapas 1 e 2 para cada computador HGS no cluster. Os certificados TLS não são replicados automaticamente entre nós HGS. Além disso, cada computador HGS pode ter seu próprio certificado TLS exclusivo, desde que o assunto corresponda ao nome do serviço HGS.
Etapa 6: Determinar e compartilhar o URL do atestado HGS
Como administrador do HGS, você precisa compartilhar a URL de atestado do HGS com administradores de computador do SQL Server e administradores de aplicativos em sua organização. Os administradores de servidores SQL Server precisarão da URL de atestado para verificar se os computadores podem atestar com o HGS. Os administradores de aplicativos precisarão da URL de atestado para configurar como seus aplicativos se conectam ao SQL Server.
Para determinar a URL de atestado, execute o cmdlet a seguir.
Get-HGSServer
A saída do comando será semelhante à abaixo:
Name Value
---- -----
AttestationOperationMode HostKey
AttestationUrl {http://hgs.bastion.local/Attestation}
KeyProtectionUrl {}
O URL de atestado para o seu HGS é o valor da propriedade AttestationUrl.