Operazioni di manutenzione del provider di risorse SQL
Importante
A partire dalla compilazione dell'hub di Azure Stack 2108, i provider di risorse SQL e MySQL vengono offerti alle sottoscrizioni a cui è stato concesso l'accesso. Se si vuole iniziare a usare questa funzionalità o se è necessario eseguire l'aggiornamento da una versione precedente, aprire un caso di supporto e i tecnici di supporto guideranno l'utente attraverso il processo di distribuzione o aggiornamento.
Il provider di risorse SQL viene eseguito in una macchina virtuale bloccata. Per abilitare le operazioni di manutenzione, è necessario aggiornare la sicurezza della macchina virtuale. A tale scopo, usare l'endpoint DBAdapterMaintenance per l'endpoint PowerShell Just Enough Administration (JEA). Il pacchetto di installazione del provider di risorse include uno script per questa azione.
Applicazione di patch e aggiornamenti
Il provider di risorse SQL non viene eseguito il servizio come parte dell'hub di Azure Stack perché è un componente aggiuntivo. Microsoft fornisce aggiornamenti al provider di risorse SQL in base alle esigenze.
Per SQL RP V1, quando viene rilasciato un provider di risorse aggiornato SQL Server, viene fornito uno script per applicare l'aggiornamento. Questo script crea una nuova macchina virtuale del provider di risorse, eseguendo la migrazione dello stato della macchina virtuale del provider precedente alla nuova macchina virtuale.
Per SQL RP V2, i provider di risorse vengono aggiornati usando la stessa funzionalità di aggiornamento usata per applicare gli aggiornamenti dell'hub di Azure Stack.
Per altre informazioni, vedere Aggiornare il provider di risorse SQL.
Aggiornare la macchina virtuale del provider
SQL RP V1 viene eseguito in una macchina virtuale utente , è necessario applicare le patch e gli aggiornamenti necessari al rilascio. È possibile installare un pacchetto Windows Update durante l'installazione di o l'aggiornamento a, il provider di risorse.
SQL RP V2 viene eseguito in un server Windows gestito nascosto. Non è necessario applicare patch o aggiornare la macchina virtuale del provider di risorse. Verrà aggiornato automaticamente quando si aggiorna il rp.
Aggiornare le definizioni di Windows Defender vm
Queste istruzioni si applicano solo a SQL RP V1 in esecuzione in Sistemi integrati dell'hub di Azure Stack.
Per aggiornare le definizioni di Windows Defender:
Scaricare l'aggiornamento delle definizioni di Windows Defender dagli aggiornamenti di Security Intelligence per Windows Defender.
Nella pagina di aggiornamento delle definizioni scorrere verso il basso fino a "Scaricare manualmente l'aggiornamento". Scaricare il file "Windows Defender Antivirus per Windows 10 e Windows 8.1" a 64 bit.
È anche possibile usare questo collegamento diretto per scaricare/eseguire il file di fpam-fe.exe.
Creare una sessione di PowerShell all'endpoint di manutenzione della macchina virtuale del provider di risorse SQL.
Copiare il file di aggiornamento delle definizioni nella macchina virtuale usando la sessione dell'endpoint di manutenzione.
Nella sessione di Manutenzione di PowerShell eseguire il comando Update-DBAdapterWindowsDefenderDefinitions .
Dopo aver installato le definizioni, è consigliabile eliminare il file di aggiornamento delle definizioni usando il comando Remove-ItemOnUserDrive .
Esempio di script di PowerShell per l'aggiornamento delle definizioni
È possibile modificare ed eseguire lo script seguente per aggiornare le definizioni di Defender. Sostituire i valori nello script con valori dall'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
Configurare l'estensione Diagnostica di Azure per il provider di risorse SQL
Queste istruzioni si applicano solo a SQL RP V1 in esecuzione in Sistemi integrati dell'hub di Azure Stack.
Diagnostica di Azure'estensione è installata nella macchina virtuale dell'adapter del provider di risorse SQL per impostazione predefinita. La procedura seguente illustra come personalizzare l'estensione per raccogliere i log eventi operativi del provider di risorse SQL e i log iis per la risoluzione dei problemi e il controllo.
Accedere al portale dell'amministratore dell'hub di Azure Stack.
Selezionare Macchine virtuali nel riquadro a sinistra, cercare la macchina virtuale dell'adapter del provider di risorse SQL e selezionare la macchina virtuale.
In Impostazioni di diagnostica della macchina virtuale passare alla scheda Log e scegliere Personalizzato per personalizzare i log eventi raccolti.
Aggiungere Microsoft-AzureStack-DatabaseAdapter/Operational!* per raccogliere i log eventi operativi del provider di risorse SQL.
Per abilitare la raccolta dei log IIS, controllare i log iis e i log delle richieste non riusciti.
Infine selezionare Salva per salvare tutte le impostazioni di diagnostica.
Una volta configurati i log eventi e la raccolta log IIS per il provider di risorse SQL, i log sono disponibili in un account di archiviazione di sistema denominato sqladapterdiagaccount.
Per altre informazioni sull'estensione Diagnostica di Azure, vedere Informazioni sull'estensione Diagnostica di Azure.
Aggiornamento delle credenziali SQL
È responsabile della creazione e della gestione degli account sysadmin nei server SQL. Il provider di risorse necessita di un account con questi privilegi per gestire i database per gli utenti, ma non deve accedere ai dati degli utenti. Se è necessario aggiornare le password sysadmin nei server SQL, è possibile usare l'interfaccia di amministratore del provider di risorse per modificare una password archiviata. Queste password vengono archiviate in un Key Vault nell'istanza dell'hub di Azure Stack.
Per modificare le impostazioni, selezionare Sfoglia>RISORSE> AMMINISTRATIVESQL Hosting Server>SQL Logins e selezionare un nome utente. La modifica deve essere apportata prima all'istanza DI SQL (e a tutte le repliche, se necessario). In Impostazioni selezionare Password.
Rotazione dei segreti
Queste istruzioni si applicano solo a SQL RP V1 in esecuzione in Sistemi integrati dell'hub di Azure Stack.
Quando si usano i provider di risorse SQL e MySQL con i sistemi integrati dell'hub di Azure Stack, l'operatore hub di Azure Stack è responsabile della rotazione dei segreti dell'infrastruttura del provider di risorse seguenti per assicurarsi che non scadano:
- Certificato SSL esterno fornito durante la distribuzione.
- Password dell'account amministratore locale della macchina virtuale del provider di risorse fornita durante la distribuzione.
- Password dell'utente di diagnostica del provider di risorse (dbadapterdiag).
- (versione >= 1.1.47.0) Key Vault certificato generato durante la distribuzione.
Esempi di PowerShell per la rotazione dei segreti
Importante
La rotazione dei segreti richiede la rimozione di tutte le versioni esistenti dei moduli di PowerShell dell'hub di Azure Stack, prima di eseguire lo script seguente.
Modificare tutti i segreti contemporaneamente.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Modificare la password utente di diagnostica.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Modificare la password dell'account amministratore locale della macchina virtuale.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Ruotare il certificato SSL
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Ruotare il certificato di Key Vault
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
parametri SecretRotationSQLProvider.ps1
Parametro | Descrizione | Comment |
---|---|---|
AzureEnvironment | Ambiente di Azure dell'account amministratore del servizio usato per la distribuzione dell'hub di Azure Stack. Obbligatorio solo per le distribuzioni di Microsoft Entra. I nomi di ambiente supportati sono AzureCloud, AzureUSGovernment o se si usa un ID cina Microsoft Entra, AzureChinaCloud. | Facoltativo |
AzCredential | Credenziali dell'account amministratore del servizio hub di Azure Stack. Lo script avrà esito negativo se l'account usato con AzCredential richiede l'autenticazione a più fattori ( MFA). | Obbligatorio |
CloudAdminCredential | Credenziali dell'account di dominio amministratore cloud di Azure Stack Hub. | Obbligatorio |
PrivilegedEndpoint | Endpoint con privilegi per accedere a Get-AzureStackStampInformation. | Obbligatorio |
DiagnosticsUserPassword | Password dell'account utente di diagnostica. | Facoltativo |
VMLocalCredential | Account amministratore locale nella macchina virtuale MySQLAdapter. | Facoltativo |
DefaultSSLCertificatePassword | Password predefinita del certificato SSL (*.pfx). | Facoltativo |
DependencyFilesLocalPath | Percorso locale dei file di dipendenza. | Facoltativo |
KeyVaultPfxPassword | Password utilizzata per generare il certificato Key Vault per l'adattatore di database. | Facoltativo |
Queste istruzioni si applicano solo a SQL RP V2 in esecuzione nei sistemi integrati dell'hub di Azure Stack.
Nota
La rotazione dei segreti per i provider di risorse aggiunti a valore è attualmente supportata solo tramite PowerShell.
Come l'infrastruttura dell'hub di Azure Stack, anche i provider di risorse a valore aggiunto usano segreti interni ed esterni. Agli operatori vengono affidate le seguenti responsabilità:
- Fornire segreti esterni aggiornati, ad esempio un nuovo certificato TLS per proteggere gli endpoint del provider di risorse.
- Gestione della rotazione dei segreti del provider di risorse a intervalli regolari.
Quando i segreti si avvicinano alla scadenza, nel portale di amministrazione vengono generati gli avvisi seguenti. Completando la rotazione dei segreti sarà possibile risolvere gli avvisi:
- In attesa di scadenza del certificato interno
- In attesa di scadenza del certificato esterno
Prerequisiti
In preparazione del processo di rotazione:
Se non è già stato fatto, installare il modulo Az di PowerShell per l'hub di Azure Stack prima di continuare. Per la rotazione dei segreti dell'hub di Azure Stack è necessaria la versione 2.0.2-preview o successiva. Per altre informazioni, vedere Eseguire la migrazione da AzureRM ad Azure PowerShell Az nell'hub di Azure Stack.
Installare Azs.Deployment. moduli Amministrazione 1.0.0: PowerShell Gallery | Azs.Deployment. Amministrazione 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Se il certificato esterno sta per scadere, esaminare i requisiti dei certificati dell'infrastruttura a chiave pubblica (PKI) dell'hub di Azure Stack per informazioni importanti sui prerequisiti prima di acquisire/rinnovare il certificato X509, inclusi i dettagli sul formato PFX richiesto. Consultare i requisiti specificati nella sezione sui certificati PaaS facoltativi per il provider di risorse a valore aggiunto specifico.
Preparare un nuovo certificato TLS per la rotazione dei certificati esterni
Nota
Se solo il certificato interno sta per scadere, è possibile ignorare questa sezione.
Creare o rinnovare quindi il certificato TLS per proteggere gli endpoint del provider di risorse a valore aggiunto:
Completare la procedura illustrata in Generare richieste di firma del certificato per il rinnovo del certificato per il provider di risorse interessato. In questo caso si userà lo strumento Controllo conformità dell'hub di Azure Stack per creare la richiesta di firma del certificato. Assicurarsi di eseguire il cmdlet corretto per il provider di risorse, come specificato in "Generare richieste di certificato per altri servizi dell'hub di Azure Stack". Ad esempio, viene usato per gli indirizzi
New-AzsDbAdapterCertificateSigningRequest
IP SQL e MySQL. Al termine, si invia l'oggetto generato. File REQ nell'autorità di certificazione (CA) per il nuovo certificato.Dopo aver ricevuto il file di certificato dall'autorità di certificazione, completare la procedura descritta in Preparare i certificati per la distribuzione o la rotazione. Per elaborare il file restituito dall'autorità di certificazione, si userà nuovamente lo strumento Controllo conformità.
Completare infine la procedura illustrata in Convalida dei certificati PKI dell'hub di Azure Stack. Per eseguire i test di convalida del nuovo certificato, si userà ancora una volta lo strumento Controllo conformità.
Ruotare il certificato interno
Aprire una console di PowerShell con privilegi elevati e completare i passaggi seguenti per ruotare i segreti esterni del provider di risorse:
Accedere all'ambiente dell'hub di Azure Stack usando le credenziali di operatore. Vedere Connettersi all'hub di Azure Stack con PowerShell per lo script di accesso di PowerShell. Assicurarsi di usare i cmdlet di PowerShell Az (anziché di AzureRM) e sostituire tutti i valori segnaposto, ad esempio gli URL dell'endpoint e il nome del tenant della directory.
Determinare l'ID prodotto del provider di risorse. Eseguire il cmdlet
Get-AzsProductDeployment
per recuperare un elenco delle distribuzioni più recenti del provider di risorse. Nella raccolta"value"
restituita è contenuto un elemento per ogni provider di risorse distribuito. Trovare il provider di risorse di interesse e prendere nota dei valori delle proprietà seguenti:-
"name"
- Contiene l'ID prodotto del provider di risorse nel secondo segmento del valore.
Ad esempio, la distribuzione del punto di ripristino di SQL può avere un ID prodotto .
"microsoft.sqlrp"
-
Eseguire il
Invoke-AzsProductRotateSecretsAction
cmdlet per ruotare il certificato interno:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Ruotare il certificato esterno
È prima necessario prendere nota dei valori per i parametri seguenti.
Segnaposto | Descrizione | Valore di esempio |
---|---|---|
<product-id> |
ID prodotto della distribuzione più recente del provider di risorse. | microsoft.sqlrp |
<installed-version> |
Versione della distribuzione più recente del provider di risorse. | 2.0.0.2 |
<package-id> |
L'ID pacchetto viene compilato concatenando l'ID prodotto e la versione installata. | microsoft.sqlrp.2.0.0.2 |
<cert-secret-name> |
Nome in cui è archiviato il segreto del certificato. | SSLCert |
<cert-pfx-file-path> |
Percorso del file PFX del certificato. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
Password assegnata al certificato . File PFX. | strong@CertSecret6 |
Aprire una console di PowerShell con privilegi elevati e completare i passaggi seguenti:
Accedere all'ambiente dell'hub di Azure Stack usando le credenziali di operatore. Vedere Connettersi all'hub di Azure Stack con PowerShell per lo script di accesso di PowerShell. Assicurarsi di usare i cmdlet di PowerShell Az (anziché di AzureRM) e sostituire tutti i valori segnaposto, ad esempio gli URL dell'endpoint e il nome del tenant della directory.
Ottenere il valore del parametro product-id. Eseguire il cmdlet
Get-AzsProductDeployment
per recuperare un elenco delle distribuzioni più recenti del provider di risorse. Nella raccolta"value"
restituita è contenuto un elemento per ogni provider di risorse distribuito. Trovare il provider di risorse di interesse e prendere nota dei valori delle proprietà seguenti:-
"name"
- Contiene l'ID prodotto del provider di risorse nel secondo segmento del valore. -
"properties"."deployment"."version"
- Contiene il numero di versione attualmente distribuito.
-
Ad esempio, la distribuzione di RP DI SQL può avere un ID prodotto di "microsoft.sqlrp"
e la versione "2.0.0.2"
.
Compilare l'ID pacchetto del provider di risorse concatenando l'ID prodotto e la versione del provider di risorse. Ad esempio, usando i valori derivati nel passaggio precedente, l'ID del pacchetto RP SQL è
microsoft.sqlrp.2.0.0.2
.Usando l'ID pacchetto ottenuto nel passaggio precedente, eseguire
Get-AzsProductSecret -PackageId
per recuperare l'elenco di tipi segreti usati dal provider di risorse. Nella raccoltavalue
restituita individuare l'elemento contenente il valore"Certificate"
per la proprietà"properties"."secretKind"
. Questo elemento conterrà le proprietà relative al segreto del certificato del provider di risorse. Annotare il nome assegnato al segreto del certificato, identificato dall'ultimo segmento della proprietà"name"
, appena sopra"properties"
.
Ad esempio, la raccolta di segreti restituita per il rpo di SQL contiene un "Certificate"
segreto denominato SSLCert
.
Usare il cmdlet
Set-AzsProductSecret
per importare in Key Vault il nuovo certificato, che verrà usato dal processo di rotazione. Sostituire di conseguenza i valori segnaposto della variabile prima di eseguire lo 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 -Force
Infine, usare il
Invoke-AzsProductRotateSecretsAction
cmdlet per ruotare i segreti:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Monitorare lo stato di avanzamento della rotazione dei segreti
È possibile monitorare lo stato di avanzamento della rotazione dei segreti nella console di PowerShell o nel portale di amministrazione selezionando il provider di risorse interessato nel servizio Marketplace:
Nota
Il tempo di rotazione del segreto potrebbe costare più di 10 minuti. Al termine, lo stato del provider di risorse passerà a "Installato".
Raccogliere i log di diagnostica
L'hub di Azure Stack offre diversi modi per raccogliere, salvare e inviare log di diagnostica a supporto tecnico Microsoft. A partire dalla versione 1.1.93, il provider di risorse SQL supporta la modalità standard di raccolta dei log dall'ambiente dell'hub di Azure Stack. Per altre informazioni, vedere Raccolta di log di diagnostica.
A partire dalla versione 1.1.93, il provider di risorse SQL supporta la modalità standard di raccolta dei log dall'ambiente dell'hub di Azure Stack. Se si usa una versione precedente, è consigliabile aggiornare il provider di risorse SQL alla versione più recente.
Per raccogliere i log dalla macchina virtuale bloccata, usare l'endpoint DI AMMINISTRAZIONE JEA (Just Enough Administration) di PowerShell DBAdapterDiagnostics. Questo endpoint fornisce i comandi seguenti:
- Get-AzsDBAdapterLog. Questo comando crea un pacchetto ZIP dei log di diagnostica del provider di risorse e salva il file nell'unità utente della sessione. È possibile eseguire questo comando senza parametri e vengono raccolte le ultime quattro ore di log.
- Remove-AzsDBAdapterLog. Questo comando rimuove i pacchetti di log esistenti nella macchina virtuale del provider di risorse.
Requisiti e processi degli endpoint
Quando viene installato o aggiornato un provider di risorse, viene creato l'account utente dbadapterdiag . Questo account verrà usato per raccogliere i log di diagnostica.
Nota
La password dell'account dbadapterdiag corrisponde alla password usata per l'amministratore locale nella macchina virtuale creata durante la distribuzione o l'aggiornamento del provider.
Per usare i comandi DBAdapterDiagnostics , creare una sessione di PowerShell remota nella macchina virtuale del provider di risorse ed eseguire il comando Get-AzsDBAdapterLog .
Per impostare l'intervallo di tempo per la raccolta di log, usare i parametri FromDate e ToDate . Se non si specifica uno o entrambi questi parametri, vengono usate le impostazioni predefinite seguenti:
- FromDate è quattro ore prima dell'ora corrente.
- ToDate è l'ora corrente.
Esempio di script di PowerShell per la raccolta di log
Lo script seguente illustra come raccogliere i log di diagnostica dalla macchina virtuale del provider di risorse.
# 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
Limitazioni note del provider di risorse SQL Server versione 1
Limitazione:
Quando lo script di distribuzione, aggiornamento o rotazione dei segreti non è riuscito, alcuni log non possono essere raccolti dal meccanismo di raccolta dei log standard.
Soluzione alternativa:
Oltre a usare il meccanismo di raccolta dei log standard, passare alla cartella Logs nella cartella estratta in cui si trova lo script, per trovare altri log.