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.
- Müşteri tarafından yönetilen bir anahtar sekmesi active directory bağlayıcısı dağıtma
- Azure Arc tarafından etkinleştirilen bir SQL Yönetilen Örneği dağıtma ve bağlama
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:
- SQL MI Active Directory hesabı için geçerli kimlik bilgileri nesli için değer alın
kvno
. - 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. - Yeni anahtar sekmesi dosyasını SQL MI Active Directory hesabı için yeni kimlik bilgileri için yeni girdilerle güncelleştirin.
- Yeni anahtar sekmesi dosya içeriğini SQL MI ile aynı ad alanında tutan bir kubernetes gizli dizisi oluşturun.
- Active Directory anahtar sekmesi gizli dizisi ayarını bu yeni gizli diziye işaret etmek için SQL MI belirtimini düzenleyin.
- 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 veyaadutil
(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ırktpass.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ı test
iç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.com
etki alanının etki alanı denetleyicisindeki kullanıcı hesabının parolasını arcsqlmi
değiştirin:
Active Directory
contoso.com
etki 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.Araçlar'a >gidin Active Directory Kullanıcıları ve Bilgisayarları
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:
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ılarakklist
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.COM
Active 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ılarakkvno arcsqlmi@CONTOSO.COM
sorgulanabilir.
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.