Поделиться через


Операции обслуживания поставщика ресурсов SQL

Важный

Начиная с версии платформы Azure Stack Hub 2108, ресурсы SQL и MySQL доступны для подписок, которым предоставлен доступ. Если вы хотите начать использовать эту функцию или вам нужно обновиться с предыдущей версии, откройте обращение в службу поддержки, и наши инженеры службы поддержки помогут вам выполнить развертывание или обновление.

Поставщик ресурсов SQL выполняется на заблокированной виртуальной машине. Чтобы включить операции обслуживания, необходимо обновить безопасность виртуальной машины. Для этого, следуя принципу наименьших привилегий, используйте PowerShell Just Enough Administration (JEA) , конечную точку, и DBAdapterMaintenance. Пакет установки поставщика ресурсов включает скрипт для этого действия.

Исправление и обновление

Поставщик ресурсов SQL не обслуживается как часть Azure Stack Hub, так как это компонент надстройки. Корпорация Майкрософт предоставляет обновления поставщику ресурсов SQL по мере необходимости.

Для SQL RP версии 1 при выпуске обновленного поставщика ресурсов SQL Server предоставляется скрипт для применения обновления. Этот скрипт создает виртуальную машину поставщика ресурсов, перенося состояние старой виртуальной машины поставщика на новую виртуальную машину.

Для SQL RP версии 2 поставщики ресурсов обновляются с помощью той же функции обновления, которая используется для применения обновлений Azure Stack Hub.

Дополнительные сведения см. в обновлении поставщика SQL-ресурсов.

Обновление виртуальной машины поставщика

SQL RP версии 1 выполняется на виртуальной машине пользователя, необходимо применять исправления и обновления по мере их выхода. Пакет обновлений Windows можно установить во время установки или обновления поставщика ресурсов.

SQL RP версии 2 выполняется на управляемом сервере Windows Server, скрытом. Вам не нужно исправлять или обновлять виртуальную машину поставщика ресурсов. Он будет обновляться автоматически при обновлении RP.

Обновление определений Защитника Виртуальной машины Windows

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Чтобы обновить определения Защитника Windows, выполните следующие действия.

  1. Скачайте обновления определений Защитника Windows из обновлений аналитики безопасности дляЗащитника Windows.

    На странице обновления определений прокрутите вниз до раздела "Вручную скачать обновление". Скачайте 64-разрядный файл "Антивирусная программа Защитника Windows для Windows 10 и Windows 8.1".

    Вы также можете использовать эту прямую ссылку для скачивания и запуска файла fpam-fe.exe.

  2. Создайте сеанс PowerShell для конечной точки обслуживания виртуальной машины-адаптера поставщика ресурсов SQL.

  3. Скопируйте файл обновления определений на виртуальную машину с помощью сеанса конечной точки обслуживания.

  4. В сеансе обслуживания PowerShell выполните команду Update-DBAdapterWindowsDefenderDefinitions.

  5. После установки определений рекомендуется удалить файл обновления определений с помощью команды Remove-ItemOnUserDrive.

пример скрипта PowerShell для обновления определений

Чтобы обновить определения Defender, можно изменить и запустить следующий скрипт. Замените значения в скрипте значениями из среды.

# 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

Настройка расширения диагностики Azure для поставщика ресурсов SQL

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

Расширение диагностики Azure устанавливается на виртуальной машине адаптера поставщика ресурсов SQL по умолчанию. Ниже показано, как настроить расширение для сбора журналов операционных событий поставщика ресурсов SQL и журналов IIS для устранения неполадок и аудита.

  1. Войдите на портал администрирования Azure Stack Hub.

  2. Выберите Виртуальные машины в области слева, найдите ВМ адаптера поставщика ресурсов SQL и выберите эту ВМ.

  3. В параметрах диагностики виртуальной машины перейдите на вкладку Логи и выберите Пользовательский для настройки логов событий. Перейти к параметрам диагностики

  4. Добавьте Microsoft-AzureStack-DatabaseAdapter/Operational!* для сбора журналов операционных событий поставщика ресурсов SQL. Добавление журналов событий

  5. Чтобы активировать сбор журналов IIS, проверьте журналы IIS и журналы неудачных запросов . Добавьте журналы IIS

  6. Наконец, выберите Сохранить, чтобы сохранить все параметры диагностики.

После настройки журналов событий и коллекции журналов IIS для поставщика ресурсов SQL журналы можно найти в системной учетной записи хранения с именем sqladapterdiagaccount.

