Obměna spravované instance SQL povolené pomocí klíče spravovaného zákazníkem Azure Arc

Tento článek popisuje, jak obměňovat klíče spravované zákazníkem pro službu SQL Managed Instance povolenou službou Azure Arc. Tyto klávesové zkratky slouží k povolení přihlášení ke službě Active Directory pro spravovanou instanci.

Požadavky:

Než budete pokračovat v tomto článku, musíte mít konektor služby Active Directory v režimu keytab spravované zákazníkem a spravovanou instanci SQL povolenou vytvořenou službou Azure Arc.

Obměna klíčových tabulek spravovaných zákazníkem ve spravované instanci

Pokud chcete otočit klávesu, je potřeba postupovat podle následujících kroků:

  1. Získejte kvno hodnotu pro aktuální generování přihlašovacích údajů pro účet služby SQL MI Active Directory.
  2. Vytvořte nový soubor keytab s položkami pro aktuální generování přihlašovacích údajů. kvno Konkrétně by se hodnota měla shodovat z kroku (1.) výše.
  3. Aktualizujte nový soubor keytab s novými položkami pro nové přihlašovací údaje pro účet SLUŽBY SQL MI Active Directory.
  4. Vytvořte tajný klíč Kubernetes, který obsahuje obsah nového souboru keytab ve stejném oboru názvů jako SQL MI.
  5. Upravte specifikaci SQL MI tak, aby odkazovalo nastavení tajného klíče služby Active Directory na tento nový tajný klíč.
  6. Změňte heslo v doméně služby Active Directory.

Poskytli jsme následující skripty PowerShellu a Bash, které se postará o kroky 1–5 za vás:

  • rotate-sqlmi-keytab.sh - Tento skript Bash používá ktutil nebo adutil (pokud --use-adutil je příznak zadán) k vygenerování nové klávesové zkratky za vás.
  • rotate-sqlmi-keytab.ps1 – Tento skript PowerShellu používá ktpass.exe k vygenerování nové klávesové zkratky za vás.

Spuštění výše uvedeného skriptu by vedlo k následujícímu souboru keytab pro uživatele arcsqlmi@CONTOSO.COM, tajný klíč sqlmi-keytab-secret-kvno-2-3 a obor názvů 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)

A následující aktualizovaná specifikace-secret.yaml:

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

Nakonec změňte heslo pro arcsqlmi uživatelský účet v řadiči domény pro doménu contoso.comslužby Active Directory:

  1. Otevřete Správce serveru na řadiči domény pro doménu contoso.comslužby Active Directory . Můžete vyhledat Správce serveru nebo ho otevřít prostřednictvím nabídka Start.

  2. Přejděte na Nástroje> Uživatelé a počítače služby Active Directory

    Screenshot of Active Directory Users and Computers.

  3. Vyberte uživatele, pro kterého chcete změnit heslo. Kliknutím pravým tlačítkem myši vyberte uživatele. Vyberte Resetovat heslo:

    Screenshot of the control to reset the password for an Active Directory user account.

  4. Zadejte nové heslo a vyberte OK.

Řešení chyb po obměně

V případě chyb při pokusu o použití ověřování active directory po dokončení obměně keytab jsou v arc-sqlmi kontejneru podu SQL MI vhodné začít zkoumat původní příčinu:

  • security.log soubor umístěný na /var/opt/mssql/log adrese – Tento soubor protokolu obsahuje protokoly pro interakce SQL s doménou služby Active Directory.
  • errorlog soubor umístěný v /var/opt/mssql/log umístění – Tento soubor protokolu obsahuje protokoly z SQL Serveru spuštěného v kontejneru.
  • mssql.keytab soubor umístěný na /var/run/secrets/managed/keytabs/mssql adrese - Ověřte, že tento soubor keytab obsahuje nově aktualizované položky a odpovídá souboru keytab vytvořenému pomocí výše uvedených skriptů. Soubor keytab lze přečíst pomocí klist příkazu, tj. klist -k mssql.keytab -e

Kromě toho po získání lístku lístku kerberos (TGT) pomocí kinit příkazu ověřte, že kvno uživatel SQL odpovídá nejvyšší kvno hodnotě v mssql.keytab souboru v kontejneru arc-sqlmi . Například pro arcsqlmi@CONTOSO.COM uživatele:

  • Spuštěním příkazu kinit arcsqlmi@CONTOSO.COMarcsqlmi
  • Po úspěšném dokončení je možné dotazovat kvno spuštěním kvno arcsqlmi@CONTOSO.COMpříkazu .

Protokolování ladění pro kinit příkaz můžeme také povolit spuštěním následujícího příkazu: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. Tím se zvýší úroveň podrobností a vypíše se protokoly do stdoutu při spuštění příkazu.