Onderhoudsbewerkingen voor MySQL-resourceprovider in Azure Stack Hub
Belangrijk
Vanaf Azure Stack Hub build 2108 worden de SQL- en MySQL-resourceproviders aangeboden aan abonnementen die toegang hebben gekregen. Als u deze functie wilt gaan gebruiken of als u een upgrade wilt uitvoeren van een eerdere versie, opent u een ondersteuningsaanvraag . Onze ondersteuningstechnici begeleiden u door het implementatie- of upgradeproces.
De MySQL-resourceprovider wordt uitgevoerd op een vergrendelde virtuele machine (VM). Als u onderhoudsbewerkingen wilt inschakelen, moet u de beveiliging van de VM bijwerken. Als u dit wilt doen met behulp van het principe van minimale bevoegdheden (POLP), kunt u Het JEA-eindpunt DBAdapterMaintenance (Just Enough Administration) van PowerShell gebruiken. Het installatiepakket van de resourceprovider bevat een script voor deze bewerking.
Patchen en bijwerken
De MySQL-resourceprovider wordt niet onderhouden als onderdeel van Azure Stack Hub omdat het een invoegtoepassingsonderdeel is. Microsoft biedt zo nodig updates voor de MySQL-resourceprovider.
Voor MySQL RP V1: Wanneer een bijgewerkte MySQL Server-resourceprovider wordt vrijgegeven, wordt er een script verstrekt om de update toe te passen. Met dit script maakt u een nieuwe resourceprovider-VM, waarbij de status van de oude vm van de provider wordt gemigreerd naar de nieuwe VM.
Voor MySQL RP V2 worden resourceproviders bijgewerkt met behulp van dezelfde updatefunctie die wordt gebruikt voor het toepassen van Azure Stack Hub-updates.
Zie De MySQL-resourceprovider bijwerken voor meer informatie.
De provider-VM bijwerken
MySQL RP V1 wordt uitgevoerd op een gebruikers-VM . U moet de vereiste patches en updates toepassen wanneer deze worden uitgebracht. U kunt een Windows Update-pakket installeren tijdens de installatie van of bijwerken naar de resourceprovider.
MySQL RP V2 wordt uitgevoerd op een beheerde Windows Server die verborgen is. U hoeft de VM van de resourceprovider niet te patchen of bij te werken. Deze wordt automatisch bijgewerkt wanneer u de RP bijwerkt.
De vm-Windows Defender definities bijwerken
Deze instructies zijn alleen van toepassing op SQL RP V1 die wordt uitgevoerd op geïntegreerde Azure Stack Hub-systemen.
Voer de volgende stappen uit om de Defender-definities bij te werken:
Download de update van Windows Defender definities van Windows Defender Definitie.
Schuif op de pagina definities omlaag naar 'De definities handmatig downloaden en installeren'. Download het 64-bits bestand 'Windows Defender Antivirus for Windows 10 and Windows 8.1'.
U kunt ook deze directe koppeling gebruiken om het fpam-fe.exe-bestand te downloaden/uit te voeren.
Open een PowerShell-sessie naar het onderhoudseindpunt van de VM van de MySQL-resourceprovideradapter.
Kopieer het updatebestand van de definities naar de resourceprovideradapter-VM met behulp van de onderhoudseindpuntsessie.
Voer in de PowerShell-onderhoudssessie de opdracht Update-DBAdapterWindowsDefenderDefinitions uit .
Nadat u de definities hebt geïnstalleerd, raden we u aan het updatebestand voor definities te verwijderen met behulp van de opdracht Remove-ItemOnUserDrive).
PowerShell-voorbeeldscript voor het bijwerken van definities.
U kunt het volgende script bewerken en uitvoeren om de Defender-definities bij te werken. Vervang waarden in het script door waarden uit uw omgeving.
# 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 `
-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
Azure Diagnostics-extensie configureren voor MySQL-resourceprovider
Deze instructies zijn alleen van toepassing op SQL RP V1 die wordt uitgevoerd op geïntegreerde Azure Stack Hub-systemen.
De Azure Diagnostics-extensie wordt standaard geïnstalleerd op de adapter-VM van de MySQL-resourceprovider. In de volgende stappen ziet u hoe u de extensie kunt aanpassen voor het verzamelen van de operationele gebeurtenislogboeken van de MySQL-resourceprovider en IIS-logboeken voor probleemoplossing en controledoeleinden.
Meld u aan bij de Azure Stack Hub-beheerdersportal.
Selecteer Virtuele machines in het deelvenster aan de linkerkant, zoek naar de adapter-VM van de MySQL-resourceprovider en selecteer de VM.
Ga in de diagnostische instellingen van de VM naar het tabblad Logboeken en kies Aangepast om de verzamelde gebeurtenislogboeken aan te passen.
Voeg Microsoft-AzureStack-DatabaseAdapter/Operational!* toe om operationele gebeurtenislogboeken van de MySQL-resourceprovider te verzamelen.
Als u het verzamelen van IIS-logboeken wilt inschakelen, raadpleegt u IIS-logboeken en Mislukte aanvraaglogboeken.
Selecteer ten slotte Opslaan om alle diagnostische instellingen op te slaan.
Zodra de gebeurtenislogboeken en iis-logboekenverzameling zijn geconfigureerd voor de MySQL-resourceprovider, kunt u de logboeken vinden in een systeemopslagaccount met de naam mysqladapterdiagaccount.
Zie Wat is Azure Diagnostics extensie voor meer informatie over de extensie Azure Diagnostics.
Geheimen rouleren
Deze instructies zijn alleen van toepassing op geïntegreerde Azure Stack Hub-systemen.
Wanneer u de SQL- en MySQL-resourceproviders gebruikt met geïntegreerde Azure Stack Hub-systemen, is de Azure Stack Hub-operator verantwoordelijk voor het roteren van de volgende infrastructuurgeheimen van de resourceprovider om ervoor te zorgen dat deze niet verlopen:
- Extern SSL-certificaat dat is opgegeven tijdens de implementatie.
- Het wachtwoord voor het lokale beheerdersaccount van de resourceprovider-VM dat is opgegeven tijdens de implementatie.
- Wachtwoord voor diagnostische gebruiker van resourceprovider (dbadapterdiag).
- (versie >= 1.1.47.0) Key Vault certificaat gegenereerd tijdens de implementatie.
PowerShell-voorbeelden voor het roteren van geheimen
Wijzig alle geheimen tegelijk:
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Wijzig het wachtwoord van de diagnostische gebruiker:
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Wijzig het wachtwoord voor het lokale beheerdersaccount van de VM:
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Het SSL-certificaat roteren
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Het Key Vault-certificaat draaien
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
SecretRotationMySQLProvider.ps1 parameters
Parameter | Beschrijving | Opmerking |
---|---|---|
AzureEnvironment | De Azure-omgeving van het servicebeheerdersaccount dat wordt gebruikt voor het implementeren van Azure Stack Hub. Alleen vereist voor Microsoft Entra implementaties. Ondersteunde omgevingsnamen zijn AzureCloud, AzureUSGovernment of, als u een China Microsoft Entra-id gebruikt, AzureChinaCloud. | Optioneel |
AzCredential | Referenties voor azure Stack Hub-servicebeheerdersaccount. Het script mislukt als het account dat u gebruikt met AzCredential meervoudige verificatie (MFA) vereist. | Verplicht |
CloudAdminCredential | Azure Stack Hub-cloudbeheerdersaccountreferenties voor het domein. | Verplicht |
PrivilegedEndpoint | Bevoegd eindpunt voor toegang tot Get-AzureStackStampInformation. | Verplicht |
DiagnosticsUserPassword | Diagnostisch gebruikersaccountwachtwoord. | Optioneel |
VMLocalCredential | Het lokale beheerdersaccount op de VM MySQLAdapter. | Optioneel |
DefaultSSLCertificatePassword | Standaardwachtwoord voor SSL-certificaat (*.pfx). | Optioneel |
DependencyFilesLocalPath | Lokaal pad van afhankelijkheidsbestanden. | Optioneel |
KeyVaultPfxPassword | Het wachtwoord dat wordt gebruikt voor het genereren van het Key Vault-certificaat voor de databaseadapter. | Optioneel |
Deze instructies zijn alleen van toepassing op MySQL RP V2 die wordt uitgevoerd op geïntegreerde Azure Stack Hub-systemen.
Notitie
Geheimrotatie voor resourceproviders (RPs) wordt momenteel alleen ondersteund via PowerShell.
Net als de Azure Stack Hub-infrastructuur gebruiken resourceproviders met toegevoegde waarde zowel interne als externe geheimen. Als operator bent u verantwoordelijk voor:
Het verstrekken van bijgewerkte externe geheimen, zoals een nieuw TLS-certificaat dat wordt gebruikt om eindpunten van de resourceprovider te beveiligen.
Regelmatig roulatie van geheimen van resourceproviders beheren.
Wanneer geheimen bijna verlopen, worden de volgende waarschuwingen gegenereerd in de beheerdersportal. Als u het rouleren van geheimen voltooit, worden deze waarschuwingen opgelost:
Verlopen van intern certificaat in behandeling
Verlopen van extern certificaat in behandeling
Vereisten
Ter voorbereiding op het rotatieproces:
Als u dat nog niet hebt gedaan, installeert u de PowerShell Az-module voor Azure Stack Hub voordat u verdergaat. Versie 2.0.2-preview of hoger is vereist voor het rouleren van geheimen in Azure Stack Hub. Zie Migreren van AzureRM naar Azure PowerShell Az in Azure Stack Hub voor meer informatie.
Installeer Azs.Deployment. Beheer 1.0.0 modules: PowerShell Gallery | Azs.Deployment. Beheer 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Als het externe certificaat bijna verloopt, raadpleegt u de certificaatvereisten voor openbare sleutelinfrastructuur (PKI) van Azure Stack Hub voor belangrijke vereiste informatie voordat u uw X509-certificaat verkrijgt/vernieuwt, inclusief details over de vereiste PFX-indeling. Bekijk ook de vereisten die zijn opgegeven in de sectie Optionele PaaS-certificaten voor uw specifieke resourceprovider voor het toevoegen van waarde.
Een nieuw TLS-certificaat voorbereiden voor rotatie van externe certificaten
Notitie
Als alleen het interne certificaat bijna is verlopen, kunt u deze sectie overslaan.
Maak of vernieuw vervolgens uw TLS-certificaat voor het beveiligen van de eindpunten van de resourceprovider met waardetoevoeging:
Voer de stappen uit in Certificaatondertekeningsaanvragen (CDR's) genereren voor certificaatvernieuwing voor uw resourceprovider. Hier gebruikt u het hulpprogramma Gereedheidscontrole van Azure Stack Hub om de CSR te maken. Zorg ervoor dat u de juiste cmdlet voor uw resourceprovider uitvoert in de stap Certificaataanvragen genereren voor andere Azure Stack Hub-services. Wordt bijvoorbeeld
New-AzsDbAdapterCertificateSigningRequest
gebruikt voor SQL- en MySQL-RPs. Wanneer u klaar bent, verzendt u de gegenereerde . REQ-bestand naar uw certificeringsinstantie (CA) voor het nieuwe certificaat.Zodra u het certificaatbestand van de CA hebt ontvangen, voert u de stappen in Certificaten voorbereiden voor implementatie of rotatie uit. U gebruikt het hulpprogramma Gereedheidscontrole opnieuw om het bestand te verwerken dat is geretourneerd door de CA.
Voltooi ten slotte de stappen in PKI-certificaten van Azure Stack Hub valideren. U gebruikt het hulpprogramma Gereedheidscontrole nogmaals om validatietests uit te voeren op uw nieuwe certificaat.
Het interne certificaat roteren
Open een PowerShell-console met verhoogde bevoegdheid en voer de volgende stappen uit om de externe geheimen van de resourceprovider te roteren:
Meld u aan bij uw Azure Stack Hub-omgeving met uw operatorreferenties. Zie Verbinding maken met Azure Stack Hub met PowerShell voor PowerShell-aanmeldingsscript. Zorg ervoor dat u de PowerShell Az-cmdlets gebruikt (in plaats van AzureRM) en alle tijdelijke aanduidingen vervangt, zoals eindpunt-URL's en de naam van de maptenant.
Bepaal de product-id van de resourceprovider. Voer de
Get-AzsProductDeployment
cmdlet uit om een lijst met de meest recente implementaties van de resourceprovider op te halen. De geretourneerde verzameling bevat een -element voor elke geïmplementeerde"value"
resourceprovider. Zoek de resourceprovider van belang en noteer de waarden voor deze eigenschappen:-
"name"
- bevat de product-id van de resourceprovider in het tweede segment van de waarde.
De MySQL RP-implementatie kan bijvoorbeeld een product-id van
"microsoft.mysqlrp"
hebben.-
Voer de
Invoke-AzsProductRotateSecretsAction
cmdlet uit om het interne certificaat te roteren:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Het externe certificaat roteren
U moet eerst de waarden voor de volgende parameters noteren.
Tijdelijke aanduiding | Description | Voorbeeldwaarde |
---|---|---|
<product-id> |
De product-id van de meest recente implementatie van de resourceprovider. | microsoft.mysqlrp |
<installed-version> |
De versie van de meest recente implementatie van de resourceprovider. | 2.0.0.2 |
<package-id> |
De pakket-id wordt samengesteld door de product-id en de geïnstalleerde versie samen te voegen. | microsoft.mysqlrp.2.0.0.2 |
<cert-secret-name> |
De naam waaronder het certificaatgeheim wordt opgeslagen. | SSLCert |
<cert-pfx-file-path> |
Het pad naar het PFX-bestand van uw certificaat. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
Het wachtwoord dat is toegewezen aan uw certificaat . PFX-bestand. | strong@CertSecret6 |
Open een PowerShell-console met verhoogde bevoegdheid en voer de volgende stappen uit:
Meld u aan bij uw Azure Stack Hub-omgeving met uw operatorreferenties. Zie Verbinding maken met Azure Stack Hub met PowerShell voor PowerShell-aanmeldingsscript. Zorg ervoor dat u de PowerShell Az-cmdlets gebruikt (in plaats van AzureRM) en alle tijdelijke aanduidingen vervangt, zoals eindpunt-URL's en de naam van de maptenant.
Haal de parameterwaarde voor de product-id op. Voer de
Get-AzsProductDeployment
cmdlet uit om een lijst met de meest recente implementaties van de resourceprovider op te halen. De geretourneerde verzameling bevat een -element voor elke geïmplementeerde"value"
resourceprovider. Zoek de resourceprovider van belang en noteer de waarden voor deze eigenschappen:-
"name"
- bevat de product-id van de resourceprovider in het tweede segment van de waarde. -
"properties"."deployment"."version"
- bevat het momenteel geïmplementeerde versienummer.
De MySQL RP-implementatie kan bijvoorbeeld een product-id van
"microsoft.mysqlrp"
, en versie"2.0.0.2"
hebben.-
Bouw de pakket-id van de resourceprovider door de product-id en versie van de resourceprovider samen te stellen. Als u bijvoorbeeld de waarden gebruikt die in de vorige stap zijn afgeleid, is
microsoft.mysqlrp.2.0.0.2
de SQL RP-pakket-id .Voer uit met behulp van de pakket-id die in de vorige stap is afgeleid om
Get-AzsProductSecret -PackageId
de lijst met geheime typen op te halen die door de resourceprovider worden gebruikt. Zoek in de geretourneerdevalue
verzameling het element met een waarde van"Certificate"
voor de"properties"."secretKind"
eigenschap. Dit element bevat eigenschappen voor het certificaatgeheim van de RP. Noteer de naam die is toegewezen aan dit certificaatgeheim, die wordt geïdentificeerd door het laatste segment van de"name"
eigenschap, net boven"properties"
.De geheimenverzameling die wordt geretourneerd voor de SQL RP bevat bijvoorbeeld een
"Certificate"
geheim met de naamSSLCert
.Gebruik de
Set-AzsProductSecret
cmdlet om uw nieuwe certificaat te importeren in Key Vault, die wordt gebruikt door het rotatieproces. Vervang de waarden van de tijdelijke aanduidingen voor variabelen dienovereenkomstig voordat u het script uitvoert.$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 -Force
Gebruik ten slotte de
Invoke-AzsProductRotateSecretsAction
cmdlet om de geheimen te roteren:Invoke-AzsProductRotateSecretsAction -ProductId $productId
De voortgang van de rotatie van het geheim bewaken
U kunt de voortgang van het rouleren van geheimen in de PowerShell-console of in de beheerportal bewaken door de resourceprovider te selecteren in de Marketplace-service:
Notitie
De rotatietijd van het geheim kan meer dan 10 minuten duren. Nadat dit is gebeurd, wordt de status van de resourceprovider gewijzigd in 'Geïnstalleerd'.
Diagnostische logboeken verzamelen
Azure Stack Hub biedt meerdere manieren om diagnostische logboeken te verzamelen, op te slaan en te verzenden naar Microsoft Ondersteuning. Vanaf versie 1.1.93 ondersteunt de MySQL-resourceprovider de standaardmethode voor het verzamelen van logboeken uit uw Azure Stack Hub-omgeving. Zie Diagnostische logboekverzameling voor meer informatie.
Vanaf versie 1.1.93 ondersteunt de MySQL-resourceprovider de standaardmethode voor het verzamelen van logboeken uit uw Azure Stack Hub-omgeving. Als u een oudere versie gebruikt, is het raadzaam om uw MySQL-resourceprovider bij te werken naar de nieuwste versie.
Als u logboeken van de vergrendelde VM wilt verzamelen, gebruikt u het JEA-eindpunt (Just Enough Administration) van PowerShell DBAdapterDiagnostics. Dit eindpunt biedt de volgende opdrachten:
Get-AzsDBAdapterLog. Met deze opdracht maakt u een zip-pakket van de diagnostische logboeken van de resourceprovider en slaat u het bestand op het gebruikersstation van de sessie op. U kunt deze opdracht uitvoeren zonder parameters en de laatste vier uur aan logboeken worden verzameld.
Remove-AzsDBAdapterLog. Met deze opdracht verwijdert u bestaande logboekpakketten op de VM van de resourceprovider.
Eindpuntvereisten en -proces
Wanneer een resourceprovider wordt geïnstalleerd of bijgewerkt, wordt het dbadapterdiag-gebruikersaccount gemaakt. U gebruikt dit account om diagnostische logboeken te verzamelen.
Notitie
Het accountwachtwoord dbadapterdiag is hetzelfde als het wachtwoord dat wordt gebruikt voor de lokale beheerder op de VM die is gemaakt tijdens de implementatie of update van een provider.
Als u de DBAdapterDiagnostics-opdrachten wilt gebruiken, maakt u een externe PowerShell-sessie met de resourceprovider-VM en voert u de opdracht Get-AzsDBAdapterLog uit .
U stelt de tijdsduur voor het verzamelen van logboeken in met behulp van de parameters FromDate en ToDate . Als u niet een of beide van deze parameters opgeeft, worden de volgende standaardwaarden gebruikt:
- FromDate is vier uur vóór de huidige tijd.
- ToDate is de huidige tijd.
PowerShell-voorbeeldscript voor het verzamelen van logboeken:
Het volgende script laat zien hoe u diagnostische logboeken van de resourceprovider-VM verzamelt.
# 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
# Cleanup the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession
Bekende beperkingen van mySQL Server-resourceprovider versie 1
Beperking:
Wanneer het implementatie-, upgrade- of geheimrotatiescript is mislukt, kunnen sommige logboeken niet worden verzameld door het standaardmechanisme voor logboekverzameling.
Tijdelijke oplossing:
Naast het gebruik van het standaardmechanisme voor het verzamelen van logboeken, gaat u naar de map Logboeken in de uitgepakte map waar het script naar zoekt, om meer logboeken te vinden.