Aracılığıyla paylaş


Azure Key Vault kullanarak SQL Server TDE Genişletilebilir Anahtar Yönetimi'nin ayarlanması

Şunlar için geçerlidir: SQL Server

Bu makalede, Azure Key Vault için SQL Server Bağlayıcısı'nı yükleyip yapılandıracaksınız.

Uyarı

Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.

Azure Key Vault (AKV) kullanılarak genişletilebilir Anahtar Yönetimi, SQL Server 2022 (16.x) Toplu Güncelleştirme 12'den başlayarak Linux ortamlarında SQL Server için kullanılabilir. Aynı yönergeleri izleyin, ancak 3. ve 4. adımları atlayın.

Önkoşullar

SQL Server örneğinizle Azure Key Vault kullanmaya başlamadan önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

Uyarı

SQL Server 2022 (16.x) CU 14 ve sonraki sürümlerde, Linux üzerindeki SQL Server, Azure Key Vault ile TDE Genişletilebilir Anahtar Yönetimi'ni destekler. Bu kılavuzdaki 3. ve 4. adımlar Linux üzerinde SQL Server için gerekli değildir.

1. Adım: Microsoft Entra hizmet sorumlusu ayarlama

SQL Server örneğinize Azure anahtar kasanıza erişim izinleri vermek için Microsoft Entra Id'de bir hizmet sorumlusu hesabına ihtiyacınız vardır.

  1. Azure portalında oturum açın ve aşağıdakilerden birini yapın:

    • Microsoft Entra Id düğmesini seçin.

      Azure hizmetleri bölmesinin ekran görüntüsü.

    • Diğer hizmetler'i seçin ve ardından Tüm hizmetler bölmesinde Microsoft Entra Id yazın.

  2. Aşağıdakileri yaparak bir uygulamayı Microsoft Entra ID'ye kaydedin. Ayrıntılı adım adım yönergeler için Azure Key Vault – Adım Adım blog gönderisinin Uygulama için kimlik alma bölümüne bakın.

    1. Microsoft Entra Id kaynağınızın Yönet bölümünde Uygulama kayıtları'nı seçin.

      Azure portalında Microsoft Entra Id Genel Bakış sayfasının ekran görüntüsü.

    2. Uygulama kayıtları sayfasında Yeni kayıt'ı seçin.

      Azure portalındaki Uygulama kayıtları bölmesinin ekran görüntüsü.

    3. Uygulamayı kaydet bölmesinde, uygulamanın kullanıcıya yönelik adını girin ve Kaydet'i seçin.

      Uygulama kaydetme bölmesinin ekran görüntüsü.

    4. Sol bölmede Sertifikalar ve gizli diziler > İstemci gizli dizileri > Yeni istemci gizli dizisi'ni seçin.

      Azure portalında Uygulamanın Sertifikalar ve gizli diziler bölmesinin ekran görüntüsü.

    5. İstemci gizli anahtarı ekleme altında bir açıklama ve uygun bir son kullanma tarihi girin ve ardından Ekle seçeneğini seçin. 24 aydan uzun bir süre sonu seçemezsiniz. Daha fazla bilgi için bkz. İstemci gizli dizisi ekleme.

      Azure portalında Uygulama için istemci sırrı ekleme bölümünün ekran görüntüsü.

    6. Sertifikalar ve gizli diziler bölmesindeki Değer'in altında, SQL Server'da asimetrik anahtar oluşturmak için kullanılacak istemci gizli dizisinin değerinin yanındaki Kopyala düğmesini seçin.

      Azure portalındaki gizli değerin ekran görüntüsü.

    7. Sol bölmede Genel Bakış'ı seçin ve uygulama (istemci) kimliği kutusunda SQL Server'da asimetrik anahtar oluşturmak için kullanılacak değeri kopyalayın.

      Genel Bakış bölmesindeki Uygulama (istemci) Kimliği değerinin ekran görüntüsü.

2. Adım: Anahtar kasası oluştur

Anahtar kasası oluşturmak için kullanmak istediğiniz yöntemi seçin.

Uyarı

Yalnızca Azure Key Vault ve Azure Key Vault Yönetilen HSM desteklenir. Azure Cloud HSM desteklenmez.

Azure portalını kullanarak anahtar kasası oluşturma