Дополнительные сведения о расширении диагностики Azure см. в статье Что такое расширение диагностики Azure.

Обновление учетных данных SQL

Вы несете ответственность за создание и обслуживание учетных записей sysadmin на серверах SQL. Поставщик ресурсов должен иметь учетную запись с этими привилегиями для управления базами данных для пользователей, но он не нуждается в доступе к данным пользователей. Если вам нужно обновить пароли sysadmin на серверах SQL Server, можно использовать интерфейс администратора поставщика ресурсов для изменения сохраненного пароля. Эти пароли хранятся в хранилище ключей (Key Vault) в экземпляре Azure Stack Hub.

Чтобы изменить параметры, выберите Обзор>АДМИНИСТРАТИВНЫЕ РЕСУРСЫ>сервера размещения SQL>имена входа SQL и выберите имя пользователя. В первую очередь необходимо внести изменения в экземпляр SQL (и, при необходимости, любые реплики). В разделе "Параметры "выберите Пароль.

обновление пароля администратора SQL

Ротация секретов

Эти инструкции применяются только к SQL RP версии 1, работающей в интегрированных системах Azure Stack Hub.

При использовании поставщиков ресурсов SQL и MySQL с интегрированными системами Azure Stack Hub оператор Azure Stack Hub отвечает за смену следующих секретов инфраструктуры поставщика ресурсов, чтобы гарантировать, что срок действия не истекает:

  • Внешний SSL-сертификат , предоставляемый во время развертывания.
  • Пароль учетной записи локального администратора виртуальной машины поставщика ресурсов, предоставленный во время развертывания.
  • Пароль пользователя диагностики поставщика ресурсов (dbadapterdiag).
  • (версия >= 1.1.47.0) Сертификат Key Vault, созданный во время развертывания.

Примеры PowerShell для смены конфиденциальных данных

Важный

Для успешного смены секретов требуется удаление всех существующих версий модулей PowerShell Azure Stack Hub, прежде чем выполнять приведенный ниже скрипт.

сменить все секреты одновременно.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Изменить пароль пользователя диагностики.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Изменить пароль учетной записи локального администратора виртуальной машины.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

смена SSL-сертификата

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Обновление сертификата Key Vault

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

параметры SecretRotationSQLProvider.ps1

Параметр Описание Комментарий
AzureEnvironment Среда Azure учетной записи администратора службы, используемая для развертывания Azure Stack Hub. Требуется только для развертываний Microsoft Entra. Поддерживаемые имена сред — это AzureCloud, azureUSGovernmentили при использовании идентификатора Microsoft Entra в Китае AzureChinaCloud. Необязательный
AzCredential Учетные данные администратора службы Azure Stack Hub. Сценарий завершится ошибкой, если учетная запись, используемая с AzCredential, требует многофакторной проверки подлинности (MFA). Обязательный
CloudAdminCredential Учетные данные доменной учетной записи администратора облака Azure Stack Hub. Обязательный
ПривилегированнаяТочкаДоступа Привилегированная конечная точка для доступа к Get-AzureStackStampInformation. Обязательный
Пароль пользователя диагностики Пароль пользователя учетной записи диагностики. Необязательный
VMLocalCredential Учетная запись локального администратора на виртуальной машине MySQLAdapter. Необязательный
DefaultSSLCertificatePassword Пароль SSL-сертификата по умолчанию (*.pfx). Необязательный
Локальный путь к файлам зависимости Локальный путь к файлам зависимостей. Необязательный
KeyVaultPfxPassword Пароль, используемый для создания сертификата Key Vault для адаптера базы данных. Необязательный

Эти инструкции применяются только к SQL RP версии 2, работающей в интегрированных системах Azure Stack Hub.

Заметка

Смена секретов для поставщиков ресурсов добавления значений (RPS) в настоящее время поддерживается только с помощью PowerShell.

Как и инфраструктура Azure Stack Hub, поставщики ресурсов, добавляющие значения, используют как внутренние, так и внешние секреты. Как оператор, вы несете ответственность за:

  • Предоставление обновленных внешних секретов, таких как новый сертификат TLS, используемый для защиты конечных точек поставщика ресурсов.
  • Регулярное управление сменой секретов поставщика ресурсов.

При истечении срока действия секретов на портале администрирования создаются следующие оповещения. Завершение ротации секретов устраняет следующие оповещения:

  • Ожидание истечения срока действия внутреннего сертификата
  • Ожидание истечения срока действия внешнего сертификата

