Aracılığıyla paylaş


Azure Arc müşteri tarafından yönetilen anahtar sekmesi tarafından etkinleştirilen SQL Yönetilen Örneği döndürme

Bu makalede, Azure Arc tarafından etkinleştirilen SQL Yönetilen Örneği için müşteri tarafından yönetilen tuş sekmelerinin nasıl döndürüldiği açıklanmaktadır. Bu tuş sekmeleri yönetilen örnekte Active Directory oturum açmalarını etkinleştirmek için kullanılır.

Ön koşullar:

Bu makaleye devam etmeden önce, müşteri tarafından yönetilen anahtar sekmesi modunda bir Active Directory bağlayıcınız ve Azure Arc tarafından etkinleştirilmiş bir SQL Yönetilen Örneği oluşturmanız gerekir.

Yönetilen örnekte müşteri tarafından yönetilen tuş sekmelerini döndürme

Tuş sekmesini döndürmek için aşağıdaki adımların izlenmesi gerekir:

  1. SQL MI Active Directory hesabı için geçerli kimlik bilgileri nesli için değer alın kvno .
  2. Geçerli kimlik bilgileri nesli için girdilerle yeni bir anahtar sekmesi dosyası oluşturun. Özellikle, kvno değer yukarıdaki adımdan (1.) eşleşmelidir.
  3. Yeni anahtar sekmesi dosyasını SQL MI Active Directory hesabı için yeni kimlik bilgileri için yeni girdilerle güncelleştirin.
  4. Yeni anahtar sekmesi dosya içeriğini SQL MI ile aynı ad alanında tutan bir kubernetes gizli dizisi oluşturun.
  5. Active Directory anahtar sekmesi gizli dizisi ayarını bu yeni gizli diziye işaret etmek için SQL MI belirtimini düzenleyin.
  6. Active Directory etki alanındaki parolayı değiştirin.

Sizin için 1-5 arası adımları gerçekleştirecek aşağıdaki PowerShell ve bash betiklerini sağladık:

  • rotate-sqlmi-keytab.sh- Bu bash betiği, sizin için yeni anahtar sekmesini oluşturmak için veya adutil (bayrak belirtilirse--use-adutil) kullanırktutil.
  • rotate-sqlmi-keytab.ps1 - Bu PowerShell betiği, sizin için yeni anahtar sekmesini oluşturmak için kullanır ktpass.exe .

Yukarıdaki betiğin yürütülmesi, kullanıcı arcsqlmi@CONTOSO.COM, gizli sqlmi-keytab-secret-kvno-2-3 dizi ve ad alanı testiçin aşağıdaki anahtar sekmesi dosyasına neden olur:

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)

Ve aşağıdaki updated-secret.yaml belirtimi:

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

Son olarak, Active Directory contoso.cometki alanının etki alanı denetleyicisindeki kullanıcı hesabının parolasını arcsqlmi değiştirin:

  1. Active Directory contoso.cometki alanının etki alanı denetleyicisinde Sunucu Yöneticisi açın. Sunucu Yöneticisi arayabilir veya Başlat menüsü aracılığıyla açabilirsiniz.

  2. Araçlar'a >gidin Active Directory Kullanıcıları ve Bilgisayarları

    Active Directory Kullanıcıları ve Bilgisayarları ekran görüntüsü.

  3. Parolasını değiştirmek istediğiniz kullanıcıyı seçin. Kullanıcıyı seçmek için sağ tıklayın. Parolayı sıfırla'yı seçin:

    Active Directory kullanıcı hesabının parolasını sıfırlama denetiminin ekran görüntüsü.

  4. Yeni parola girin ve öğesini seçin OK.

Döndürme sonrasındaki hataları giderme

Anahtar sekmesi döndürme tamamlandıktan sonra Active Directory Kimlik Doğrulaması'nı kullanmaya çalışırken hatalar olması durumunda, SQL MI pod'unda arc-sqlmi kapsayıcıdaki aşağıdaki dosyalar kök nedeni araştırmaya başlamak için iyi bir yerdir:

  • security.log konumundaki /var/opt/mssql/log dosya - Bu günlük dosyasında, SQL'in Active Directory etki alanıyla etkileşimleri için günlükler bulunur.
  • errorlog konumundaki /var/opt/mssql/log dosya - Bu günlük dosyası kapsayıcıda çalışan SQL Server günlüklerini içerir.
  • mssql.keytab konumundaki /var/run/secrets/managed/keytabs/mssql dosya - Bu anahtar sekmesi dosyasının yeni güncelleştirilen girdileri içerdiğini ve yukarıda sağlanan betikler kullanılarak oluşturulan anahtar sekmesi dosyasıyla eşleştiklerini doğrulayın. Tuş sekmesi dosyası, örneğin komutu kullanılarak klist okunabilir. klist -k mssql.keytab -e

Ayrıca, komutunu kullanarak kinit kerberos Anahtar Verme Anahtarını (TGT) aldıktan sonra SQL kullanıcısının kapsayıcıdaki dosyadaki arc-sqlmi mssql.keytab en kvno yüksek değerle eşleşip eşleşmediği de doğrulanıyorkvno. Örneğin, kullanıcı için arcsqlmi@CONTOSO.COM :

  • komutunu çalıştırarak kinit arcsqlmi@CONTOSO.COMActive Directory etki alanından kerberos TGT'sini alın. Bu işlem, kullanıcı parolası arcsqlmi için bir kullanıcı girişi ister.
  • Bu başarılı olduktan sonra, kvno çalıştırılarak kvno arcsqlmi@CONTOSO.COMsorgulanabilir.

Aşağıdaki komutu çalıştırarak komutu için kinit hata ayıklama günlüğünü de etkinleştirebiliriz: KRB5_TRACE=/dev/stdout kinit -V arcsqlmi@CONTOSO.COM. Bu, ayrıntı düzeyini artırır ve komut yürütülürken günlükleri stdout'a aktarır.