Anahtar kasasını oluşturmak ve ardından buna bir Microsoft Entra sorumlusu eklemek için Azure portalını kullanabilirsiniz.

  1. Bir kaynak grubu oluşturun.

    Azure portalı aracılığıyla oluşturduğunuz tüm Azure kaynakları, anahtar kasanızı barındıracak şekilde oluşturduğunuz bir kaynak grubunda yer almalıdır. Bu örnekteki kaynak adı DocsSampleRG'dir. Tüm anahtar kasası adlarının genel olarak benzersiz olması gerektiğinden kendi kaynak grubunuzu ve anahtar kasası adınızı seçin.

    Kaynak grubu oluştur bölmesindeki Proje ayrıntıları'nın altında değerleri girin ve gözden geçir ve oluştur'u seçin.

    Azure portalında Kaynak grubu oluştur bölmesinin ekran görüntüsü.

  2. Azure portalında bir anahtar kasası oluşturmak için Anahtar kasası hizmetlerini arayın veya seçin. Oluştur'i seçin.

    Anahtar kasası oluştur bölmesinde Temel Bilgiler sekmesini seçin. Sekme için uygun değerleri girin. Temizleme korumasını etkinleştirmenizi de öneririz.

    Azure portalında Anahtar kasası oluştur bölmesinin ekran görüntüsü.

  3. Erişim yapılandırması sekmesinde Azure rol tabanlı erişim denetimi veya Kasa erişim ilkesi seçeneğini belirleyebilirsiniz. Her iki seçeneğin üzerinden geçeriz, ancak Azure rol tabanlı erişim denetimi seçeneği önerilir. Daha fazla bilgi için bkz. Access modeline genel bakış.

    Azure portalında Anahtar kasası oluştur bölmesinin ve Erişim yapılandırması sekmesinin ekran görüntüsü.

  4. sekmesini varsayılan olarak bırakabilir veya anahtar kasası için ağ ayarlarını yapılandırabilirsiniz. Anahtar kasasıyla bir güvenlik duvarı kullanıyorsanız, özel uç nokta bağlantıları kullanmıyorsanız Güvenilen Microsoft hizmetlerinin güvenlik duvarını atlamasına izin ver seçeneği etkinleştirilmelidir. Daha fazla bilgi için bkz . Azure Key Vault güvenlik duvarlarını ve sanal ağları yapılandırma.

  5. Gözden geçir + oluştur'u seçin ve anahtar kasasını oluşturun.

Azure rol tabanlı erişim denetimi

Önerilen yöntem, anahtar kasasına izin atamak için Azure rol tabanlı erişim denetimi (RBAC) kullanmaktır. Bu yöntem, kullanıcılara, gruplara ve uygulamalara daha ayrıntılı bir düzeyde izin atamanızı sağlar. Anahtar kasasına izinleri yönetim düzleminde (Azure rol atamaları) ve veri düzleminde (anahtar kasası erişim ilkeleri) atayabilirsiniz. Yalnızca erişim ilkesini kullanabiliyorsanız, bu bölümü atlayabilir ve Kasa erişim ilkesi bölümüne gidebilirsiniz. Azure Key Vault RBAC izinleri hakkında daha fazla bilgi için bkz. Key Vault veri düzlemi işlemleri için Azure yerleşik rolleri.

  1. Oluşturduğunuz anahtar kasası kaynağına gidin ve Erişim denetimi (IAM) ayarını seçin.

  2. Ekle>Rol ataması ekle’yi seçin.

    Azure portalındaki Erişim denetimi (IAM) bölmesindeki Rol ataması ekle düğmesinin ekran görüntüsü.

  3. EKM uygulamasının sarmalama ve açma işlemlerini gerçekleştirmek için Key Vault Şifreleme Hizmeti Şifreleme Kullanıcı rolüne ihtiyacı vardır. Key Vault Crypto Service Şifreleme Kullanıcı Rolü'nü arayın ve rolü seçin. sonrakiseçin.

    Azure portalında rol ataması seçme işleminin ekran görüntüsü.

  4. Üyeler sekmesinde Üyeleri seç seçeneğini belirleyin ve 1. Adımda oluşturduğunuz Microsoft Entra uygulamasını arayın. Uygulamayı ve ardından Seç düğmesini seçin .

    Azure portalında rol ataması eklemek için Üyeleri seç bölmesinin ekran görüntüsü.

  5. Rol atamasını tamamlamak için Gözden geçir + ata iki kez seçin.

  6. Anahtarı oluşturan kullanıcının Key Vault Yönetici rolüne ihtiyacı vardır. Key Vault Yöneticisi'ni arayın ve rolü seçin. sonrakiseçin.

  7. Önceki adımlarda olduğu gibi anahtarı oluşturan üyeyi ekleyin ve rolü atayın.

Kasa erişim ilkesi

Uyarı

Azure rol tabanlı erişim denetimi seçeneğini kullanıyorsanız bu bölümü atlayabilirsiniz. İzin modelini değiştiriyorsanız, anahtar kasasının Access yapılandırma menüsüne giderek bunu yapabilirsiniz. Anahtar kasasını yönetmek için gerekli izinlere sahip olduğunuzdan emin olun. Daha fazla bilgi için bkz . Key Vault'ta Azure RBAC izinlerini etkinleştirme.

  1. Erişim yapılandırması sekmesinde Kasa erişim ilkesi'ni seçin. Mevcut bir Anahtar kasası kullanıyorsanız, Anahtar kasası kaynağından Erişim ilkeleri menüsünü ve ardından Oluştur'u seçebilirsiniz.

  2. Erişim ilkesi oluştur bölmesinde Anahtar Yönetimi İşlemleri seçeneklerinden İzinleri Al ve Listele'yi seçin. Şifreleme İşlemleri seçeneklerinden Anahtar Çöz ve Anahtar Sar izinlerini seçin. İleri'yi seçin

    Erişim ilkeleri bölmesindeki Erişim İlkesi Ekle bağlantısının ekran görüntüsü.

  3. Sorumlu sekmesinde, 1. Adımda oluşturulan uygulamayı seçin.

    Sorumlu bölmesindeki uygulama arama kutusunun ekran görüntüsü.

  4. İleri'yi ve ardından Oluştur'u seçin.

