Operações de manutenção de fornecedores de recursos MySQL no Azure Stack HubMySQL resource provider maintenance operations in Azure Stack Hub

O fornecedor de recursos MySQL funciona numa máquina virtual bloqueada (VM).The MySQL resource provider runs on a locked down virtual machine (VM). Para ativar as operações de manutenção, é necessário atualizar a segurança do VM.To enable maintenance operations, you need to update the VM's security. Para isso utilizando o princípio do menor privilégio (POLP), pode utilizar a manutenção do ponto final DBAdapterM do PowerShell Just Enough Administration (JEA).To do this using the principle of least privilege (POLP), you can use PowerShell Just Enough Administration (JEA) endpoint DBAdapterMaintenance. O pacote de instalação do fornecedor de recursos inclui um script para esta operação.The resource provider installation package includes a script for this operation.

Atualizar o sistema operativo VMUpdate the VM operating system

Como o fornecedor de recursos funciona num VM do utilizador, é necessário aplicar os patches e atualizações necessários quando são lançados.Because the resource provider runs on a user VM, you need to apply the required patches and updates when they're released. Pode utilizar os pacotes de atualização do Windows fornecidos como parte do ciclo de patch e atualização para aplicar atualizações ao VM.You can use the Windows update packages that are provided as part of the patch-and-update cycle to apply updates to the VM.

Atualizar o fornecedor VM utilizando um dos seguintes métodos:Update the provider VM using one of the following methods:

  • Instale o mais recente pacote de fornecedor de recursos utilizando uma imagem VM atualmente corrigida.Install the latest resource provider package using a currently patched VM image.
  • Instale um pacote De Atualização do Windows durante a instalação ou atualização do fornecedor de recursos.Install a Windows Update package during the installation or update of the resource provider.

Atualizar as definições VM Windows DefenderUpdate the VM Windows Defender definitions

Para atualizar as definições do Defender, siga estes passos:To update the Defender definitions, follow these steps:

  1. Descarregue a atualização de definições do Windows Defender a partir da Definição do Defender do Windows.Download the Windows Defender definitions update from Windows Defender Definition.

    Na página de definições, desloque-se para "Descarregar manualmente e instalar as definições".On the definitions page, scroll down to "Manually download and install the definitions". Descarregue o ficheiro "Windows Defender Antivirus para Windows 10 e Windows 8.1" de 64 bits.Download the "Windows Defender Antivirus for Windows 10 and Windows 8.1" 64-bit file.

    Em alternativa, utilize este link direto para descarregar/executar o ficheiro fpam-fe.exe.Alternatively, use this direct link to download/run the fpam-fe.exe file.

  2. Abra uma sessão PowerShell ao ponto de manutenção do adaptador de recursos MySQL VM.Open a PowerShell session to the MySQL resource provider adapter VM's maintenance endpoint.

  3. Copie o ficheiro de atualização de definições para o adaptador de recursos VM utilizando a sessão de ponto final de manutenção.Copy the definitions update file to the resource provider adapter VM using the maintenance endpoint session.

  4. Na sessão powerShell de manutenção, executar o comando Update-DBAdapterWindowsDefenderDefinitions.On the maintenance PowerShell session, run the Update-DBAdapterWindowsDefenderDefinitions command.

  5. Depois de instalar as definições, recomendamos que elimine o ficheiro de atualização de definições utilizando o comando Remove-ItemOnUserDrive).After you install the definitions, we recommend that you delete the definitions update file by using the Remove-ItemOnUserDrive) command.

Exemplo de script PowerShell para atualizar definições.PowerShell script example for updating definitions.

Pode editar e executar o seguinte script para atualizar as definições do Defender.You can edit and run the following script to update the Defender definitions. Substitua os valores no script por valores do seu ambiente.Replace values in the script with values from your environment.

# Set credentials for the 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 Windows Defender update definitions file from https://www.microsoft.com/en-us/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

# 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

Rotação de segredosSecrets rotation

Estas instruções aplicam-se apenas aos Sistemas Integrados Azure Stack Hub.These instructions only apply to Azure Stack Hub Integrated Systems.

Ao utilizar os fornecedores de recursos SQL e MySQL com sistemas integrados Azure Stack Hub, o operador Azure Stack Hub é responsável por rodar os seguintes segredos de infraestrutura do fornecedor de recursos para garantir que não expiram:When using the SQL and MySQL resource providers with Azure Stack Hub integrated systems, the Azure Stack Hub operator is responsible for rotating the following resource provider infrastructure secrets to ensure that they don't expire:

  • Certificado SSL externo fornecido durante a implantação.External SSL Certificate provided during deployment.
  • A senha de conta de administrador local do fornecedor de recursos VM fornecida durante a implementação.The resource provider VM local administrator account password provided during deployment.
  • Senha de diagnóstico do fornecedor de recursos (dbadapterdiag).Resource provider diagnostic user (dbadapterdiag) password.
  • (versão >= 1.1.47.0) Certificado de cofre de chaves gerado durante a implantação.(version >= 1.1.47.0) Key Vault certificate generated during deployment.

