Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
A partir de la compilación 2108 de Azure Stack Hub, los proveedores de recursos SQL y MySQL se ofrecen a las suscripciones a las que se ha concedido acceso. Si desea empezar a usar esta característica o si necesita actualizar desde una versión anterior, abra un caso de soporte técnico y nuestros ingenieros de soporte técnico le guiarán a través del proceso de implementación o actualización.
El proveedor de recursos de SQL se ejecuta en una máquina virtual bloqueada. Para habilitar las operaciones de mantenimiento, debe actualizar la seguridad de la máquina virtual. Para hacer esto utilizando el principio de privilegios mínimos, use el punto de conexión PowerShell Just Enough Administration (JEA)DBAdapterMaintenance. El paquete de instalación del proveedor de recursos incluye un script para esta acción.
Aplicación de parches y actualizaciones
El proveedor de recursos de SQL no se proporciona como parte de Azure Stack Hub porque es un componente de complemento. Microsoft proporciona actualizaciones al proveedor de recursos de SQL según sea necesario.
Para SQL RP V1, cuando se publica un proveedor de recursos de SQL Server actualizado, se proporciona un script para aplicar la actualización. Este script crea una nueva máquina virtual del proveedor de recursos, migrando el estado de la máquina virtual del proveedor anterior a la nueva máquina virtual.
Para SQL RP V2, los proveedores de recursos se actualizan con la misma característica de actualización que se usa para aplicar actualizaciones de Azure Stack Hub.
Para obtener más información, consulte Actualización del proveedor de recursos de SQL.
Actualización de la máquina virtual del proveedor
SQL RP V1 se ejecuta en una máquina virtual de usuario , debe aplicar las revisiones y actualizaciones necesarias cuando se publiquen. Puede instalar un paquete de Windows Update durante la instalación del proveedor de recursos o al actualizarlo.
SQL RP V2 se ejecuta en una instancia administrada de Windows Server que está oculta. No es necesario aplicar revisiones ni actualizar la máquina virtual del proveedor de recursos. Se actualizará automáticamente cuando actualice el RP.
Actualización de las definiciones de Windows Defender de la máquina virtual
Estas instrucciones solo se aplican a SQL RP V1 que se ejecuta en sistemas integrados de Azure Stack Hub.
Para actualizar las definiciones de Windows Defender:
Descargue la actualización de definiciones de Windows Defender de actualizaciones de inteligencia de seguridad para Windows Defender.
En la página de actualización de definiciones, desplácese hacia abajo hasta "Descargar manualmente la actualización". Descargue el archivo "Antivirus de Windows Defender para Windows 10 y Windows 8.1" de 64 bits.
También puede usar este vínculo directo para descargar o ejecutar el archivo fpam-fe.exe.
Cree una sesión de PowerShell en el extremo de mantenimiento de la máquina virtual del adaptador de proveedor de recursos de SQL.
Copie el archivo de actualización de definiciones en la máquina virtual mediante la sesión del punto de conexión de mantenimiento.
En la sesión de PowerShell de mantenimiento, ejecute el comando Update-DBAdapterWindowsDefenderDefinitions .
Después de instalar las definiciones, se recomienda eliminar el archivo de actualización de definiciones mediante el comando Remove-ItemOnUserDrive .
Ejemplo de script de PowerShell para actualizar definiciones
Puede editar y ejecutar el siguiente script para actualizar las definiciones de Defender. Reemplace los valores del script por los valores del entorno.
# 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
Configuración de la extensión de Azure Diagnostics para el proveedor de recursos de SQL
Estas instrucciones solo se aplican a SQL RP V1 que se ejecuta en sistemas integrados de Azure Stack Hub.
La extensión Azure Diagnostics se instala en la máquina virtual del adaptador del proveedor de recursos de SQL de forma predeterminada. En los pasos siguientes se muestra cómo personalizar la extensión para recopilar los registros de eventos del proveedor operativo de recursos SQL y los registros de eventos de IIS con fines de resolución de problemas y auditoría.
Inicie sesión en el portal de administración de Azure Stack Hub.
Seleccione Máquinas virtuales en el panel de la izquierda, busque la máquina virtual del adaptador del proveedor de recursos de SQL y seleccione la máquina virtual.
En Configuración de diagnóstico de la máquina virtual, vaya a la pestaña Registros y elija Personalizado para personalizar los registros de eventos que se recopilan.
Agregue Microsoft-AzureStack-DatabaseAdapter/Operational!* para recopilar registros de eventos operativos del proveedor de recursos sql.
Para habilitar la recopilación de registros de IIS, compruebe los registros de IIS y los registros de solicitudes con error.
Por último, seleccione Guardar para guardar toda la configuración de diagnóstico.
Una vez configurados los registros de eventos y la recopilación de registros de IIS para el proveedor de recursos de SQL, los registros se pueden encontrar en una cuenta de almacenamiento del sistema denominada sqladapterdiagaccount.
Para más información sobre la extensión de Azure Diagnostics, consulte ¿Qué es la extensión de Azure Diagnostics?
Actualización de credenciales de SQL
Es responsable de crear y mantener cuentas sysadmin en los servidores SQL Server. El proveedor de recursos necesita una cuenta con estos privilegios para administrar bases de datos para los usuarios, pero no necesita acceso a los datos de los usuarios. Si necesita actualizar las contraseñas sysadmin en los servidores SQL Server, puede usar la interfaz de administrador del proveedor de recursos para cambiar una contraseña almacenada. Estas contraseñas se almacenan en una instancia de Key Vault en la instancia de Azure Stack Hub.
Para modificar la configuración, seleccione Examinar>RECURSOS ADMINISTRATIVOS>Servidores de Alojamiento SQL>Inicios de Sesión SQL y seleccione un nombre de usuario. El cambio debe realizarse primero en la instancia de SQL (y en cualquier réplica, si es necesario). En Configuración, seleccione Contraseña.
Rotación de secretos
Estas instrucciones solo se aplican a SQL RP V1 que se ejecuta en sistemas integrados de Azure Stack Hub.
Al usar los proveedores de recursos SQL y MySQL con sistemas integrados de Azure Stack Hub, el operador de Azure Stack Hub es responsable de rotar los siguientes secretos de infraestructura del proveedor de recursos para asegurarse de que no expiran:
- Certificado SSL externo proporcionado durante la implementación.
- La contraseña de la cuenta de administrador local del proveedor de recursos proporcionada durante la implementación.
- Contraseña de usuario de diagnóstico del proveedor de recursos (dbadapterdiag).
- (versión >= 1.1.47.0) Certificado de Key Vault generado durante la implementación.
Ejemplos de PowerShell para cambiar secretos
Importante
Antes de ejecutar el script siguiente, la rotación correcta de secretos requiere la eliminación de las versiones existentes de los módulos de PowerShell de Azure Stack Hub.
Cambie todos los secretos al mismo tiempo.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd `
-VMLocalCredential $localCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
Cambie la contraseña del usuario de diagnóstico.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DiagnosticsUserPassword $passwd
Cambie la contraseña de la cuenta de administrador local de la máquina virtual.
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-VMLocalCredential $localCreds
Rotación del certificado SSL
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-DependencyFilesLocalPath $certPath `
-DefaultSSLCertificatePassword $certPasswd
Rotación del certificado de Key Vault
.\SecretRotationSQLProvider.ps1 `
-Privilegedendpoint $Privilegedendpoint `
-CloudAdminCredential $cloudCreds `
-AzCredential $adminCreds `
-KeyVaultPfxPassword $keyvaultCertPasswd
parámetros de SecretRotationSQLProvider.ps1
| Parámetro | Description | Comentario |
|---|---|---|
| Entorno de Azure | Entorno de Azure de la cuenta de administrador de servicios que se usa para implementar Azure Stack Hub. Solo es necesario para las implementaciones de Microsoft Entra. Los nombres de entorno admitidos son AzureCloud, AzureUSGovernment o si se usa un identificador de Microsoft Entra de China, AzureChinaCloud. | Opcional |
| AzCredential | Credencial de la cuenta de administrador de servicios de Azure Stack Hub. El script producirá un error si la cuenta que usa con AzCredential requiere la autenticación multifactor (MFA). | Mandatory |
| CloudAdminCredential | Credencial de la cuenta de dominio de administrador en la nube de Azure Stack Hub. | Mandatory |
| Punto Final Privilegiado | Punto de conexión con privilegios para acceder a Get-AzureStackStampInformation. | Mandatory |
| DiagnosticsUserPassword | Contraseña de la cuenta de usuario de diagnóstico. | Opcional |
| VMLocalCredential | Cuenta de administrador local en la máquina virtual mySQLAdapter. | Opcional |
| DefaultSSLCertificatePassword | Contraseña predeterminada del certificado SSL (*.pfx). | Opcional |
| DependencyFilesLocalPath | Ruta de acceso local de los archivos de dependencia. | Opcional |
| KeyVaultPfxPassword | Contraseña que se usa para generar el certificado de Key Vault para el adaptador de base de datos. | Opcional |
Estas instrucciones solo se aplican a SQL RP V2 que se ejecuta en sistemas integrados de Azure Stack Hub.
Nota:
Actualmente, solo se admite la rotación de secretos para proveedores de recursos de valor añadido (RPs) a través de PowerShell.
Al igual que la infraestructura de Azure Stack Hub, los proveedores de recursos de valor agregado usan secretos internos y externos. Como operador, usted es responsable de:
- Proporcionar secretos externos actualizados, como un nuevo certificado TLS que se usa para proteger los puntos de conexión del proveedor de recursos.
- Gestión de la rotación regular de secretos del proveedor de recursos.
Cuando los secretos están a punto de expirar, se generan las siguientes alertas en el portal de administración. Al completar la rotación de secretos, se resolverán estas alertas:
- La expiración del certificado interno está pendiente.
- Expiración de certificados externos pendientes
Prerrequisitos
En preparación para el proceso de rotación:
Si aún no lo ha hecho, instale el módulo Az de PowerShell para Azure Stack Hub antes de continuar. La versión 2.0.2-preview o posterior es necesaria para la rotación de secretos de Azure Stack Hub. Para más información, consulte Migración de AzureRM a Azure PowerShell Az en Azure Stack Hub.
Instalación de módulos Azs.Deployment.Admin 1.0.0: Galería de PowerShell | Azs.Deployment.Admin 1.0.0
Install-Module -Name Azs.Deployment.Admin
- Si el certificado externo está a punto de expirar, revise los requisitos del certificado de infraestructura de clave pública (PKI) de Azure Stack Hub para obtener información importante sobre los requisitos previos antes de adquirir o renovar el certificado X509, incluidos los detalles sobre el formato PFX necesario. Revise también los requisitos especificados en la sección de Certificados opcionales de PaaS de su proveedor específico de recursos valor añadido.
Preparación de un nuevo certificado TLS para la rotación de certificados externos
Nota:
Si solo el certificado interno está a punto de expirar, puede omitir esta sección.
A continuación, cree o renueve el certificado TLS para proteger los puntos de conexión del proveedor de recursos de valor agregado:
Complete los pasos descritos en Generación de solicitudes de firma de certificados (CSR) para la renovación de certificados para el proveedor de recursos. Aquí se usa la herramienta Azure Stack Hub Readiness Checker para crear la CSR. Asegúrese de ejecutar el cmdlet correcto para el proveedor de recursos, en el paso "Generar solicitudes de certificado para otros servicios de Azure Stack Hub". Por ejemplo,
New-AzsDbAdapterCertificateSigningRequestse usa para los proveedores de recursos (RP) de SQL y MySQL. Cuando termine, envíe el archivo .REQ generado a la entidad de certificación (CA) para el nuevo certificado.Una vez que haya recibido el archivo de certificado de la ENTIDAD de certificación, complete los pasos descritos en Preparación de certificados para la implementación o rotación. Vuelva a usar la herramienta Readiness Checker para procesar el archivo devuelto por la ENTIDAD de certificación.
Por último, complete los pasos descritos en Validación de certificados PKI de Azure Stack Hub. La herramienta Readiness Checker se usa una vez más para realizar pruebas de validación en el nuevo certificado.
Rotación del certificado interno
Abra una consola de PowerShell con privilegios elevados y complete los pasos siguientes para rotar los secretos externos del proveedor de recursos:
Inicie sesión en el entorno de Azure Stack Hub con sus credenciales de operador. Consulte Conexión a Azure Stack Hub con PowerShell para el script de inicio de sesión de PowerShell. Asegúrese de usar los cmdlets de Az de PowerShell (en lugar de AzureRM) y reemplace todos los valores de marcador de posición, como las direcciones URL del punto de conexión y el nombre del inquilino del directorio.
Determine el identificador de producto del proveedor de recursos. Ejecute el
Get-AzsProductDeploymentcmdlet para recuperar una lista de las implementaciones más recientes del proveedor de recursos. La colección devuelta"value"contiene un elemento para cada proveedor de recursos implementado. Busque el proveedor de recursos de interés y anote los valores de estas propiedades:-
"name": contiene el identificador de producto del proveedor de recursos en el segundo segmento del valor.
Por ejemplo, la implementación de RP de SQL puede tener un identificador de producto de
"microsoft.sqlrp".-
Ejecute el
Invoke-AzsProductRotateSecretsActioncmdlet para rotar el certificado interno:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Rotación del certificado externo
Primero debe tomar nota de los valores de los parámetros siguientes.
| Placeholder | Description | Ejemplo de valor |
|---|---|---|
<product-id> |
El ID de producto del despliegue más reciente del proveedor de recursos. | microsoft.sqlrp |
<installed-version> |
Versión de la implementación más reciente del proveedor de recursos. | 2.0.0.2 |
<package-id> |
El identificador del paquete se compila mediante la concatenación del id. de producto y la versión instalada. | microsoft.sqlrp.2.0.0.2 |
<cert-secret-name> |
Nombre con el que se almacena el secreto de certificado. | SSLCert |
<cert-pfx-file-path> |
Ruta de acceso al archivo PFX del certificado. | C:\dir\dbadapter-cert-file.pfx |
<pfx-password> |
Contraseña asignada a su archivo de certificados .PFX. | strong@CertSecret6 |
Abra una consola de PowerShell con privilegios elevados y complete los pasos siguientes:
Inicie sesión en el entorno de Azure Stack Hub con sus credenciales de operador. Consulte Conexión a Azure Stack Hub con PowerShell para el script de inicio de sesión de PowerShell. Asegúrese de usar los cmdlets de Az de PowerShell (en lugar de AzureRM) y reemplace todos los valores de marcador de posición, como las direcciones URL del punto de conexión y el nombre del inquilino del directorio.
Obtenga el valor del parámetro product-id. Ejecute el
Get-AzsProductDeploymentcmdlet para recuperar una lista de las implementaciones más recientes del proveedor de recursos. La colección devuelta"value"contiene un elemento para cada proveedor de recursos implementado. Busque el proveedor de recursos de interés y anote los valores de estas propiedades:-
"name": contiene el identificador de producto del proveedor de recursos en el segundo segmento del valor. -
"properties"."deployment"."version": contiene el número de versión implementado actualmente.
-
Por ejemplo, la implementación de RP de SQL puede tener un identificador de producto de "microsoft.sqlrp"y la versión "2.0.0.2".
Compile el identificador de paquete del proveedor de recursos mediante la concatenación del identificador de producto y la versión del proveedor de recursos. Por ejemplo, con los valores derivados del paso anterior, el identificador de paquete de RP de SQL es
microsoft.sqlrp.2.0.0.2.Con el identificador de paquete derivado del paso anterior, ejecute
Get-AzsProductSecret -PackageIdpara recuperar la lista de tipos secretos que usa el proveedor de recursos. En la colección devueltavalue, busque el elemento que contiene un valor de"Certificate"para la"properties"."secretKind"propiedad . Este elemento contiene propiedades para el secreto del certificado de RP. Anote el nombre asignado a este secreto de certificado, identificado por el último segmento de la"name"propiedad, justo encima de"properties".
Por ejemplo, la colección de secretos devuelta para el RP de SQL contiene un "Certificate" secreto denominado SSLCert.
Usa el cmdlet
Set-AzsProductSecretpara importar tu nuevo certificado a Key Vault, que será utilizado por el proceso de rotación. Reemplace los valores de las variables marcadores de posición convenientemente antes de ejecutar el 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 -ForcePor último, use el
Invoke-AzsProductRotateSecretsActioncmdlet para rotar los secretos:Invoke-AzsProductRotateSecretsAction -ProductId $productId
Supervisión del progreso de la rotación de secretos
Puede supervisar el progreso de la rotación de claves secretas en la consola de PowerShell o en el portal de administración seleccionando el proveedor de recursos en el servicio de Marketplace:
Nota:
El tiempo de rotación de claves puede costar más de 10 minutos. Una vez hecho esto, el estado del proveedor de recursos cambiará a "Instalado".
Recopilación de registros de diagnóstico
Azure Stack Hub tiene varias maneras de recopilar, guardar y enviar registros de diagnóstico al soporte técnico de Microsoft. A partir de la versión 1.1.93, el proveedor de recursos de SQL admite la forma estándar de recopilar registros del entorno de Azure Stack Hub. Para obtener más información, consulte Recopilación de registros de diagnóstico.
A partir de la versión 1.1.93, el proveedor de recursos de SQL admite la forma estándar de recopilar registros del entorno de Azure Stack Hub. Si usa una versión anterior, se recomienda actualizar el proveedor de recursos de SQL a la versión más reciente.
Para recopilar registros de la máquina virtual bloqueada, use el punto de conexión de Administración Bajo Mínimos (JEA) de PowerShell DBAdapterDiagnostics. Este punto de conexión proporciona los siguientes comandos:
- Get-AzsDBAdapterLog. Este comando crea un paquete ZIP de los registros de diagnóstico del proveedor de recursos y guarda el archivo en la unidad de usuario de la sesión. Puede ejecutar este comando sin parámetros y se recopilan las últimas cuatro horas de registros.
- Remove-AzsDBAdapterLog. Este comando quita los paquetes de registro existentes en la máquina virtual del proveedor de recursos.
Requisitos y procesos del punto de conexión
Cuando se instala o actualiza un proveedor de recursos, se crea la cuenta de usuario dbadapterdiag . Usará esta cuenta para recopilar registros de diagnóstico.
Nota:
La contraseña de la cuenta dbadapterdiag es la misma que la que se usa para el administrador local en la máquina virtual que se crea durante una implementación o actualización del proveedor.
Para usar los comandos DBAdapterDiagnostics , cree una sesión remota de PowerShell en la máquina virtual del proveedor de recursos y ejecute el comando Get-AzsDBAdapterLog .
Establezca el intervalo de tiempo para la recopilación de registros mediante los parámetros FromDate y ToDate . Si no especifica uno o ambos parámetros, se usan los valores predeterminados siguientes:
- La variable FromDate es cuatro horas antes de la hora actual.
- ToDate es la hora actual.
Ejemplo de script de PowerShell para recopilar registros
El siguiente script muestra cómo recopilar registros de diagnóstico de la máquina virtual del proveedor de recursos.
# 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
Limitaciones conocidas del proveedor de recursos de SQL Server versión 1
Limitación:
Cuando se produce un error en el script de implementación, actualización o rotación de secretos, algunos registros no se pueden recopilar mediante el mecanismo de recopilación de registros estándar.
Solución alternativa:
Además de usar el mecanismo de recopilación de registros estándar, vaya a la carpeta Registros de la carpeta extraída donde se encuentra el script para buscar más registros.