Anahtar oluşturma

  1. Key Vault bölmesinde Anahtarlar'ı ve ardından Oluştur/İçeri Aktar seçeneğini belirleyin. Bu işlem Anahtar oluştur bölmesini açar. Bir anahtar kasası adı girin. Oluştur seçeneğini belirleyin ve anahtar için bir ad girin. SQL Server Bağlayıcısı anahtar adının yalnızca 26 karakter sınırı olan "a-z", "A-Z", "0-9" ve "-" karakterlerini kullanmasını gerektirir.

  2. Anahtar türü RSA ve RSA anahtar boyutunu2048 olarak kullanın. EKM şu anda yalnızca RSA anahtarını destekler. Etkinleştirme ve son kullanma tarihlerini uygun olarak, Etkin'ide Evet olarak ayarlayın.

    Anahtar Oluştur bölmesinin ekran görüntüsü.

En iyi yöntemler

Hızlı anahtar kurtarmayı sağlamak ve Verilerinize Azure dışından erişebilmek için aşağıdaki en iyi yöntemleri öneririz:

  • Şifreleme anahtarınızı yerel donanım güvenlik modülü (HSM) cihazında yerel olarak oluşturun. SQL Server tarafından desteklenmesi için asimetrik bir RSA 2048 veya 3072 anahtarı kullandığınızdan emin olun.

  • Şifreleme anahtarını Azure anahtar kasanıza aktarın. Bu işlem sonraki bölümlerde açıklanmıştır.

  • Anahtarı Azure anahtar kasanızda ilk kez kullanmadan önce PowerShell cmdlet'ini kullanarak bir Azure anahtar kasası anahtar yedeklemesi Backup-AzureKeyVaultKey yapın.

  • Anahtarda her değişiklik yaptığınızda (örneğin, ACL'ler, etiketler veya anahtar öznitelikleri ekleme), başka bir Azure anahtar kasası anahtar yedeklemesi yaptığınızdan emin olun.

    Uyarı

    Anahtarı yedeklemek, herhangi bir yere kaydedilebilen bir dosya döndüren bir Azure Key Vault anahtar işlemidir.

    Azure Key Vault için SQL Server Bağlayıcısı'nın bir güvenlik duvarının veya ara sunucunun arkasında kullanılması, trafik gecikirse veya engellenirse performansı etkileyebilir. Doğru kuralların uygulandığından emin olmak için güvenlik duvarının arkasındaki Access Azure Key Vault hakkında bilgi sahibi olun.

İsteğe bağlı - Azure Key Vault Yönetilen HSM'yi yapılandırma (Donanım Güvenlik Modülü)

Azure Key Vault Yönetilen HSM (Donanım Güvenlik Modülü), en son sürümü kullanıldığında SQL Server Bağlayıcısı için ve Azure Sanal Makineler üzerindeki SQL Server, ayrıca Azure SQL ile uyumludur. Yönetilen HSM, tam olarak yönetilen, yüksek oranda kullanılabilir, tek kiracılı bir HSM hizmetidir. Yönetilen HSM, şifreleme işlemleri ve anahtar depolama için güvenli bir temel sağlar. Yönetilen HSM, en sıkı güvenlik ve uyumluluk gereksinimlerini karşılayacak şekilde tasarlanmıştır.

2. adımda Azure Key Vault'ta anahtar kasası ve anahtar oluşturmayı öğrendik. İsteğe bağlı olarak, SQL Server Bağlayıcısı ile kullanılacak bir anahtarı depolamak veya oluşturmak için Azure Key Vault Yönetilen HSM kullanabilirsiniz. Adımlar aşağıdaki gibidir:

  1. Azure Key Vault için Yönetilen HSM oluşturun. Bu, Azure Key Vault Yönetilen HSM hizmetini arayarak ve yeni kaynak oluşturarak ya da Azure CLI, PowerShell veya ARM şablonu kullanılarak Azure portalı kullanılarak yapılabilir.

  2. Yönetilen HSM'yi etkinleştirin. HSM'yi yalnızca Yönetilen HSM oluşturma sırasında atanan yöneticiler etkinleştirebilir. Bu, kaynağın Genel Bakış menüsünde Güvenlik Etki Alanını İndir'i seçerek Azure portalında Yönetilen HSM kaynağı seçilerek yapılabilir. Ardından, Yönetilen HSM'nizi etkinleştirmek için hızlı başlangıçlardan birini izleyin.

  3. Yönetilen HSM'ye erişmek için Microsoft Entra hizmet sorumlusuna izin verin. Yönetilen HSM Yöneticisi rolü anahtar oluşturma izni vermez. 2. adıma benzer şekilde, EKM uygulamasının sarmalama ve kaldırma işlemlerini gerçekleştirmek için Yönetilen HSM Şifreleme Kullanıcısı veya Yönetilen HSM Şifreleme Hizmeti Şifreleme Kullanıcısı rolüne ihtiyacı vardır. Rol atamasının sorumlusunu eklerken Kurumsal uygulama türünü seçin. Daha fazla bilgi için bkz. Yönetilen HSM için yerel RBAC yerleşik rolleri.

  4. Azure Key Vault Yönetilen HSM hizmeti menüsünde, Ayarlar altında Anahtarlar seçeneğini seçin. Anahtarlar penceresinde Bir anahtar oluşturmak veya var olan bir anahtarı içeri aktarmak için Yedekleme Oluştur/İçeri/Geri Yükle'yi seçin.

    Uyarı

    Yönetilen HSM'ye erişmek için bir kimlik bilgisi oluştururken kimlik <name of Managed HSM>.managedhsm.azure.net olur. Bu kimlik, Azure portalındaki Azure Key Vault Yönetilen HSM Genel Bakış kısmında HSM URI olarak bulunabilir.

    Algoritma RSA-HSM_2048 ve RSA-HSM_3072 SQL Server 2022 (16.x) Toplu Güncelleştirme 13'te başlayarak desteklenir.

    Azure Key Vault Yönetilen HSM'de otomatik anahtar döndürme desteklenir. Daha fazla bilgi için bkz. Azure Yönetilen HSM'de anahtar otomatik döndürmeyi yapılandırma.

    Azure Key Vault Yönetilen HSM'yi desteklemek için SQL Server Bağlayıcısı sürüm 15.0.2000.440 veya üzeri gereklidir.

    Yönetilen HSM özel uç nokta bağlantılarını destekler. Daha fazla bilgi için bkz. Yönetilen HSM'yi Azure Özel Bağlantı ile tümleştirme. Bu yapılandırmada, Azure Key Vault Yönetilen HSM Ağı ayarı için Microsoft güvenilen hizmet atlama seçeneği etkinleştirilmelidir.

3. Adım: SQL Server Bağlayıcısı'nı yükleme

MICROSOFT İndirme Merkezi'nden SQL Server Bağlayıcısı'nı indirin. İndirme işlemi SQL Server bilgisayarının yöneticisi tarafından yapılmalıdır.

Uyarı

  • SQL Server Bağlayıcısı 1.0.0.440 ve daha eski sürümleri değiştirilmiştir ve artık üretim ortamlarında ve SQL Server Bağlayıcısı Yükseltmesi altındaki SQL Server Bağlayıcısı Bakım ve Sorun Giderme sayfasındaki yönergeler kullanılarak desteklenmez.
  • 1.0.3.0 sürümünden itibaren SQL Server Bağlayıcısı, sorun giderme için Windows olay günlüklerine ilgili hata iletilerini bildirir.
  • Sürüm 1.0.4.0'dan başlayarak 21Vianet, Azure Almanya ve Azure Kamu tarafından sağlanan Azure dahil olmak üzere özel Azure bulutları için destek sağlanır.
  • Parmak izi algoritması açısından sürüm 1.0.5.0'da hataya neden olan bir değişiklik var. 1.0.5.0 sürümüne yükselttikten sonra veritabanı geri yükleme hatalarıyla karşılaşabilirsiniz. Daha fazla bilgi için bkz. Microsoft Azure Key Vault için SQL Server Bağlayıcısı'nın eski sürümlerinden yedeklemeler geri yüklenirken hata 33111.
  • Sürüm 1.0.5.0 'dan (TimeStamp: Eylül 2020) başlayarak, SQL Server Bağlayıcısı iletileri ve ağ isteği yeniden deneme mantığını filtrelemeyi destekler.
  • Güncelleştirilmiş sürüm 1.0.5.0 (TimeStamp: Kasım 2020) ile başlayarak, SQL Server Bağlayıcısı RSA 2048, RSA 3072, RSA-HSM 2048 ve RSA-HSM 3072 anahtarlarını destekler.
  • Güncelleştirilmiş 1.0.5.0 sürümünden (TimeStamp: Kasım 2020) başlayarak Azure Key Vault'taki belirli bir anahtar sürümüne başvurabilirsiniz.

SQL Server Bağlayıcısı yükleme sihirbazının ekran görüntüsü.

Bağlayıcı varsayılan olarak C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault konumuna yüklenir. Bu konum kurulum sırasında değiştirilebilir. Bunu değiştirirseniz, takip eden bölümdeki betikleri ayarlayın.

Bağlayıcı için arabirim yoktur, ancak başarıyla yüklenirse, Microsoft.AzureKeyVaultService.EKM.dll makineye yüklenir. Bu derleme, CREATE CRYPTOGRAPHIC PROVIDER deyimi kullanılarak SQL Server'a kaydedilmesi gereken şifreleme EKM sağlayıcısı DLL'dir.

SQL Server Bağlayıcısı yüklemesi, isteğe bağlı olarak SQL Server şifrelemesi için örnek betikleri indirmenize de olanak tanır.

SQL Server Bağlayıcısı'nın hata kodu açıklamalarını, yapılandırma ayarlarını veya bakım görevlerini görüntülemek için bkz:

4. Adım: EKM sağlayıcısını desteklemek için kayıt defteri anahtarı ekleme

Uyarı

Kayıt defterinin değiştirilmesi, tam olarak ne yaptıklarını bilen kullanıcılar tarafından gerçekleştirilmelidir. Kayıt defterini yanlış bir şekilde değiştirirseniz ciddi sorunlar meydana gelebilir. Daha fazla koruma için, değiştirmeden önce kayıt defterini yedekleyin. Bir sorun oluşursa kayıt defterini geri yükleyebilirsiniz.

Kayıt defterinin değiştirilmesi SQL Server bilgisayarının yöneticisi tarafından yapılmalıdır.

  1. SQL Server'ın yüklü ve çalışır durumda olduğundan emin olun.

  2. Kayıt Defteri Düzenleyicisi'ni açmak için regedit komutunu çalıştırın.

  3. SQL Server Cryptographic Provider üzerinde bir HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft kayıt defteri anahtarı oluşturun. Tam yol şeklindedir HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider.

  4. Kayıt defteri anahtarına SQL Server Cryptographic Provider sağ tıklayın ve İzinler'i seçin.

  5. SQL Server hizmetini çalıştıran kullanıcı hesabına kayıt defteri anahtarı üzerinde SQL Server Cryptographic Provider izinleri verin.

    Kayıt Defteri Düzenleyicisi'ndeki EKM kayıt defteri anahtarının ekran görüntüsü.

  6. Uygula'yı seçin, ardından ve Tamam'ı, sonratıklayın.

  7. Kayıt Defteri Düzenleyicisi'ni kapatın ve SQL Server hizmetini yeniden başlatın.

    Uyarı

    Yük devretme kümesi örneğinde EKM veya Azure Anahtar Kasası ile TDE kullanıyorsanız, kayıt defterinin düğümler arasında eşitlenebilmesi için HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider öğesini Küme Kayıt Defteri Denetim Noktası rutinine eklemek üzere ek bir adımı tamamlamanız gerekir. Eşitleme, yük devretme ve anahtar döndürme işleminden sonra veritabanı kurtarmayı kolaylaştırır.

    Kayıt defteri anahtarını Küme Kayıt Defteri Denetim Noktası yordamına eklemek için PowerShell'de aşağıdaki komutu çalıştırın:

    Add-ClusterCheckpoint -RegistryCheckpoint "SOFTWARE\Microsoft\SQL Server Cryptographic Provider" -Resourcename "SQL Server"

5. Adım: SQL Server'ı yapılandırma

Bu bölümdeki her eylem için gereken en düşük izin düzeyleri hakkında bir not için bkz . B. Sık Sorulan Sorular.

Veritabanını yapılandırma master

  1. sqlcmd'i çalıştırın veya SQL Server Management Studio'yu açın.

  2. Aşağıdaki Transact-SQL betiğini çalıştırarak SQL Server'ı EKM kullanacak şekilde yapılandırın:

    -- Enable advanced options.
    USE master;
    GO
    
    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    
    -- Enable EKM provider
    EXEC sp_configure 'EKM provider enabled', 1;
    GO
    RECONFIGURE;
    
  3. SQL Server Bağlayıcısı'nı SQL Server'a EKM sağlayıcısı olarak kaydedin.

    Azure Key Vault için EKM sağlayıcısı olan SQL Server Bağlayıcısı'nı kullanarak bir şifreleme sağlayıcısı oluşturun. Bu örnekte sağlayıcı adı şeklindedir AzureKeyVault_EKM.

    CREATE CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM
    FROM FILE = 'C:\Program Files\SQL Server Connector for Microsoft Azure Key Vault\Microsoft.AzureKeyVaultService.EKM.dll';
    GO
    

    Uyarı

    Dosya yolu uzunluğu 256 karakteri aşamaz.

  4. Anahtar kasasını kullanmak için SQL Server oturum açma bilgileri için bir SQL Server kimlik bilgisi ayarlayın.

    Anahtar kasasından bir anahtar kullanarak şifreleme gerçekleştirecek her oturum açma bilgilerine bir kimlik bilgisi eklenmelidir. Bunların arasında aşağıdakiler yer alır:

    • SQL Server şifreleme senaryolarını yönetmek ve ayarlamak için anahtar kasasını kullanan bir SQL Server yöneticisinin oturum açma bilgileri.

    • TDE'yi veya diğer SQL Server şifreleme özelliklerini etkinleştirebilecek diğer SQL Server oturum açma işlemleri.

    Kimlik bilgileri ve oturum açma bilgileri arasında bire bir eşleme vardır. Başka bir ifadeyle, her oturum açmanın benzersiz bir kimlik bilgisi olmalıdır.

    Bu Transact-SQL betiğini aşağıdaki yollarla değiştirin:

    • IDENTITY argümanını (DocsSampleEKMKeyVault), Azure Key Vault'unuzu işaret edecek şekilde değiştirin.

      • Global Azure kullanıyorsanız, IDENTITY bağımsız değişkenini 2. Adım: Anahtar kasası oluşturma bölümünden Azure Key Vault’unuzun adıyla değiştirin.
      • Özel bir Azure bulutu (örneğin, Azure Kamu, 21Vianet tarafından sağlanan Microsoft Azure veya Azure Almanya) kullanıyorsanız, IDENTITY bağımsız değişkenini PowerShell kullanarak anahtar kasası ve anahtar oluşturma bölümünün 3. adımında döndürülen Kasa URI'si ile değiştirin. Anahtar kasası URI'sine "https://" eklemeyin.
    • SECRET bağımsız değişkeninin ilk kısmını, 1. Adım: Microsoft Entra Hizmet Sorumlusu ayarlama bölümündeki Microsoft Entra İstemci Kimliği ile değiştirin. Bu örnekte İstemci Kimliği şeklindedir d956f6b9xxxxxxx.

      Önemli

      Uygulama (İstemci) Kimliği'nden kısa çizgileri kaldırdığınızdan emin olun.

    • Bağımsız değişkenin SECRET ikinci bölümünü 1. Adım: Microsoft Entra hizmet sorumlusu ayarlama bölümünden İstemci Gizli Anahtarı ile tamamlayın. Bu örnekte, İstemci Gizli Anahtarı şeklindedir yrA8X~PldtMCvUZPxxxxxxxx. Bağımsız değişkenin SECRET son dizesi, kısa çizgi içermeyen uzun bir harf ve sayı dizisi olacaktır (İstemci Gizli Dizisi'nin kısa çizgi içermesi durumunda İstemci Gizli Anahtarı bölümü hariç).

      USE master;
      CREATE CREDENTIAL sysadmin_ekm_cred
          WITH IDENTITY = 'DocsSampleEKMKeyVault',                            -- for public Azure
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.usgovcloudapi.net', -- for Azure Government
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.azure.cn',          -- for Microsoft Azure operated by 21Vianet
          -- WITH IDENTITY = 'DocsSampleEKMKeyVault.vault.microsoftazure.de', -- for Azure Germany
          -- WITH IDENTITY = '<name of Managed HSM>.managedhsm.azure.net',    -- for Managed HSM (HSM URI in the Azure portal resource)
                 --<----Application (Client) ID ---><--Microsoft Entra app (Client) ID secret-->
          SECRET = 'd956f6b9xxxxxxxyrA8X~PldtMCvUZPxxxxxxxx'
      FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
      
      -- Add the credential to the SQL Server administrator's domain login
      ALTER LOGIN [<domain>\<login>]
          ADD CREDENTIAL sysadmin_ekm_cred;
      

    Değişkenleri CREATE CREDENTIAL bağımsız değişkeni için kullanma ve İstemci Kimliği'nden kısa çizgileri program yoluyla kaldırma örneği için, bkz. CREATE CREDENTIAL.

  5. SQL Server örneğinizde Azure Key Vault anahtarınızı açın.

    2. Adım: Anahtar kasası oluşturma bölümünde açıklandığı gibi yeni bir anahtar oluşturmuş veya asimetrik anahtar içeri aktarmış olun, anahtarı açmanız gerekir. Aşağıdaki Transact-SQL betiğinde anahtar isminizi sağlayarak açın.

    Önemli

    Önce bu adım için Kayıt Defteri önkoşullarını tamamladığınızdan emin olun.

    • değerini SQL Server'da anahtarının olmasını istediğiniz adla değiştirin EKMSampleASYKey .
    • ContosoRSAKey0 ile Azure Key Vault'unuzda veya Yönetilen HSM'nizde yer alan anahtarınızın adını değiştirin. Aşağıda sürüm olmayan bir anahtar örneği verilmiştir.
    CREATE ASYMMETRIC KEY EKMSampleASYKey
         FROM PROVIDER [AzureKeyVault_EKM]
         WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
             CREATION_DISPOSITION = OPEN_EXISTING;
    

    SQL Server bağlayıcısının güncelleştirilmiş 1.0.5.0 sürümünden başlayarak, Azure Key Vault'ta belirli bir anahtar sürümüne başvurabilirsiniz:

    CREATE ASYMMETRIC KEY EKMSampleASYKey
         FROM PROVIDER [AzureKeyVault_EKM]
         WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379',
             CREATION_DISPOSITION = OPEN_EXISTING;
    

    Yukarıdaki örnek betikte, 1a4d3b9b393c4678831ccc60def75379 kullanılacak anahtarın belirli sürümünü temsil eder. Bu betiği kullanırsanız anahtarı yeni bir sürümle güncellemeniz gerekmiyor. Anahtar sürümü (örneğin), 1a4d3b9b393c4678831ccc60def75379 veritabanı işlemleri için her zaman kullanılır.

  6. Önceki adımda oluşturduğunuz SQL Server'da asimetrik anahtarı kullanarak yeni bir oturum açma oluşturun.

    --Create a Login that will associate the asymmetric key to this login
    CREATE LOGIN TDE_Login
        FROM ASYMMETRIC KEY EKMSampleASYKey;
    
  7. SQL Server'da asimetrik anahtardan yeni bir oturum açma bilgisi oluşturun. Adım 5: SQL Server'ı Yapılandır bölümündeki kimlik bilgisi eşlemesini bırakın, böylece kimlik bilgileri yeni oturum açma bilgilerine eşlenebilir.

    --Now drop the credential mapping from the original association
    ALTER LOGIN [<domain>\<login>]
        DROP CREDENTIAL sysadmin_ekm_cred;
    
  8. Yeni oturum açma bilgilerini değiştirin ve EKM kimlik bilgilerini yeni oturum açma bilgileriyle eşleyin.

    --Now add the credential mapping to the new Login
    ALTER LOGIN TDE_Login
        ADD CREDENTIAL sysadmin_ekm_cred;
    

Kullanıcı veritabanını şifrelenecek şekilde yapılandırma

  1. Azure Key Vault anahtarıyla şifrelenecek bir test veritabanı oluşturun.

    --Create a test database that will be encrypted with the Azure Key Vault key
    CREATE DATABASE TestTDE;
    
  2. Oluşturun bir veritabanı şifreleme anahtarı ASYMMETRIC KEY kullanarak. EKMSampleASYKey

    USE <DB Name>;
    --Create an ENCRYPTION KEY using the ASYMMETRIC KEY (EKMSampleASYKey)
    CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256
    ENCRYPTION BY SERVER ASYMMETRIC KEY EKMSampleASYKey;
    
  3. Test veritabanını şifreleyin. ayarını ENCRYPTION ONyaparak TDE'yi etkinleştirin.

    --Enable TDE by setting ENCRYPTION ON
    ALTER DATABASE TestTDE
        SET ENCRYPTION ON;
    

Kayıt defteri ayrıntıları

  1. Kullanılan asimetrik anahtarı göstermek için veritabanında aşağıdaki Transact-SQL sorgusunu master yürütün.

    SELECT name,
           algorithm_desc,
           thumbprint
    FROM sys.asymmetric_keys;
    

    İfade şunu döndürür:

    name            algorithm_desc    thumbprint
    EKMSampleASYKey RSA_2048          <key thumbprint>
    
  2. Kullanıcı veritabanında ()TestTDE kullanılan şifreleme anahtarını göstermek için aşağıdaki Transact-SQL sorgusunu yürütür.

    SELECT encryptor_type,
           encryption_state_desc,
           encryptor_thumbprint
    FROM sys.dm_database_encryption_keys
    WHERE database_id = DB_ID('TestTDE');
    

    İfade şunu döndürür:

    encryptor_type encryption_state_desc encryptor_thumbprint
    ASYMMETRIC KEY ENCRYPTED             <key thumbprint>
    

Temizleme

  1. Test nesnelerini temizleyin. Bu test betiğinde oluşturulan tüm nesneleri silin.

    -- CLEAN UP
    USE master;
    GO
    ALTER DATABASE [TestTDE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE [TestTDE];
    GO
    
    ALTER LOGIN [TDE_Login] DROP CREDENTIAL [sysadmin_ekm_cred];
    DROP LOGIN [TDE_Login];
    GO
    
    DROP CREDENTIAL [sysadmin_ekm_cred];
    GO
    
    USE master;
    GO
    DROP ASYMMETRIC KEY [EKMSampleASYKey];
    DROP CRYPTOGRAPHIC PROVIDER [AzureKeyVault_EKM];
    GO
    

    Örnek betikler için SQL Server Saydam Veri Şifrelemesi ve Azure Key Vault ile Genişletilebilir Anahtar Yönetimi'ndeki bloga bakın.

  2. SQL Server Cryptographic Provider Bir anahtar veya tüm EKM anahtarları silindikten sonra kayıt defteri anahtarı otomatik olarak temizlenmez. El ile temizlenmelidir. Kayıt defterinin erken temizlenmesi EKM işlevselliğini bozabileceğinden, kayıt defteri anahtarının temizlenmesi çok dikkatli yapılmalıdır. Kayıt defteri anahtarını temizlemek için üzerindeki SQL Server Cryptographic Providerkayıt defteri anahtarını silinHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.

Troubleshoot

Kayıt defteri anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider oluşturulmazsa veya gerekli izinler verilmezse, aşağıdaki DDL deyimi başarısız olur:

CREATE ASYMMETRIC KEY EKMSampleASYKey
FROM PROVIDER [AzureKeyVault_EKM]
    WITH PROVIDER_KEY_NAME = 'ContosoRSAKey0',
    CREATION_DISPOSITION = OPEN_EXISTING;
Msg 33049, Level 16, State 2, Line 65
Key with name 'ContosoRSAKey0' does not exist in the provider or access is denied. Provider error code: 2058.  (Provider Error - No explanation is available, consult EKM Provider for details)

Süresi dolmak üzere olan istemci sırları

Kimlik bilgileri süresi dolmak üzere olan bir istemci gizli anahtarına sahipse, kimlik bilgilerine yeni bir gizli anahtar atanabilir.

  1. 1. Adım: Microsoft Entra hizmet sorumlusu ayarlama başlığında başlangıçta oluşturulan gizliyi güncelleyin.

  2. Aynı kimlik ve yeni gizli anahtarı kullanarak kimlik bilgilerini değiştirmek için aşağıdaki kodu kullanın. Yeni gizli dizinizle <New Secret> değerini değiştirin

    ALTER CREDENTIAL sysadmin_ekm_cred
    WITH IDENTITY = 'DocsSampleEKMKeyVault',
        SECRET = '<New Secret>';
    
  3. SQL Server hizmetini yeniden başlatın.

Uyarı

EKM'yi bir kullanılabilirlik grubunda (AG) kullanıyorsanız, kimlik bilgilerini değiştirmeniz ve AG'nin tüm düğümlerinde SQL Server hizmetini yeniden başlatmanız gerekir.

Asimetrik anahtarı yeni bir AKV anahtarı veya yeni bir AKV anahtarı sürümüyle döndür

Uyarı

  • Bir AKV anahtarını el ile döndürürken, SQL Server hem AKV sürümsüz anahtarı hem de sürümlü anahtarı destekler ve farklı bir AKV anahtarı kullanmanız gerekmez.
  • Özgün AKV anahtarı, SQL Server'da oluşturulan önceki anahtarın yerini alacak yeni bir sürüm oluşturarak döndürülebilir.
  • El ile anahtar döndürme için, AKV'de döndürülen sürümsüz anahtara veya sürüme alınmış anahtara başvuruda bulunarak yeni bir SQL Server asimetrik anahtarı oluşturulmalıdır. Yeni SQL Server asimetrik anahtarı için, sürümsüz AKV anahtarı AKV'deki en yüksek anahtar sürümü kullanılarak otomatik olarak seçilir. Sürümlenen anahtar için, söz dizimini WITH PROVIDER_KEY_NAME = <key_name>/<version>kullanarak AKV'deki en yüksek sürümü belirtmeniz gerekir. Yeni asimetrik anahtarla yeniden şifrelemek için veritabanı şifreleme anahtarını değiştirebilirsiniz. AKV döndürme ilkesiyle aynı anahtar adı (sürümlendi veya sürümsüz) kullanılabilir. Sürümlenmiş anahtar için geçerli sürümün eklenmesi gerekir. Sürüm olmayan anahtar için aynı anahtar adını kullanın.

SQL Server,TDE için kullanılan asimetrik anahtarı otomatik olarak döndürmek için bir mekanizmaya sahip değildir. Asimetrik anahtarı el ile döndürme adımları aşağıdaki gibidir.

  1. İlk kurulumumuzda (sysadmin_ekm_cred) kullanılan kimlik bilgileri anahtar döndürme için de yeniden kullanılabilir. İsteğe bağlı olarak, yeni asimetrik anahtar için yeni bir kimlik bilgisi oluşturun.

    CREATE CREDENTIAL <new_credential_name>
        WITH IDENTITY = <key vault>,
        SECRET = 'existing/new secret'
        FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM;
    
  2. Kimlik bilgilerini sorumluya ekleyin:

    ALTER LOGIN [domain\userName];
    ADD CREDENTIAL <new_credential_name>;
    
  3. Yeni anahtarı temel alarak yeni asimetrik anahtarı oluşturun (anahtarı döndürdikten sonra). Yeni anahtar, sürümsüz anahtar (ContosoRSAKey0 bizim örneğimizde) veya sürümlü anahtar (ContosoRSAKey0/1a4d3b9b393c4678831ccc60def75379 burada 1a4d3b9b393c4678831ccc60def75379 AKV'de güncelleştirilmiş anahtarın sürümüdür) olabilir:

    CREATE ASYMMETRIC KEY <new_ekm_key_name>
     FROM PROVIDER [AzureKeyVault_EKM]
     WITH PROVIDER_KEY_NAME = <new_key_from_key_vault>,
     CREATION_DISPOSITION = OPEN_EXISTING;
    
  4. Yeni asimetrik anahtardan yeni oturum açma bilgileri oluşturun:

    CREATE LOGIN <new_login_name>
    FROM ASYMMETRIC KEY <new_ekm_key_name>;
    
  5. Kimlik bilgilerini sorumludan bırakın:

    ALTER LOGIN [domain\username]
    DROP CREDENTIAL <new_credential_name>;
    
  6. AKV kimlik bilgilerini yeni oturum açma bilgileriyle eşleyin:

    ALTER LOGIN <new_login_name>;
    ADD CREDENTIAL <new_credential_name>;
    
  7. Yeni asimetrik anahtarla yeniden şifrelemek için veritabanı şifreleme anahtarını (DEK) değiştirin:

    USE [databaseName];
    GO
    ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY <new_ekm_key_name>;
    
  8. Yeni asimetrik anahtarı ve veritabanında kullanılan şifreleme anahtarını doğrulayabilirsiniz:

    SELECT encryptor_type,
           encryption_state_desc,
           encryptor_thumbprint
    FROM sys.dm_database_encryption_keys
    WHERE database_id = DB_ID('databaseName');
    

    Bu parmak izi, yolun HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SQL Server Cryptographic Provider\Azure Key Vault\<key_vault_url>\<thumbprint> altındaki kayıt defteri anahtarıyla eşleşmeli ve size döndürülen anahtarınızın değerini KeyUri vermelidir.

Önemli

Bir sunucu için mantıksal TDE koruyucusunun döndürülması, veritabanı şifreleme anahtarını (DEK) koruyan yeni bir asimetrik anahtara veya sertifikaya geçiş yapmak anlamına gelir. Anahtar döndürme çevrimiçi bir işlemdir ve tamamlanması yalnızca birkaç saniye sürer, çünkü bu işlem veritabanının tamamını değil DEK'nin şifresini çözer ve yeniden şifreler.

Döndürme sonrasında anahtarın önceki sürümlerini silmeyin. Anahtarlar döndürüldüğünde, eski veritabanı yedeklemeleri, yedeklenen günlük dosyaları, sanal günlük dosyaları (VLF) ve işlem günlüğü dosyaları gibi bazı veriler önceki anahtarlarla şifrelenir. Önceki anahtarlar veritabanı kurtarma veya veritabanı geri yüklemesi için de gerekli olabilir.