Смена Управляемый экземпляр SQL, включенная ключом, управляемым клиентом Azure Arc
В этой статье описывается, как повернуть управляемые клиентом ключи для Управляемый экземпляр SQL включенных Azure Arc. Эти ключи используются для включения имен входа Active Directory для управляемого экземпляра.
Необходимые условия:
Прежде чем продолжить работу с этой статьей, необходимо иметь соединитель Active Directory в режиме ключей, управляемом клиентом, и Управляемый экземпляр SQL, включенный с помощью Azure Arc.
- Развертывание соединителя Active Directory, управляемого клиентом,
- Развертывание и подключение Управляемый экземпляр SQL, включенной Azure Arc
Смена ключей, управляемых клиентом, в управляемом экземпляре
Для смены ключа необходимо выполнить следующие действия.
- Получите
kvno
значение для текущего поколения учетных данных для учетной записи SQL MI Active Directory. - Создайте файл keytab с записями для текущего поколения учетных данных. В частности,
kvno
значение должно соответствовать из шага (1.) выше. - Обновите новый файл keytab с новыми записями для новых учетных данных для учетной записи SQL MI Active Directory.
- Создайте секрет Kubernetes, содержащий новое содержимое файла keytab в том же пространстве имен, что и SQL MI.
- Измените спецификацию SQL MI, чтобы указать параметр секрета keytab Active Directory в этот новый секрет.
- Измените пароль в домене 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
:
Откройте диспетчер сервера на контроллере домена Для домена
contoso.com
Active Directory. Вы можете выполнить поиск диспетчер сервера или открыть его с помощью меню .Перейдите к средствам> Пользователи и компьютеры Active Directory
Выберите пользователя, для которого нужно изменить пароль. Щелкните правой кнопкой мыши, чтобы выбрать пользователя. Выберите "Сбросить пароль":
Введите новый пароль и выберите
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 по мере выполнения команды.