Exemplos powerShell para segredos rotativosPowerShell examples for rotating secrets

Mude todos os segredos ao mesmo tempo:Change all the secrets at the same time:

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd `  
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Alterar a palavra-passe do utilizador de diagnóstico:Change the diagnostic user password:

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Alterar a senha de conta de administração local VM:Change the VM local admin account password:

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Alterar a senha do certificado SSL:Change the SSL certificate password:

.\SecretRotationMySQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Alterar a palavra-passe do certificado key Vault:Change the Key Vault certificate password:

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

SecretRotationMySQLProvider.ps1 parâmetrosSecretRotationMySQLProvider.ps1 parameters

ParâmetroParameter DescriçãoDescription ComentárioComment
AzureEnvironmentAzureEnvironment O ambiente Azure da conta de administração de serviço usada para a implantação do Azure Stack Hub.The Azure environment of the service admin account used for deploying Azure Stack Hub. Requerido apenas para implementações AZure AD.Required only for Azure AD deployments. Os nomes ambientais suportados são AzureCloud, AzureUSGovernment, ou se usando um Diretório Ativo China Azure, AzureChinaCloud.Supported environment names are AzureCloud, AzureUSGovernment, or if using a China Azure Active Directory, AzureChinaCloud. OpcionalOptional
AzCredentialAzCredential Credencial de conta de administração Azure Stack Hub.Azure Stack Hub service admin account credential. O script falhará se a conta que utilizar com a AzCredential necessitar de autenticação multi-factor (MFA).The script will fail if the account you use with AzCredential requires multi-factor authentication (MFA). ObrigatórioMandatory
CloudAdminCredentialCloudAdminCredential Credencial de conta de domínio de azure Stack Hub.Azure Stack Hub cloud admin domain account credential. ObrigatórioMandatory
Ponto privilegiadoPrivilegedEndpoint Endpoint privilegiado para aceder a Informação Get-AzureStackStamp.Privileged Endpoint to access Get-AzureStackStampInformation. ObrigatórioMandatory OpcionalOptional
DiagnósticoSUserPasswordDiagnosticsUserPassword Palavra-passe da conta do utilizador de diagnóstico.Diagnostics user account password. OpcionalOptional
VMLocalCredentialVMLocalCredential A conta de administração local no MySQLAdapter VM.The local admin account on the MySQLAdapter VM. OpcionalOptional
Palavra-passe defaultsslcertateDefaultSSLCertificatePassword Senha de certificado SSL predefinido (*.pfx).Default SSL Certificate (*.pfx) password. OpcionalOptional
DependênciaFilesLocalPathDependencyFilesLocalPath A dependência arquiva o caminho local.Dependency files local path. OpcionalOptional
Palavra-chaveVaultPfxPasswordKeyVaultPfxPassword A palavra-passe utilizada para gerar o certificado Key Vault para adaptador de base de dados.The password used for generating the Key Vault certificate for database adapter. OpcionalOptional

Problemas conhecidosKnown issues

Emissão:Issue:
Os registos de rotação de segredos não são recolhidos automaticamente se o script de rotação secreta falhar quando é executado.The logs for secrets rotation aren't automatically collected if the secret rotation script fails when it's run.

Solução alternativa:Workaround:
Utilize o cmdlet Get-AzsDBAdapterLogs para recolher todos os registos do fornecedor de recursos, incluindo AzureStack.DatabaseAdapter.SecretRotation.ps1_*.log, guardados em C:\Logs.Use the Get-AzsDBAdapterLogs cmdlet to collect all the resource provider logs, including AzureStack.DatabaseAdapter.SecretRotation.ps1_*.log, saved in C:\Logs.

Recolha os registos de diagnósticosCollect diagnostic logs

O Azure Stack Hub tem várias formas de recolher, guardar e enviar registos de diagnóstico para o Microsoft Support.Azure Stack Hub has multiple ways to collect, save, and send diagnostic logs to Microsoft Support. A partir da versão 1.1.93, o MySQL Resource Provider suporta a forma padrão de recolher registos do seu ambiente Azure Stack Hub.Starting from version 1.1.93, MySQL Resource Provider supports the standard way of collecting logs from you Azure Stack Hub environment. Para obter mais informações, consulte a recolha de registos de diagnóstico.For more information, see Diagnostic log collection.

A partir da versão 1.1.93, o MySQL Resource Provider suporta a forma padrão de recolher registos do seu ambiente Azure Stack Hub.Starting from version 1.1.93, MySQL Resource Provider supports the standard way of collecting logs from you Azure Stack Hub environment. Se estiver a utilizar uma versão mais antiga, é aconselhável atualizar o seu Fornecedor de Recursos MySQL para a versão mais recente.If you are using an older version, it is recommended to update your MySQL Resource Provider to the latest version.

Para recolher registos do VM bloqueado, utilize o ponto final DBAdapterDiagnostics DBAdapterDiagnostics powerShell Just Enough Administration (JEA).To collect logs from the locked down VM, use the PowerShell Just Enough Administration (JEA) endpoint DBAdapterDiagnostics. Este ponto final fornece os seguintes comandos:This endpoint provides the following commands:

  • Get-AzsDBAdapterLog.Get-AzsDBAdapterLog. Este comando cria um pacote zip dos registos de diagnóstico do fornecedor de recursos e guarda o ficheiro na unidade do utilizador da sessão.This command creates a zip package of the resource provider diagnostics logs and saves the file on the session's user drive. Pode executar este comando sem parâmetros e as últimas quatro horas de registos são recolhidas.You can run this command without any parameters and the last four hours of logs are collected.

  • Remove-AzsDBAdapterLog.Remove-AzsDBAdapterLog. Este comando remove os pacotes de registo existentes no VM do fornecedor de recursos.This command removes existing log packages on the resource provider VM.

Requisitos e processos de ponto finalEndpoint requirements and process

Quando um fornecedor de recursos é instalado ou atualizado, a conta de utilizador dbadapterdiag é criada.When a resource provider is installed or updated, the dbadapterdiag user account is created. Usará esta conta para recolher registos de diagnóstico.You'll use this account to collect diagnostic logs.

Nota

A palavra-passe da conta dbadapterdiag é a mesma que a palavra-passe utilizada para o administrador local no VM que é criada durante uma implementação ou atualização do fornecedor.The dbadapterdiag account password is the same as the password used for the local admin on the VM that's created during a provider deployment or update.

Para utilizar os comandos DBAdapterDiagnostics, crie uma sessão remota de PowerShell para o fornecedor de recursos VM e execute o comando Get-AzsDBAdapterLog.To use the DBAdapterDiagnostics commands, create a remote PowerShell session to the resource provider VM and run the Get-AzsDBAdapterLog command.

Define o tempo para a recolha de registos utilizando os parâmetros FromDate e ToDate.You set the time span for log collection by using the FromDate and ToDate parameters. Se não especificar um ou ambos os parâmetros, são utilizados os seguintes padrão:If you don't specify one or both of these parameters, the following defaults are used:

  • FromDate é quatro horas antes da hora atual.FromDate is four hours before the current time.
  • ToDate é a hora atual.ToDate is the current time.

Exemplo de script PowerShell para a recolha de registos:PowerShell script example for collecting logs:

O seguinte script mostra como recolher registos de diagnóstico do fornecedor de recursos VM.The following script shows how to collect diagnostic logs from the resource provider VM.

# 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

# 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

# Cleanup the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Configurar extensão de diagnóstico Azure para fornecedor de recursos MySQLConfigure Azure Diagnostics extension for MySQL resource provider

A extensão Azure Diagnostics é instalada no adaptador de recursos MySQL VM por padrão.The Azure Diagnostics extension is installed on the MySQL resource provider adapter VM by default. Os passos seguintes mostram como personalizar a extensão para a recolha dos registos de eventos operacionais do fornecedor de recursos MySQL e registos IIS para efeitos de resolução de problemas e auditoria.The following steps show how to customize the extension for gathering the MySQL resource provider operational event logs and IIS logs for troubleshooting and auditing purposes.

  1. Inicie sessão no portal de administrador do Azure Stack Hub.Sign in to the Azure Stack Hub administrator portal.

  2. Selecione máquinas Virtuais a partir do painel à esquerda, procure o adaptador de recursos MySQL VM e selecione o VM.Select Virtual machines from the pane on the left, search for the MySQL resource provider adapter VM and select the VM.

  3. Nas definições de Diagnóstico do VM, vá ao separador 'Logs' e escolha o Personalizar os registos de eventos que estão a ser recolhidos.In the Diagnostics settings of the VM, go to the Logs tab and choose Custom to customize event logs being collected.

    Ir para as definições de diagnóstico

  4. Adicionar *Microsoft-AzureStack-DatabaseAdapter/Operacional! * _ recolher registos de eventos operacionais do fornecedor de recursos MySQL.Add *Microsoft-AzureStack-DatabaseAdapter/Operational!* _ to collect MySQL resource provider operational event logs.

    Adicionar registos de eventos

  5. Para ativar a recolha de registos IIS, verifique _ registos do IIS* e registos de pedidos falhados.To enable the collection of IIS logs, check _ IIS logs* and Failed request logs.

    Adicionar registos IIS

  6. Por fim, selecione Guardar para guardar todas as definições de diagnóstico.Finally, select Save to save all the diagnostics settings.

Uma vez configurados os registos de eventos e a recolha de registos IIS para o fornecedor de recursos MySQL, os registos podem ser encontrados numa conta de armazenamento do sistema denominada mysqladapterdiagaccount.Once the event logs and IIS logs collection are configured for MySQL resource provider, the logs can be found in a system storage account named mysqladapterdiagaccount.

Para saber mais sobre a extensão Azure Diagnostics, consulte o que é a extensão Azure Diagnostics.To learn more about the Azure Diagnostics extension, see What is Azure Diagnostics extension.

Passos seguintesNext steps

Remover o fornecedor de recursos MySQLRemove the MySQL resource provider