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


Смена Управляемый экземпляр SQL, включенная ключом, управляемым клиентом Azure Arc

В этой статье описывается, как повернуть управляемые клиентом ключи для Управляемый экземпляр SQL включенных Azure Arc. Эти ключи используются для включения имен входа Active Directory для управляемого экземпляра.

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

Прежде чем продолжить работу с этой статьей, необходимо иметь соединитель Active Directory в режиме ключей, управляемом клиентом, и Управляемый экземпляр SQL, включенный с помощью Azure Arc.

Смена ключей, управляемых клиентом, в управляемом экземпляре

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

  1. Получите kvno значение для текущего поколения учетных данных для учетной записи SQL MI Active Directory.
  2. Создайте файл keytab с записями для текущего поколения учетных данных. В частности, kvno значение должно соответствовать из шага (1.) выше.
  3. Обновите новый файл keytab с новыми записями для новых учетных данных для учетной записи SQL MI Active Directory.
  4. Создайте секрет Kubernetes, содержащий новое содержимое файла keytab в том же пространстве имен, что и SQL MI.
  5. Измените спецификацию SQL MI, чтобы указать параметр секрета keytab Active Directory в этот новый секрет.
  6. Измените пароль в домене Active Directory.

Мы предоставили следующие скрипты PowerShell и bash, которые будут выполнять шаги 1-5.

  • rotate-sqlmi-keytab.sh — Этот скрипт bash использует ktutil или adutil (если --use-adutil флаг указан) для создания нового ключа.
  • rotate-sqlmi-keytab.ps1 — Этот скрипт PowerShell используется ktpass.exe для создания нового ключа.

Выполнение приведенного выше скрипта приведет к следующему файлу keytab для пользователя arcsqlmi@CONTOSO.COM, секрета sqlmi-keytab-secret-kvno-2-3 и пространства testимен:

KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 arcsqlmiuser@CONTOSO.COM (arcfour-hmac) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   2 02/16/2023 17:12:05 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 arcsqlmiuser@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com@CONTOSO.COM (arcfour-hmac) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 
   3 02/16/2023 17:13:41 MSSQLSvc/arcsqlmi.contoso.com:31433@CONTOSO.COM (arcfour-hmac)

И следующая обновленная спецификация secret.yaml:

apiVersion: v1
kind: Secret
type: Opaque
metadata:
  name: sqlmi-keytab-secret-kvno-2-3
  namespace: test
data:
  keytab:
    <keytab-contents>

Наконец, измените пароль учетной arcsqlmi записи пользователя в контроллере домена Active Directory contoso.com:

  1. Откройте диспетчер сервера на контроллере домена Для домена contoso.comActive Directory. Вы можете выполнить поиск диспетчер сервера или открыть его с помощью меню .

  2. Перейдите к средствам> Пользователи и компьютеры Active Directory

    Снимок экрана: Пользователи и компьютеры Active Directory.

  3. Выберите пользователя, для которого нужно изменить пароль. Щелкните правой кнопкой мыши, чтобы выбрать пользователя. Выберите "Сбросить пароль":

    Снимок экрана: элемент управления для сброса пароля для учетной записи пользователя Active Directory.

  4. Введите новый пароль и выберите OK.

Устранение ошибок после смены

В случае возникновения ошибок при попытке использовать проверку подлинности Active Directory после завершения смены ключей в контейнере в arc-sqlmi модуле SQL MI рекомендуется начать изучение первопричины:

  • security.log Файл, расположенный /var/opt/mssql/log в этом файле журнала, содержит журналы взаимодействия SQL с доменом Active Directory.
  • errorlog файл, расположенный /var/opt/mssql/log в файле журнала. Этот файл журнала содержит журналы из SQL Server, работающего в контейнере.
  • mssql.keytab Файл, расположенный /var/run/secrets/managed/keytabs/mssql по адресу — убедитесь, что этот файл keytab содержит только что обновленные записи и соответствует файлу keytab, созданному с помощью приведенных выше скриптов. Файл keytab можно считывать с помощью klist команды, т. е. klist -k mssql.keytab -e

Кроме того, после получения билета kerberos Ticket-Granting (TGT) с помощью команды убедитесьkvno, что пользователь SQL соответствует самому высокому kvno в mssql.keytab файле в контейнереarc-sqlmi.kinit Например, для arcsqlmi@CONTOSO.COM пользователя:

  • Получите kerberos TGT из домена Active Directory, выполнив команду kinit arcsqlmi@CONTOSO.COM. При этом пользователю будет предложено ввести пароль для arcsqlmi пользователя.
  • После успешного kvno выполнения запрос можно запросить, выполнив команду kvno arcsqlmi@CONTOSO.COM.

Мы также можем включить ведение журнала отладки kinit для команды, выполнив следующую команду: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM Это увеличивает детализацию и выводит журналы на stdout по мере выполнения команды.