Необходимые условия

При подготовке к процессу смены:

  1. Если вы еще не сделали этого, Установите модуль PowerShell Az для Azure Stack Hub, прежде чем продолжить. Для смены секретов Azure Stack Hub требуется версия 2.0.2-preview или более поздней версии. Дополнительные сведения см. в статье Миграция из AzureRM в Azure PowerShell Az в Azure Stack Hub.

  2. Установка модулей Azs.Deployment.Admin 1.0.0: Галереи PowerShell | Azs.Deployment.Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Если срок действия внешнего сертификата подходит к концу, проверьте требования к сертификату инфраструктуры открытого ключа Azure Stack Hub (PKI), чтобы получить важную информацию о предварительных условиях перед получением/продлением вашего сертификата X509, включая информацию о необходимом формате PFX. Кроме того, ознакомьтесь с требованиями, указанными в разделе Необязательные сертификаты PaaS, для конкретного поставщика, добавляющего ценность.

Подготовка нового сертификата TLS для смены внешнего сертификата

Заметка

Если истек срок действия только внутреннего сертификата, этот раздел можно пропустить.

Затем создайте или обновите сертификат TLS для защиты конечных точек поставщика ресурсов с добавленной стоимостью.

  1. Выполните шаги из , чтобы сгенерировать запросы на подписывание сертификатов (CSR) для обновления сертификатов, для вашего поставщика ресурсов. Здесь вы используете средство проверки готовности Azure Stack Hub для создания CSR. Не забудьте выполнить правильный командлет для поставщика ресурсов на шаге "Создание запросов сертификатов для других служб Azure Stack Hub". Например, New-AzsDbAdapterCertificateSigningRequest используется для пакетов ресурсов SQL и MySQL. По завершении вы отправляете созданный файл .REQ в центр сертификации (ЦС) для получения нового сертификата.

  2. Получив файл сертификата из ЦС, выполните действия, описанные в подготовке сертификатов для развертывания или смены. Вы снова используете средство проверки готовности, чтобы обработать файл, возвращенный из центра сертификации.

  3. Наконец, завершите шаги, описанные в для проверки сертификатов PKI Azure Stack Hub. Средство проверки готовности используется еще раз для выполнения тестов проверки на новом сертификате.

Обновление внутреннего сертификата

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия, чтобы обновить внешние секреты поставщика ресурсов:

  1. Войдите в среду Azure Stack Hub с помощью учетных данных оператора. См. Подключение к Azure Stack Hub с помощью PowerShell для сценария входа в PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, такие как URL-адреса конечных точек и имя арендатора каталога.

  2. Определите идентификатор продукта поставщика ресурсов. Запустите командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите поставщика ресурсов, интересующего вас, и запишите значения для этих свойств:

    • "name" — содержит идентификатор продукта поставщика ресурсов во втором сегменте значения.

    Например, развертывание RP SQL может иметь идентификатор продукта "microsoft.sqlrp".

  3. Выполните командлет Invoke-AzsProductRotateSecretsAction, чтобы повернуть внутренний сертификат:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Повернуть внешний сертификат

Сначала необходимо записать значения следующих параметров.

Заполнитель Описание Пример значения
<product-id> Идентификатор продукта (ID) последнего развертывания поставщика ресурсов. microsoft.sqlrp
<installed-version> Версия последнего развертывания поставщика ресурсов. 2.0.0.2
<package-id> Идентификатор пакета создается путем объединения идентификатора продукта и установленной версии. microsoft.sqlrp.2.0.0.2
<cert-secret-name> Имя, в котором хранится секрет сертификата. SSLCert
<cert-pfx-file-path> Путь к PFX-файлу сертификата. C:\dir\dbadapter-cert-file.pfx
<pfx-password> Пароль, назначенный вашему сертификату в файл .PFX. strong@CertSecret6

Откройте консоль PowerShell с повышенными привилегиями и выполните следующие действия.

  1. Войдите в среду Azure Stack Hub с помощью учетных данных оператора. См. подключение к Azure Stack Hub с помощью PowerShell, для сценария входа в систему через PowerShell. Обязательно используйте командлеты PowerShell Az (вместо AzureRM) и замените все значения заполнителей, таких как URL-адреса конечных точек и имя арендатора каталога.

  2. Получите значение параметра product-id. Запустите командлет Get-AzsProductDeployment, чтобы получить список последних развертываний поставщика ресурсов. Возвращаемая коллекция "value" содержит элемент для каждого развернутого поставщика ресурсов. Найдите поставщика ресурсов, интересующего вас, и запишите значения для этих свойств:

    • "name" — содержит идентификатор продукта поставщика ресурсов во втором сегменте значения.
    • "properties"."deployment"."version" — содержит номер развернутой версии.

