Opérations de maintenance sur le fournisseur de ressources MySQL dans Azure Stack Hub
Important
À partir de la build Azure Stack Hub 2108, les fournisseurs de ressources SQL et MySQL sont proposés aux abonnements auxquels l’accès a été accordé. Si vous souhaitez commencer à utiliser cette fonctionnalité ou si vous devez effectuer une mise à niveau à partir d’une version précédente, ouvrez une demande de support afin que nos ingénieurs du support technique vous guident tout au long du processus de déploiement ou de mise à niveau.
Le fournisseur de ressources MySQL s’exécute sur une machine virtuelle verrouillée. Pour activer les opérations de maintenance, vous devez mettre à jour la sécurité de la machine virtuelle. Pour le faire en utilisant le principe du moindre privilège, vous pouvez utiliser le point de terminaison PowerShell Just Enough Administration (JEA) DBAdapterMaintenance. Le package d’installation du fournisseur de ressources inclut un script pour cette opération.
Mise à jour corrective et mise à jour
Le fournisseur de ressources MySQL n’est pas intégré à Azure Stack Hub, car il s’agit d’un module complémentaire. Microsoft fournit des mises à jour du fournisseur de ressources MySQL selon les besoins.
Pour le fournisseur de ressources MySQL V1, quand un fournisseur de ressources MySQL Server mis à jour est publié, un script est fourni pour appliquer la mise à jour. Ce script crée une nouvelle machine virtuelle pour le fournisseur de ressources et effectue la migration de l’état de l’ancienne machine virtuelle du fournisseur vers la nouvelle.
Pour le fournisseur de ressources MySQL V2, les fournisseurs de ressources sont mis à jour avec la même fonctionnalité que celle utilisée pour appliquer les mises à jour d’Azure Stack Hub.
Pour plus d’informations, consultez Mettre à jour le fournisseur de ressources MySQL.
Mettre à jour la machine virtuelle du fournisseur
Le fournisseur de ressources MySQL V1 s’exécute sur une machine virtuelle utilisateur. Vous devez appliquer les patchs et mises à jour nécessaires dès leur publication. Vous pouvez installer un package Windows Update pendant l’installation ou la mise à jour du fournisseur de ressources.
Le fournisseur de ressources MySQL V2 s’exécute sur un serveur Windows managé masqué. Vous n’avez pas besoin d’appliquer des patchs ou des mises à jour à la machine virtuelle du fournisseur de ressources. Elle est mise à jour automatiquement quand vous mettez à jour le fournisseur de ressources.
Mettre à jour les définitions Windows Defender
Ces instructions s’appliquent uniquement au fournisseur de ressources SQL V1 s’exécutant sur des systèmes intégrés Azure Stack Hub.
Pour mettre à jour les définitions Defender, procédez comme suit :
Télécharger la mise à jour des définitions Windows Defender à partir de Définitions Windows Defender.
Sur la page des définitions, accédez à « Télécharger et installer les définitions manuellement ». Téléchargez le fichier « Antivirus Windows Defender pour Windows 10 et Windows 8.1 » 64 bits.
Vous pouvez également utiliser ce lien direct pour télécharger/exécuter le fichier fpam-fe.exe.
Ouvrez une session PowerShell sur le point de terminaison de maintenance de la machine virtuelle de l’adaptateur de fournisseur de ressources MySQL.
Copiez le fichier de mise à jour des définitions pour la machine virtuelle de l’adaptateur de fournisseur de ressources à l’aide de la session du point de terminaison de maintenance.
Sur la session PowerShell de maintenance, appeler la commande Update-DBAdapterWindowsDefenderDefinitions.
Après avoir installé les définitions, nous vous recommandons de supprimer le fichier de mise à jour de définitions à l’aide de la commande Remove-ItemOnUserDrive) .
Exemple de script PowerShell pour mettre à jour les définitions.
Vous pouvez modifier et exécuter le script suivant pour mettre à jour les définitions Defender. Remplacez les valeurs dans le script avec les valeurs de votre environnement.
# 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
Configurer l’extension Azure Diagnostics pour le fournisseur de ressources MySQL
Ces instructions s’appliquent uniquement au fournisseur de ressources SQL V1 s’exécutant sur des systèmes intégrés Azure Stack Hub.
L’extension Azure Diagnostics est installée sur la machine virtuelle de l’adaptateur du fournisseur de ressources MySQL par défaut. Les étapes suivantes montrent comment personnaliser l’extension pour la collecte des journaux des événements opérationnels du fournisseur de ressources MySQL et des journaux IIS pour le dépannage et l’audit.
Connectez-vous au portail d’administration Azure Stack Hub.
Sélectionnez Machines virtuelles dans le volet à gauche, recherchez la machine virtuelle de l’adaptateur du fournisseur de ressources MySQL et sélectionnez cette machine virtuelle.
Dans les Paramètres de diagnostic de la machine virtuelle, accédez à l’onglet Journaux et choisissez Personnalisé pour personnaliser les journaux des événements à collecter.
Ajoutez Microsoft-AzureStack-DatabaseAdapter/Operational!* pour collecter les journaux d’événements opérationnels du fournisseur de ressources MySQL.
Pour activer la collecte des journaux IIS, cochez Journaux IIS et Journaux des requêtes ayant échoué.
Enfin, sélectionnez Enregistrer pour enregistrer tous les paramètres de diagnostic.
Une fois que les journaux des événements et la collecte des journaux IIS sont configurés pour le fournisseur de ressources MySQL, vous trouvez les journaux dans un compte de stockage système nommé mysqladapterdiagaccount.
Pour découvrir plus d’informations sur l’extension Azure Diagnostics, consultez Présentation de l’extension Azure Diagnostics.
Rotation des secrets
Ces instructions s’appliquent uniquement aux systèmes intégrés Azure Stack Hub.
Quand vous utilisez les fournisseurs de ressources SQL et MySQL avec des systèmes intégrés Azure Stack Hub, l’opérateur Azure Stack Hub est chargé d’opérer la rotation des secrets d’infrastructure de fournisseurs de ressources suivants pour garantir qu’ils n’expirent pas :
- Certificat SSL externe fourni au cours du déploiement.
- Mot de passe de compte d’administrateur local des machines virtuelles du fournisseur de ressources fourni au moment du déploiement.
- Mot de passe (dbadapterdiag) utilisateur de diagnostic du fournisseur de ressources.
- (version >= 1.1.47.0) Certificat Key Vault généré pendant le déploiement.
Exemples PowerShell pour la rotation des secrets
Changer tous les secrets en même temps :
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Changer le mot de passe utilisateur de diagnostic :
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Changer le mot de passe de compte administrateur local des machines virtuelles :
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Opérer une rotation du certificat SSL
.\SecretRotationMySQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Opérer une rotation du certificat du coffre de clés
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
SecretRotationMySQLProvider.ps1 parameters
Paramètre | Description | Commentaire |
---|---|---|
AzureEnvironment | Environnement Azure du compte administrateur de service utilisé pour déployer Azure Stack Hub. Obligatoire uniquement pour les déploiements Microsoft Entra. Les noms d’environnement pris en charge sont AzureCloud, AzureUSGovernment ou, si vous utilisez un ID china Microsoft Entra, AzureChinaCloud. | Facultatif |
AzCredential | Informations d’identification du compte d’administration de service Azure Stack Hub. Le script échoue si le compte que vous utilisez avec AzCredential nécessite l’authentification multifacteur (MFA). | Obligatoire |
CloudAdminCredential | Informations d’identification du compte de domaine d’administrateur cloud d’Azure Stack Hub. | Obligatoire |
PrivilegedEndpoint | Point de terminaison privilégié pour accéder à Get-AzureStackStampInformation. | Obligatoire |
DiagnosticsUserPassword | Diagnostique le mot de passe de compte d’utilisateur. | Facultatif |
VMLocalCredential | Le compte administrateur local de la machine virtuelle MySQLAdapter. | Facultatif |
DefaultSSLCertificatePassword | Mot de passe du certificat SSL par défaut (*.pfx). | Facultatif |
DependencyFilesLocalPath | Chemin local des fichiers de dépendances. | Facultatif |
KeyVaultPfxPassword | Mot de passe utilisé pour générer le certificat Key Vault pour l’adaptateur de base de données. | Facultatif |
Ces instructions s’appliquent uniquement au fournisseur de ressources MySQL V2 s’exécutant sur des systèmes intégrés Azure Stack Hub.
Remarque
Pour les fournisseurs de ressources à valeur ajoutée, la rotation des secrets n'est actuellement prise en charge que via PowerShell.
À l'instar de l'infrastructure Azure Stack Hub, les fournisseurs de ressources à valeur ajoutée utilisent à la fois des secrets internes et externes. En tant qu'opérateur, vous devez :
fournir des secrets externes à jour, tels qu'un nouveau certificat TLS pour sécuriser les points de terminaison des fournisseurs de ressources ;
gérer la rotation des secrets des fournisseurs de ressources sur une base régulière.
Lorsque les secrets approchent de leur date d’expiration, les alertes suivantes sont générées dans le portail administrateur. La rotation des secrets permet de résoudre les alertes suivantes :
Pending internal certificate expiration (Expiration imminente du certificat interne)
Pending external certificate expiration (Expiration imminente du certificat externe)
Prérequis
Pour préparer le processus de rotation :
Si ce n'est déjà fait, veillez à Installer le module PowerShell Az pour Azure Stack Hub avant de continuer. La version 2.0.2-preview (ou ultérieure) est requise pour la rotation des secrets Azure Stack Hub. Pour plus d'informations, consultez Effectuer une migration d'AzureRM vers Azure PowerShell Az dans Azure Stack Hub.
Installez les modules Azs.Deployment.Admin 1.0.0 : PowerShell Gallery | Azs.Deployment.Admin 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Si le certificat externe arrive bientôt à expiration, consultez Exigences de certificat pour l’infrastructure à clé publique (PKI) Azure Stack Hub afin d’obtenir des informations préalables importantes avant d’acquérir/de renouveler votre certificat X509, notamment des détails sur le format PFX nécessaire. Consultez également la section Certificats PaaS facultatifs pour connaître les exigences relatives à votre fournisseur de ressources à valeur ajoutée spécifique.
Préparer un nouveau certificat TLS pour la permutation du certificat externe
Notes
Si seul le certificat interne arrive bientôt à expiration, vous pouvez ignorer cette section.
Ensuite, créez ou renouvelez votre certificat TLS pour sécuriser les points de terminaison de fournisseur de ressources à valeur ajoutée :
Suivez les étapes décrites dans Générer des demandes de signature de certificat (CSR) pour le renouvellement de certificat pour votre fournisseur de ressources. Pour créer la CSR, utilisez l'outil Readiness Checker d'Azure Stack Hub. À l'étape « Générer des demandes de certificat pour d'autres services Azure Stack Hub », veillez à exécuter la cmdlet qui correspond à votre fournisseur de ressources. Par exemple
New-AzsDbAdapterCertificateSigningRequest
est utilisé pour les fournisseurs de ressources SQL et MySQL. Lorsque vous avez terminé, vous devez envoyer le fichier .REQ généré à votre autorité de certification pour obtenir le nouveau certificat.Une fois le fichier de certificat reçu de l'autorité de certification, suivez les étapes décrites dans Préparer des certificats pour le déploiement ou la rotation. Utilisez à nouveau l'outil Readiness Checker pour traiter le fichier renvoyé par l'autorité de certification.
Enfin, suivez les étapes décrites dans Valider des certificats PKI Azure Stack Hub. Utilisez à nouveau l'outil Readiness Checker pour procéder aux tests de validation sur votre nouveau certificat.
Permutation du certificat interne
Ouvrez une console PowerShell avec élévation de privilèges et suivez les étapes suivantes pour permuter les secrets externes du fournisseur de ressources :
Connectez-vous à votre environnement Azure Stack Hub à l'aide de vos informations d’identification d’opérateur. Consultez Se connecter à Azure Stack Hub avec PowerShell pour le script de connexion PowerShell. Veillez à utiliser les cmdlets PowerShell Az (plutôt que AzureRM) et remplacez toutes les valeurs d’espace réservé, telles que les URL de point de terminaison et le nom de locataire d’annuaire.
Déterminez l’ID de produit du fournisseur de ressources. Exécutez la cmdlet
Get-AzsProductDeployment
pour récupérer la liste des déploiements des fournisseurs de ressources les plus récents. La collection"value"
retournée contient un élément pour chaque fournisseur de ressources déployé. Recherchez le fournisseur de ressources qui vous intéresse et notez les valeurs correspondant à ces propriétés :-
"name"
- contient l’ID produit du fournisseur de ressources dans le deuxième segment de la valeur.
Par exemple, le déploiement du fournisseur de ressources MySQL peut avoir l’ID de produit
"microsoft.mysqlrp"
.-
Exécutez l’applet de commande
Invoke-AzsProductRotateSecretsAction
pour permuter le certificat interne :Invoke-AzsProductRotateSecretsAction -ProductId $productId
Permuter le certificat externe
Vous devez d’abord prendre note des valeurs des paramètres suivants.
Espace réservé | Description | Valeur d'exemple |
---|---|---|
<product-id> |
ID produit du déploiement du fournisseur de ressources le plus récent. | microsoft.mysqlrp |
<installed-version> |
Version du dernier déploiement du fournisseur de ressources. | 2.0.0.2 |
<package-id> |
L’ID de package est généré par concaténation des valeurs de product-id et installed-version. | microsoft.mysqlrp.2.0.0.2 |
<cert-secret-name> |
Nom sous lequel le secret de certificat est stocké. | SSLCert |
<cert-pfx-file-path> |
Chemin d’accès à votre fichier de certificat PFX. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
Mot de passe attribué à votre fichier de certificat .PFX. | strong@CertSecret6 |
Ouvrez une console PowerShell avec élévation de privilèges et effectuez les étapes suivantes :
Connectez-vous à votre environnement Azure Stack Hub à l'aide de vos informations d’identification d’opérateur. Consultez Se connecter à Azure Stack Hub avec PowerShell pour le script de connexion PowerShell. Veillez à utiliser les cmdlets PowerShell Az (plutôt que AzureRM) et remplacez toutes les valeurs d’espace réservé, telles que les URL de point de terminaison et le nom de locataire d’annuaire.
Obtenez la valeur du paramètre product-id. Exécutez la cmdlet
Get-AzsProductDeployment
pour récupérer la liste des déploiements des fournisseurs de ressources les plus récents. La collection"value"
retournée contient un élément pour chaque fournisseur de ressources déployé. Recherchez le fournisseur de ressources qui vous intéresse et notez les valeurs correspondant à ces propriétés :-
"name"
- contient l’ID produit du fournisseur de ressources dans le deuxième segment de la valeur. -
"properties"."deployment"."version"
- contient le numéro de la version actuellement déployée.
Par exemple, le déploiement du fournisseur de ressources MySQL peut avoir l’ID de produit
"microsoft.mysqlrp"
et la version"2.0.0.2"
.-
Générez l’ID de package du fournisseur de ressources en concaténant l’ID produit et la version du fournisseur de ressources. Par exemple, en utilisant les valeurs dérivées à l’étape précédente, l’ID de package du fournisseur de ressources SQL est
microsoft.mysqlrp.2.0.0.2
.À l’aide de l’ID de package dérivé à l’étape précédente, exécutez
Get-AzsProductSecret -PackageId
pour récupérer la liste des types de secrets utilisés par le fournisseur de ressources. Dans la collectionvalue
retournée, recherchez l’élément contenant la valeur"Certificate"
pour la propriété"properties"."secretKind"
. Cet élément contient les propriétés pour le secret de certificat du RP. Notez le nom attribué à ce secret de certificat, qui est identifié par le dernier segment de la propriété"name"
, juste au-dessus de"properties"
.Par exemple, la collection de secrets retournée pour le fournisseur de ressources SQL contient un secret
"Certificate"
nomméSSLCert
.Utilisez la cmdlet
Set-AzsProductSecret
pour importer votre nouveau certificat dans Key Vault ; celui-ci sera utilisé par le processus de rotation. Remplacez les valeurs d’espace réservé de la variable en conséquence avant d’exécuter le 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
Enfin, utilisez l’applet de commande
Invoke-AzsProductRotateSecretsAction
pour permuter les secrets :Invoke-AzsProductRotateSecretsAction -ProductId $productId
Surveiller la progression de la permutation des secrets
Vous pouvez surveiller la progression de la rotation des secrets à l’aide de la console PowerShell ou du portail d’administration en sélectionnant le fournisseur de ressources dans le service Place de marché :
Notes
La durée de permutation du secret peut dépasser 10 minutes. Une fois l’opération terminée, l’état du fournisseur de ressources devient « Installé ».
Collecter des journaux de diagnostic
Différentes méthodes sont proposées par Azure Stack Hub pour collecter, enregistrer et envoyer les journaux de diagnostic au Support Microsoft. À partir de la version 1.1.93, le fournisseur de ressources MySQL prend en charge le mode standard de collecte des journaux à partir de votre environnement Azure Stack Hub. Pour plus d’informations, consultez Collecte des journaux de diagnostic.
À partir de la version 1.1.93, le fournisseur de ressources MySQL prend en charge le mode standard de collecte des journaux à partir de votre environnement Azure Stack Hub. Si vous utilisez une version antérieure, il est recommandé de mettre à jour votre fournisseur de ressources MySQL vers la dernière version.
Pour collecter les journaux d’activité de la machine virtuelle verrouillée, utilisez le point de terminaison PowerShell JEA (Just Enough Administration) DBAdapterDiagnostics. Ce point de terminaison propose les commandes suivantes :
Get-AzsDBAdapterLog. Cette commande crée un package zip des journaux de diagnostic du fournisseur de ressources et enregistre le fichier sur le lecteur de l’utilisateur de la session. Vous pouvez exécuter cette commande sans aucun paramètre : les quatre dernières heures de journaux d’activité seront collectées.
Remove-AzsDBAdapterLog. Cette commande nettoie les packages de journaux existants sur la machine virtuelle du fournisseur de ressources.
Processus et exigences du point de terminaison
Lorsqu’un fournisseur de ressources est installé ou mis à jour, le compte d’utilisateur dbadapterdiag est créé. Ce compte vous permet de collecter les journaux de diagnostic.
Notes
Le mot de passe du compte dbadapterdiag est identique au mot de passe utilisé pour l’administrateur local sur la machine virtuelle créée au cours d’un déploiement ou d’une mise à jour de fournisseur.
Pour utiliser les commandes DBAdapterDiagnostics, créez une session PowerShell à distance sur la machine virtuelle du fournisseur de ressources, puis appelez la commande Get-AzsDBAdapterLog.
Vous définirez l’intervalle de temps pour la collecte de journaux à l’aide des paramètres FromDate et ToDate. Si vous ne spécifiez pas l’un de ces paramètres ou les deux, les valeurs par défaut suivantes sont utilisées :
- FromDate correspond à quatre heures avant l’heure actuelle.
- ToDate renvoie l’heure en cours.
Exemple de script PowerShell pour collecter les journaux d’activité :
Le script suivant montre comment collecter les journaux de diagnostic à partir de la machine virtuelle du fournisseur de ressources.
# 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
Limitations connues du fournisseur de ressources MySQL Server Version 1
Limitation :
En cas d’échec du déploiement, de la mise à niveau ou du script de rotation des secrets, certains journaux ne peuvent pas être collectés par le mécanisme de collecte des journaux standard.
Solution de contournement :
En plus d’utiliser le mécanisme de collecte des journaux standard, accédez au dossier Journaux dans le dossier extrait où le script se situe pour rechercher d’autres journaux.