Underhållsåtgärder för SQL-resursprovider
Viktig
Från och med Azure Stack Hub build 2108 erbjuds SQL- och MySQL-resursprovidrar till prenumerationer som har beviljats åtkomst. Om du vill börja använda den här funktionen, eller om du behöver uppgradera från en tidigare version, öppna ett supportärende så vägleder våra supporttekniker dig genom distributions- eller uppgraderingsprocessen.
SQL-resursprovidern körs på en låst virtuell dator (VM). Om du vill aktivera underhållsåtgärder måste du uppdatera den virtuella datorns säkerhet. Använd principen "minsta behörighet" genom att använda PowerShell Just Enough Administration (JEA) slutpunkt DBAdapterMaintenance. Installationspaketet för resursprovidern innehåller ett skript för den här åtgärden.
Korrigering och uppdatering
SQL-resursprovidern betjänas inte som en del av Azure Stack Hub eftersom det är en tilläggskomponent. Microsoft tillhandahåller uppdateringar till SQL-resursprovidern efter behov.
När en uppdaterad SQL Server-resursprovider släpps för SQL RP V1 tillhandahålls ett skript för att tillämpa uppdateringen. Det här skriptet skapar en ny virtuell resursprovider och migrerar tillståndet för den gamla virtuella providerdatorn till den nya virtuella datorn.
För SQL RP V2 uppdateras resursprovidrar med samma uppdateringsfunktion som används för att tillämpa Azure Stack Hub-uppdateringar.
Mer information finns i Uppdatera SQL-resursprovidern.
Uppdatera den virtuella providerdatorn
SQL RP V1 körs på en användares virtuella dator, och du måste tillämpa nödvändiga korrigeringar och uppdateringar när de släpps. Du kan installera ett Windows Update-paket under installationen av eller uppdatera till resursprovidern.
SQL RP V2 körs på en hanterad Windows Server som är dold. Du behöver inte korrigera eller uppdatera resursproviderns virtuella dator. Den uppdateras automatiskt när du uppdaterar RP:en.
Uppdatera Windows Defender-definitionerna för den virtuella datorn
Dessa instruktioner gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.
Så här uppdaterar du Windows Defender-definitionerna:
Ladda ned uppdateringen av Windows Defender-definitioner från Säkerhetsintelligensuppdateringar för Windows Defender.
På sidan för definitionsuppdatering rullar du ned till "Ladda ned uppdateringen manuellt". Ladda ned 64-bitarsfilen "Windows Defender Antivirus för Windows 10 och Windows 8.1".
Du kan också använda den här direktlänken för att ladda ned/köra fpam-fe.exe-filen.
Skapa en PowerShell-session till den virtuella SQL-resursproviderns underhållsendpunkt.
Kopiera definitionsuppdateringsfilen till den virtuella datorn med hjälp av underhållsslutpunktssessionen.
Kör kommandot Update-DBAdapterWindowsDefenderDefinitions i PowerShell-underhållssessionen.
När du har installerat definitionerna rekommenderar vi att du tar bort uppdateringsfilen för definitioner med hjälp av kommandot Remove-ItemOnUserDrive.
PowerShell-skriptexempel för uppdatering av definitioner
Du kan redigera och köra följande skript för att uppdatera Defender-definitionerna. Ersätt värden i skriptet med värden från din miljö.
# 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
Konfigurera Azure Diagnostics-tillägget för SQL-resursprovidern
Dessa instruktioner gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.
Azure Diagnostics-tillägget installeras som standard på sql-resursproviderns virtuella dator. Följande steg visar hur du anpassar tillägget för insamling av sql-resursproviderns operativa händelseloggar och IIS-loggar för felsökning och granskning.
Logga in på Azure Stack Hub-administratörsportalen.
Välj Virtuella maskiner från panelen till vänster, sök efter SQL-resursprovideradapterns virtuella maskin och välj den virtuella maskinen.
I Diagnostikinställningar för den virtuella datorn går du till fliken Loggar och väljer Anpassad för att anpassa händelseloggar som samlas in.
Lägg till Microsoft-AzureStack-DatabaseAdapter/Operational!* för att samla in händelseloggar för SQL-resursprovidern.
Om du vill aktivera samlingen av IIS-loggar kontrollerar du IIS-loggar och Misslyckade begärandeloggar.
Välj slutligen Spara för att spara alla diagnostikinställningar.
När händelseloggarna och IIS-loggarna har konfigurerats för SQL-resursprovidern finns loggarna i ett systemlagringskonto med namnet sqladapterdiagaccount.
Mer information om Azure Diagnostics-tillägget finns i Vad är Azure Diagnostics-tillägget.
Uppdatera SQL-autentiseringsuppgifter
Du ansvarar för att skapa och underhålla sysadmin-konton på dina SQL-servrar. Resursprovidern behöver ett konto med dessa behörigheter för att hantera databaser för användare, men den behöver inte åtkomst till användarnas data. Om du behöver uppdatera sysadmin-lösenorden på dina SQL-servrar kan du använda resursproviderns administratörsgränssnitt för att ändra ett lagrat lösenord. Dessa lösenord lagras i ett Key Vault på din Azure Stack Hub-instans.
Om du vill ändra inställningarna, välj Bläddra>ADMINISTRATIVA RESURSER>SQL-värdservrar>SQL-inloggningar och välj sedan ett användarnamn. Ändringen måste göras på SQL-instansen först (och eventuella repliker om det behövs.) Under Inställningarväljer du Lösenord.
Rotering av hemligheter
Dessa instruktioner gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.
När du använder SQL- och MySQL-resursprovidrar med integrerade Azure Stack Hub-system ansvarar Azure Stack Hub-operatören för att rotera följande infrastrukturhemligheter för resursprovidern för att säkerställa att de inte upphör att gälla:
- Externa SSL-certifikat som tillhandahålls under distributionen.
- Lösenordet för det lokala administratörskontot för den virtuella resursprovidern som angavs under distributionen.
- Lösenord för diagnostikanvändare för resursprovider (dbadapterdiag).
- (version >= 1.1.47.0) Key Vault-certifikat som genererades under distributionen.
PowerShell-exempel för att rotera hemligheter
Viktig
Lyckad hemlig rotation kräver borttagning av befintliga versioner av Azure Stack Hub PowerShell-modulerna, innan skriptet körs nedan.
Ändra alla hemligheter samtidigt.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Ändra lösenordet för diagnostikanvändaren.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Ändra lösenordet för det lokala administratörskontot för den virtuella datorn.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Rotera SSL-certifikatet
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Rotera Key Vault-certifikatet
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
SecretRotationSQLProvider.ps1 parametrar
Parameter | Beskrivning | Kommentar |
---|---|---|
AzureEnvironment | Azure-miljön för tjänstadministratörskontot som används för att distribuera Azure Stack Hub. Krävs endast för Microsoft Entra-distributioner. Miljönamn som stöds är AzureCloud, AzureUSGovernmenteller om du använder ett Microsoft Entra-ID för Kina AzureChinaCloud-. | Valfri |
AzCredential | Autentiseringsuppgifter för Azure Stack Hub-tjänstadministratörskonto. Skriptet misslyckas om det konto som du använder med AzCredential kräver multifaktorautentisering (MFA). | Obligatorisk |
CloudAdminCredential | Autentiseringsuppgifter för molnadministratörsdomänen i Azure Stack Hub. | Obligatorisk |
Privilegierad Slutpunkt | Privilegierad slutpunkt för åtkomst till Get-AzureStackStampInformation. | Obligatorisk |
DiagnostikAnvändareLösenord | Diagnostikanvändarkontolösenord | Valfri |
VMLocalCredential | Lokalt administratörskonto på den virtuella datorn MySQLAdapter. | Valfri |
DefaultSSLCertificatePassword | Standardlösenord för SSL-certifikat (*.pfx). | Valfri |
DependencyFilesLocalPath | Lokal sökväg för beroendefiler. | Valfri |
KeyVaultPfxPassword | Lösenordet som används för att generera Key Vault-certifikatet för databasadapter. | Valfri |
Dessa instruktioner gäller endast för SQL RP V2 som körs på Azure Stack Hub Integrated Systems.
Notera
För närvarande stöds konfidentiell rotation för värdeskapande resursleverantörer (RPs) endast via PowerShell.
Precis som Azure Stack Hub-infrastrukturen använder resursprovidrar för mervärde både interna och externa hemligheter. Som operatör ansvarar du för:
- Tillhandahålla uppdaterade externa hemligheter, till exempel ett nytt TLS-certifikat som används för att skydda resursproviderns slutpunkter.
- Hantera resursleverantörens nyckelrotation regelbundet.
När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Genom att slutföra hemlig rotation löser du dessa aviseringar:
- Väntar på att det interna certifikatet upphör att gälla
- Avvaktande utgångsdatum för externt certifikat
Förutsättningar
Inför rotationsprocessen:
Om du inte redan har gjort det installera PowerShell Az-modulen för Azure Stack Hub innan du fortsätter. Version 2.0.2-preview eller senare krävs för hemlig rotation i Azure Stack Hub. Mer information finns i Migrera från AzureRM till Azure PowerShell Az i Azure Stack Hub.
Installera Modulerna Azs.Deployment.Admin 1.0.0: PowerShell-galleriet | Azs.Deployment.Admin 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Om det externa certifikatet snart upphör att gälla kan du läsa krav för PKI-certifikat (Azure Stack Hub Public Key Infrastructure) för viktig nödvändig information innan du hämtar/förnyar ditt X509-certifikat, inklusive information om det pfx-format som krävs. Granska även kraven som anges i avsnittet Valfria PaaS-certifikatför din specifika värdetilldelningsresursprovider.
Förbereda ett nytt TLS-certifikat för extern certifikatrotation
Observera
Om endast det interna certifikatet snart upphör att gälla kan du hoppa över det här avsnittet.
Skapa eller förnya sedan ditt TLS-certifikat för att skydda slutpunkterna för resursprovidern med mervärde:
Slutför stegen i Generera certifikatsigneringsbegäranden (CSR) för certifikatförnyelse för resursprovidern. Här använder du verktyget Azure Stack Hub Readiness Checker för att skapa CSR. Se till att köra rätt cmdlet för resursprovidern i steget "Generera certifikatbegäranden för andra Azure Stack Hub-tjänster". Till exempel används
New-AzsDbAdapterCertificateSigningRequest
för SQL- och MySQL-RPs. När du är klar skickar du den genererade . REQ-fil till certifikatutfärdare (CA) för det nya certifikatet.När du har fått certifikatfilen från certifikatutfärdare slutför du stegen i Förbered certifikat för distribution eller rotation. Du använder verktyget Beredskapskontroll igen för att bearbeta filen som returneras från ca:en.
Slutför slutligen stegen i Verifiera Azure Stack Hub PKI-certifikat. Du använder verktyget Beredskapskontroll en gång till för att utföra valideringstester på det nya certifikatet.
Rotera det interna certifikatet
Öppna en upphöjd PowerShell-konsol och utför följande steg för att rotera resursproviderns externa hemligheter:
Logga in på din Azure Stack Hub-miljö med dina autentiseringsuppgifter för operatören. Se Anslut till Azure Stack Hub med PowerShell- för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.
Fastställa resursproviderns produkt-ID. Kör cmdleten
Get-AzsProductDeployment
för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade"value"
-samlingen innehåller ett element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:-
"name"
– innehåller resursproviderns produkt-ID i det andra segmentet av värdet.
Sql RP-distributionen kan till exempel ha ett produkt-ID för
"microsoft.sqlrp"
.-
Kör cmdleten
Invoke-AzsProductRotateSecretsAction
för att rotera det interna certifikatet:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Rotera det externa certifikatet
Du måste först anteckna värdena för följande parametrar.
Platshållare | Beskrivning | Exempelvärde |
---|---|---|
<product-id> |
Produkt-ID:t för den senaste distributionen av resursprovidern. | microsoft.sqlrp |
<installed-version> |
Versionen av den senaste distributionen av resursprovidern. | 2.0.0.2 |
<package-id> |
Paket-ID:t skapas genom sammanlänkning av produkt-ID och installerad version. | microsoft.sqlrp.2.0.0.2 |
<cert-secret-name> |
Namnet under vilket certifikathemligheten lagras. | SSLCert |
<cert-pfx-file-path> |
Sökvägen till PFX-certifikatfilen. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
Lösenordet som tilldelats din certifikat .PFX-fil. | strong@CertSecret6 |
Öppna en upphöjd PowerShell-konsol och slutför följande steg:
Logga in på din Azure Stack Hub-miljö med dina autentiseringsuppgifter för operatören. Se Anslut till Azure Stack Hub med PowerShell- för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.
Hämta värdet för parametern produkt-id. Kör cmdleten
Get-AzsProductDeployment
för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade"value"
-samlingen innehåller ett element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:-
"name"
– innehåller resursproviderns produkt-ID i det andra segmentet av värdet. -
"properties"."deployment"."version"
– innehåller det distribuerade versionsnumret.
-
Sql RP-distributionen kan till exempel ha ett produkt-ID för "microsoft.sqlrp"
och version "2.0.0.2"
.
Skapa resursproviderns paket-ID genom att sammanfoga resursproviderns produkt-ID och version. Om du till exempel använder värdena som härleddes i föregående steg är SQL RP-paket-ID:t
microsoft.sqlrp.2.0.0.2
.Med hjälp av paket-ID som härleddes i föregående steg kör du
Get-AzsProductSecret -PackageId
för att hämta listan över hemliga typer som används av resursprovidern. I den returneradevalue
-samlingen letar du reda på elementet som innehåller värdet"Certificate"
för egenskapen"properties"."secretKind"
. Det här elementet innehåller egenskaper för RP:s certifikathemlighet. Anteckna namnet som tilldelats den här certifikathemligheten, som identifieras av det sista segmentet i egenskapen"name"
, strax ovanför"properties"
.
Till exempel innehåller den hemlighetssamling som returneras för SQL RP en "Certificate"
hemlighet med namnet SSLCert
.
Använd cmdleten
Set-AzsProductSecret
för att importera det nya certifikatet till Key Vault, som ska användas av rotationsprocessen. Ersätt värdena för variabelplatshållarna i enlighet med detta innan du kör skriptet.$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
Använd slutligen kommandot
Invoke-AzsProductRotateSecretsAction
till att rotera hemligheterna:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Övervaka förloppet för hemlig rotation
Du kan övervaka förloppet för hemlig rotation i PowerShell-konsolen eller i administratörsportalen genom att välja resursprovidern i Marketplace-tjänsten:
Not
Den hemliga rotationstiden kan kosta mer än 10 minuter. När det är klart ändras statusen för resursprovidern till "Installerad".
Samla in diagnostikloggar
Azure Stack Hub har flera sätt att samla in, spara och skicka diagnostikloggar till Microsoft Support. Från och med version 1.1.93 har SQL Resource Provider stöd för standardsättet att samla in loggar från din Azure Stack Hub-miljö. Mer information finns i diagnostikloggsamling.
Från och med version 1.1.93 har SQL Resource Provider stöd för standardsättet att samla in loggar från din Azure Stack Hub-miljö. Om du använder en äldre version rekommenderar vi att du uppdaterar SQL-resursprovidern till den senaste versionen.
Om du vill samla in loggar från den låsta virtuella datorn använder du JEA-slutpunkten (PowerShell Just Enough Administration) DBAdapterDiagnostics. Den här slutpunkten innehåller följande kommandon:
- Get-AzsDBAdapterLog. Det här kommandot skapar ett zip-paket med resursproviderns diagnostikloggar och sparar filen på sessionens användarenhet. Du kan köra det här kommandot utan några parametrar och de senaste fyra timmarnas loggar samlas in.
- Remove-AzsDBAdapterLog. Det här kommandot tar bort befintliga loggpaket på den virtuella resursproviderns virtuella dator.
Krav och processer för slutpunkter
När en resursprovider installeras eller uppdateras skapas dbadapterdiag användarkonto. Du använder det här kontot för att samla in diagnostikloggar.
Notis
Lösenordet för dbadapterdiag-kontot är detsamma som lösenordet som används för den lokala administratören på den virtuella datorn som skapas under en providerdistribution eller uppdatering.
Om du vill använda kommandona DBAdapterDiagnostics skapar du en powershell-fjärrsession till den virtuella resursproviderns virtuella dator och kör kommandot Get-AzsDBAdapterLog.
Du anger tidsintervallet för loggsamlingen med hjälp av parametrarna FromDate och ToDate. Om du inte anger en eller båda av dessa parametrar används följande standardvärden:
- FromDate är fyra timmar före den aktuella tiden.
- ToDate är den aktuella tiden.
PowerShell-skriptexempel för insamling av loggar
Följande skript visar hur du samlar in diagnostikloggar från den virtuella resursproviderns virtuella dator.
# 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
Kända begränsningar för SQL Server-resursprovider version 1
Begränsning:
När distributionen, uppgraderingen eller det hemliga rotationsskriptet misslyckades kan vissa loggar inte samlas in av standardmekanismen för logginsamling.
Tillfällig lösning:
Förutom att använda standardmekanismen för logginsamling går du till mappen Loggar i den extraherade mappen där skriptet finns för att hitta fler loggar.