Например, развертывание RP SQL может иметь идентификатор продукта "microsoft.sqlrp"и версию "2.0.0.2".

  1. Создайте идентификатор пакета поставщика ресурсов, сцепляя идентификатор продукта поставщика ресурсов и версию. Например, используя значения, полученные на предыдущем шаге, идентификатор пакета SQL RP — microsoft.sqlrp.2.0.0.2.

  2. Используя идентификатор пакета, производный на предыдущем шаге, запустите Get-AzsProductSecret -PackageId, чтобы получить список типов секретов, используемых поставщиком ресурсов. В возвращаемой коллекции value найдите элемент, содержащий значение "Certificate" для свойства "properties"."secretKind". Этот элемент содержит свойства секрета сертификата RP. Запишите имя, назначенное этому секрету сертификата, которое определяется последним сегментом свойства "name", чуть выше "properties".

Например, коллекция секретов, возвращенная для SQL RP, содержит секрет "Certificate" с именем SSLCert.

  1. Используйте командлет Set-AzsProductSecret для импорта нового сертификата в Key Vault, который будет использоваться процессом ротации. Перед запуском скрипта замените значения переменных-заполнителей соответствующим образом.

    $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
    
  2. Наконец, используйте командлет Invoke-AzsProductRotateSecretsAction для смены секретов:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Следите за ходом смены секретов

Вы можете отслеживать ход смены секретов в консоли PowerShell или на портале администрирования, выбрав поставщика ресурсов в службе Marketplace:

Экран в процессе секретного вращения.

Заметка

Время ротации секретов может занимать более 10 минут. После этого состояние поставщика ресурсов изменится на "Установлено".

Сбор журналов диагностики

Azure Stack Hub имеет несколько способов сбора, сохранения и отправки журналов диагностики в службу поддержки Майкрософт. Начиная с версии 1.1.93 поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Дополнительные сведения см. в коллекции журналов диагностики.

Начиная с версии 1.1.93 поставщик ресурсов SQL поддерживает стандартный способ сбора журналов из среды Azure Stack Hub. Если вы используете более раннюю версию, рекомендуется обновить поставщика ресурсов SQL до последней версии.

Чтобы собирать журналы из заблокированной виртуальной машины, используйте конечную точку PowerShell Just Enough Administration (JEA) DBAdapterDiagnostics. Эта конечная точка предоставляет следующие команды:

  • Get-AzsDBAdapterLog. Эта команда создает zip-пакет журналов диагностики поставщика ресурсов и сохраняет файл на диске пользователя сеанса. Выполнение этой команды без параметров позволяет собрать журналы за последние четыре часа.
  • Remove-AzsDBAdapterLog. Эта команда удаляет существующие пакеты журналов на виртуальной машине поставщика ресурсов.

Требования к конечной точке и процесс

При установке или обновлении поставщика ресурсов создается учетная запись пользователя dbadapterdiag. Эта учетная запись будет использоваться для сбора журналов диагностики.

Заметка

Пароль учетной записи dbadapterdiag совпадает с паролем, используемым для локального администратора на виртуальной машине, созданной во время развертывания или обновления поставщика.

Чтобы использовать команды DBAdapterDiagnostics, создайте удаленный сеанс PowerShell для виртуальной машины поставщика ресурсов и выполните команду Get-AzsDBAdapterLog.

Вы задаете интервал времени для сбора журналов с помощью fromDate и параметров ToDate. Если вы не укажете один или оба из этих параметров, используются следующие значения по умолчанию:

  • FromDate составляет четыре часа до текущего времени.
  • ToDate — это текущее время.

пример скрипта PowerShell для сбора журналов

В следующем сценарии показано, как собирать журналы диагностики с виртуальной машины поставщика ресурсов.

# 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

Известные ограничения поставщика ресурсов SQL Server версии 1

Ограничение:
При сбое развертывания, обновления или сценария смены секретов некоторые журналы не могут собираться стандартным механизмом сбора журналов.

обходное решение:
Помимо использования стандартного механизма сбора журналов, перейдите в папку Logs в извлеченной папке, где находится скрипт, чтобы найти дополнительные журналы.

Дальнейшие действия

Добавление серверов размещения SQL Server