Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Importante
A partir da versão 2108 do Azure Stack Hub, os fornecedores de recursos SQL e MySQL são oferecidos às subscrições que receberam acesso. Se quiser começar a usar esta funcionalidade, ou se precisar de atualizar a partir de uma versão anterior, abra um caso de suporte e os nossos engenheiros de suporte irão guiá-lo durante o processo de implementação ou atualização.
O fornecedor de recursos SQL corre numa máquina virtual (VM) bloqueada. Para permitir operações de manutenção, é necessário atualizar a segurança da VM. Para fazer isto usando o princípio do Privilégio Mínimo, use o endpoint de Administração Justa Suficiente (JEA) do PowerShellDBAdapterMaintenance. O pacote de instalação do fornecedor de recursos inclui um script para esta ação.
Correção e atualização
O fornecedor de recursos SQL não é servido como parte do Azure Stack Hub porque é um componente adicional. A Microsoft fornece atualizações ao fornecedor de recursos SQL conforme necessário.
Para SQL RP V1, quando um fornecedor de recursos SQL Server atualizado é lançado, é fornecido um script para aplicar a atualização. Este script cria uma nova VM fornecedora de recursos, migrando o estado da VM do fornecedor antigo para a nova VM.
No SQL RP V2, os fornecedores de recursos são atualizados usando a mesma funcionalidade de atualização que é usada para aplicar as atualizações do Azure Stack Hub.
Para mais informações, consulte Atualizar o fornecedor de recursos SQL.
Atualizar a VM do fornecedor
O SQL RP V1 corre numa VM de utilizador , precisas de aplicar os patches e atualizações necessários quando forem lançados. Pode instalar um pacote Windows Update durante a instalação ou atualização do fornecedor de recursos.
O SQL RP V2 corre num Windows Server gerido que está oculto. Não precisas de corrigir ou atualizar a VM do fornecedor de recursos. Será atualizado automaticamente quando atualizares o RP.
Atualizar as definições do Windows Defender da VM
Estas instruções aplicam-se apenas ao SQL RP V1 a correr em Sistemas Integrados Azure Stack Hub.
Para atualizar as definições do Windows Defender:
Descarregue a atualização de definições do Windows Defender em Security intelligence updates for Windows Defender.
Na página de atualização de definições, desça até "Descarregar manualmente a atualização". Descarregue o ficheiro "Windows Defender Antivirus for Windows 10 and Windows 8.1" de 64 bits.
Também pode usar este link direto para descarregar/executar o ficheiro fpam-fe.exe.
Crie uma sessão PowerShell para o endpoint de manutenção da VM do adaptador de recursos SQL.
Copie o ficheiro de atualização de definições para a VM usando a sessão do endpoint de manutenção.
Na sessão PowerShell de manutenção, execute o comando Update-DBAdapterWindowsDefenderDefinitions .
Depois de instalar as definições, recomendamos que elimine o ficheiro de atualização de definições usando o comando Remove-ItemOnUserDrive .
Exemplo de script PowerShell para atualização de definições
Pode editar e executar o script seguinte para atualizar as definições do Defender. Substitui os valores do script por valores do teu ambiente.
# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
($vmLocalAdminUser, $vmLocalAdminPass)
# Provide the public IP address for the adapter VM.
$databaseRPMachine = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"
# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
-Outfile $localPathToDefenderUpdate
# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
-Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
-SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
-Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
{Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
{Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession
Configure a extensão Azure Diagnostics para o fornecedor de recursos SQL
Estas instruções aplicam-se apenas ao SQL RP V1 a correr em Sistemas Integrados Azure Stack Hub.
A extensão Azure Diagnostics está instalada por padrão na VM do adaptador do provedor de recursos SQL. Os passos seguintes mostram como personalizar a extensão para recolher os registos operacionais de eventos e registos IIS do fornecedor de recursos SQL para fins de resolução de problemas e auditoria.
Entre no portal do administrador do Azure Stack Hub.
Selecione máquinas virtuais no painel à esquerda, procure a máquina virtual do adaptador do provedor de recursos SQL e selecione a máquina virtual.
Nas definições de Diagnóstico da VM, vá ao separador Logs e escolha Personalizado para personalizar os registos de eventos que estão a ser recolhidos.
Add Microsoft-AzureStack-DatabaseAdapter/Operational!* para recolher os registos operacionais de eventos do fornecedor de recursos SQL.
Para permitir a recolha dos registos IIS, verifique os registos IIS e os registos de pedidos falhados.
Por fim, seleciona Guardar para guardar todas as definições de Diagnóstico.
Uma vez configurados os registos de eventos e a coleção de registos IIS para o fornecedor de recursos SQL, os registos podem ser encontrados numa conta de armazenamento do sistema chamada sqladapterdiagaccount.
Para saber mais sobre a extensão Azure Diagnostics, consulte O que é a extensão Azure Diagnostics.
Atualização de credenciais SQL
És responsável por criar e manter contas de sysadmin nos teus servidores SQL. O fornecedor de recursos precisa de uma conta com estes privilégios para gerir bases de dados dos utilizadores, mas não precisa de acesso aos dados dos utilizadores. Se precisar de atualizar as palavras-passe dos administradores do sistema nos seus servidores SQL, pode usar a interface de administrador do fornecedor de recursos para alterar uma palavra-passe armazenada. Estas palavras-passe são armazenadas num Cofre de Chaves na sua instância Azure Stack Hub.
Para modificar as definições, selecione Explorar> RECURSOS >SQL Hosting Servers>SQL Logins e selecione um nome de utilizador. A alteração deve ser feita primeiro na instância SQL (e em quaisquer réplicas, se necessário). Em Definições, selecione Palavra-passe.
Rotação dos segredos
Estas instruções aplicam-se apenas ao SQL RP V1 a correr em Sistemas Integrados Azure Stack Hub.
Ao utilizar os fornecedores de recursos SQL e MySQL com sistemas integrados no Azure Stack Hub, o operador do Azure Stack Hub é responsável por rodar os seguintes segredos de infraestrutura do fornecedor de recursos para garantir que não expiram:
- Certificado SSL externo fornecido durante a implementação.
- A palavra-passe da conta local de administrador da VM fornecedora de recursos foi fornecida durante a implementação.
- Palavra-passe do utilizador de diagnóstico do fornecedor de recursos (dbadapterdiag).
- (versão >= 1.1.47.0) Certificado do Cofre de Chaves gerado durante a implementação.
Exemplos de PowerShell para rotação de segredos
Importante
A rotação secreta bem-sucedida requer a remoção de quaisquer versões existentes dos módulos PowerShell do Azure Stack Hub, antes de executar o script abaixo.
Muda todos os segredos ao mesmo tempo.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Muda a palavra-passe do utilizador de diagnóstico.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Muda a palavra-passe da conta local de administrador da VM.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Rodar o certificado SSL
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Rodar o certificado do Cofre da Chave
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
SecretRotationSQLProvider.ps1 parâmetros
| Parâmetro | Description | Comment |
|---|---|---|
| AzureEnvironment | O ambiente Azure da conta de administrador do serviço usado para implementar o Azure Stack Hub. É obrigatório apenas para implementações do Microsoft Entra. Os nomes de ambiente suportados são AzureCloud, AzureUSGovernment ou, se usar um ID Microsoft Entra da China, AzureChinaCloud. | Opcional |
| AzCredential | Credencial da conta de administrador do serviço Azure Stack Hub. O script falhará se a conta que usas com o AzCredential exigir autenticação multifator (MFA). | Mandatory |
| CloudAdminCredential | Credenciais da conta de domínio do administrador da nuvem do Azure Stack Hub. | Mandatory |
| Ponto final privilegiado | Endpoint Privilegiado para acesso ao Get-AzureStackStampInformation. | Mandatory |
| Palavra-passe do Usuário de Diagnóstico | Palavra-passe da conta de utilizador para diagnósticos. | Opcional |
| VMLocalCredential | Conta de administrador local na VM MySQLAdapter. | Opcional |
| DefaultSSLCertificatePassword | Password padrão do certificado SSL (*.pfx). | Opcional |
| DependencyFilesLocalPath | Caminho local dos ficheiros de dependência. | Opcional |
| KeyVaultPfxPassword | A palavra-passe usada para gerar o certificado Key Vault para adaptador de base de dados. | Opcional |
Estas instruções aplicam-se apenas ao SQL RP V2 a correr em Sistemas Integrados Azure Stack Hub.
Observação
A rotação secreta para fornecedores de recursos de valor acrescentado (RPs) é atualmente suportada apenas através do PowerShell.
Tal como a infraestrutura Azure Stack Hub, os fornecedores de recursos de valor acrescentado utilizam tanto segredos internos como externos. Como operador, é responsável por:
- Fornecimento de segredos externos atualizados, como um novo certificado TLS usado para proteger os endpoints dos fornecedores de recursos.
- Gerir regularmente a rotação secreta dos fornecedores de recursos.
Quando os segredos estão perto de expirar, os seguintes alertas são gerados no portal do administrador. Completar a rotação secreta resolverá estes alertas:
- Expiração do certificado interno pendente
- Expiração pendente do certificado externo
Pré-requisitos
Em preparação para o processo de rotação:
Se ainda não o fizeste, instala o módulo PowerShell Az para o Azure Stack Hub antes de continuar. A versão 2.0.2-preview ou posterior é necessária para a rotação de segredos do Azure Stack Hub. Para mais informações, consulte Migrar de AzureRM para Azure PowerShell Az no Azure Stack Hub.
Instalar módulos Azs.Deployment.Admin 1.0.0: PowerShell Gallery | Azs.Deployment.Admin 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Se o certificado externo estiver perto do prazo, consulte os requisitos do certificado de infraestrutura de chave pública (PKI) do Azure Stack Hub para informações pré-requisitos importantes antes de adquirir/renovar o seu certificado X509, incluindo detalhes sobre o formato PFX exigido. Consulte também os requisitos especificados na secção de Certificados PaaS Opcionais, para o seu fornecedor específico de recursos de valor acrescentado.
Preparar um novo certificado TLS para rotação de certificados externos
Observação
Se apenas o certificado interno estiver a expirar, pode saltar esta secção.
De seguida, crie ou renove o seu certificado TLS para garantir os endpoints do fornecedor de recursos de valor acrescentado:
Complete os passos em Gerar pedidos de assinatura de certificados (CSRs) para renovação de certificados para o seu fornecedor de recursos. Aqui usa a ferramenta Azure Stack Hub Readiness Checker para criar o CSR. Certifique-se de executar o cmdlet correto para o seu fornecedor de recursos, no passo "Gerar pedidos de certificado para outros serviços Azure Stack Hub". Por exemplo
New-AzsDbAdapterCertificateSigningRequest, é usado para RPs SQL e MySQL. Quando terminar, submeta o arquivo .REQ gerado à sua Autoridade Certificadora (CA) para obter o novo certificado.Depois de receber o seu ficheiro de certificado da CA, complete os passos em Preparar certificados para implantação ou rotação. Usa novamente a ferramenta Readiness Checker para processar o ficheiro devolvido pela CA.
Por fim, complete os passos em Validar os certificados PKI do Azure Stack Hub. Utiliza novamente a ferramenta Readiness Checker para realizar testes de validação no seu novo certificado.
Rodar o certificado interno
Abra uma consola PowerShell com privilégios elevados e complete os seguintes passos para atualizar os segredos externos do fornecedor de recursos:
Inicie sessão no seu ambiente Azure Stack Hub usando as credenciais do seu operador. Veja o Connect to Azure Stack Hub with PowerShell para o script de início de sessão no PowerShell. Certifique-se de usar os cmdlets PowerShell Az (em vez do AzureRM) e substituir todos os valores provisórios, como URLs de endpoint e nome do inquilino do diretório.
Determine o ID do produto do fornecedor do recurso. Execute o
Get-AzsProductDeploymentcmdlet para recuperar uma lista das implementações mais recentes dos fornecedores de recursos. A coleção devolvida"value"contém um elemento para cada fornecedor de recursos implementado. Encontre o fornecedor de recursos de interesse e anote os valores destas propriedades:-
"name"- contém o ID do produto do fornecedor de recursos no segundo segmento do valor.
Por exemplo, a implementação SQL RP pode ter um ID de produto de
"microsoft.sqlrp".-
Execute o
Invoke-AzsProductRotateSecretsActioncmdlet para rodar o certificado interno:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Rodar o certificado externo
Primeiro, é necessário anotar os valores dos seguintes parâmetros.
| Placeholder | Description | Valor de Exemplo |
|---|---|---|
<product-id> |
ID do produto da implementação mais recente do provedor de recursos. | microsoft.sqlrp |
<installed-version> |
A versão da implementação mais recente do fornecedor de recursos. | 2.0.0.2 |
<package-id> |
O ID do pacote é construído concatenando o id do produto e a versão instalada. | microsoft.sqlrp.2.0.0.2 |
<cert-secret-name> |
O nome sob o qual o segredo do certificado é armazenado. | SSLCert |
<cert-pfx-file-path> |
O caminho para o seu ficheiro de certificado PFX. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
A palavra-passe atribuída ao seu ficheiro .PFX de certificado. | strong@CertSecret6 |
Abra uma consola PowerShell elevada e complete os seguintes passos:
Inicie sessão no seu ambiente Azure Stack Hub usando as credenciais do seu operador. Veja Ligar ao Azure Stack Hub com PowerShell para aceder ao script de início de sessão do PowerShell. Certifique-se de usar os cmdlets PowerShell Az (em vez do AzureRM) e substituir todos os valores provisórios, como URLs de endpoint e nome do inquilino do diretório.
Obtenha o valor do parâmetro product-id. Execute o
Get-AzsProductDeploymentcmdlet para recuperar uma lista das implementações mais recentes dos fornecedores de recursos. A coleção devolvida"value"contém um elemento para cada fornecedor de recursos implementado. Encontre o fornecedor de recursos de interesse e anote os valores destas propriedades:-
"name"- contém o ID do produto do fornecedor de recursos no segundo segmento do valor. -
"properties"."deployment"."version"- contém o número de versão atualmente implementado.
-
Por exemplo, a implementação do SQL RP pode ter um ID de produto de "microsoft.sqlrp", e a versão "2.0.0.2".
Construa o ID do pacote do fornecedor de recursos, concatenando o ID e a versão do produto do fornecedor de recursos. Por exemplo, usando os valores derivados no passo anterior, o ID do pacote SQL RP é
microsoft.sqlrp.2.0.0.2.Usando o ID do pacote derivado no passo anterior, execute
Get-AzsProductSecret -PackageIdpara recuperar a lista de tipos de segredo usados pelo fornecedor de recursos. Na coleção devolvidavalue, encontre o elemento que contém um valor de"Certificate"para a"properties"."secretKind"propriedade. Este elemento contém propriedades para o segredo do certificado do RP. Anote o nome atribuído a este segredo de certificado, que é identificado pelo último segmento da propriedade"name", logo acima de"properties".
Por exemplo, a coleção de segredos devolvida para o SQL RP contém um "Certificate" segredo chamado SSLCert.
Use o
Set-AzsProductSecretcmdlet para importar o seu novo certificado para o Key Vault, que será usado no processo de rotação. Substitua os valores provisórios das variáveis em conformidade antes de executar o script.$productId = '<product-id>' $packageId = $productId + '.' + '<installed-version>' $certSecretName = '<cert-secret-name>' $pfxFilePath = '<cert-pfx-file-path>' $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -ForceFinalmente, use o
Invoke-AzsProductRotateSecretsActioncmdlet para revezar os segredos:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Monitorizar o progresso secreto da rotação
Pode monitorizar o progresso da rotação secreta tanto na consola PowerShell quer no portal do administrador, selecionando o fornecedor de recursos no serviço Marketplace:
Observação
O tempo secreto de rotação pode custar mais de 10 minutos. Quando concluído, o estado do fornecedor de recursos será alterado para "Instalado".
Recolha os registos de diagnósticos
O Azure Stack Hub tem várias formas de recolher, guardar e enviar registos de diagnóstico para o Suporte da Microsoft. A partir da versão 1.1.93, o SQL Resource Provider suporta a forma padrão de recolher logs do seu ambiente Azure Stack Hub. Para mais informações, consulte Coleção de registos de diagnóstico.
A partir da versão 1.1.93, o SQL Resource Provider suporta a forma padrão de recolher logs do seu ambiente Azure Stack Hub. Se estiver a usar uma versão mais antiga, recomenda-se atualizar o seu Provedor de Recursos SQL para a versão mais recente.
Para recolher registos da VM bloqueada, utilize o endpoint PowerShell Just Enough Administration (JEA) DBAdapterDiagnostics. Este endpoint fornece os seguintes comandos:
- Get-AzsDBAdapterLog. Este comando cria um pacote zip dos registos de diagnóstico do fornecedor de recursos e guarda o ficheiro na unidade de utilizador da sessão. Podes executar este comando sem quaisquer parâmetros e as últimas quatro horas de registos são recolhidas.
- Remove-AzsDBAdapterLog. Este comando remove pacotes de registo existentes na VM do fornecedor de recursos.
Requisitos e processo do ponto final
Quando um fornecedor de recursos é instalado ou atualizado, é criada a conta de utilizador dbadapterdiag . Vais usar esta conta para recolher registos de diagnóstico.
Observação
A palavra-passe da conta dbadapterdiag é a mesma que a palavra-passe usada pelo administrador local na VM criada durante uma implementação ou atualização do fornecedor.
Para usar os comandos DBAdapterDiagnostics , crie uma sessão remota PowerShell para a VM do fornecedor de recursos e execute o comando Get-AzsDBAdapterLog .
Define o intervalo de tempo para a recolha de registos usando os parâmetros FromDate e ToDate . Se não especificar um ou ambos estes parâmetros, são usados os seguintes predefinidos:
- O FromDate é quatro horas antes da hora atual.
- O ToDate é o tempo atual.
Exemplo de script PowerShell para recolha de registos
O script seguinte mostra como recolher registos de diagnóstico da VM fornecedora de recursos.
# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'
$diagCreds = New-Object System.Management.Automation.PSCredential `
($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
-ConfigurationName DBAdapterDiagnostics `
-SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow
# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage
# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession
Limitações conhecidas do fornecedor de recursos SQL Server Versão 1
Limitação:
Quando o script de implementação, atualização ou rotação secreta falhou, alguns registos não podem ser recolhidos pelo mecanismo padrão de recolha de registos.
Solução alternativa:
Além de usar o mecanismo padrão de recolha de logs, vai à pasta Logs na pasta extraída onde o script se localiza, para encontrares mais logs.