Müşteri tarafından yönetilen anahtarla saydam veri şifrelemesi için yönetilen kimlikler

Şunlar için geçerlidir:Azure SQL Veritabanı Azure SQL Yönetilen Örneği

Eski adı Azure Active Directory olan Microsoft Entra Id, kodda kimlik bilgilerini açığa çıkarmadan Azure Key Vault gibi Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir Azure hizmetinde kimlik doğrulaması yapmak için otomatik olarak yönetilen bir kimlik sağlar. Daha fazla bilgi için bkz . Azure'da yönetilen kimlik türleri .

Yönetilen Kimlikler iki türde olabilir:

  • Sistem tarafından atanan
  • Kullanıcı tarafından atanan

Daha fazla bilgi için bkz . Azure SQL için Microsoft Entra Id'de yönetilen kimlikler.

Azure SQL'de müşteri tarafından yönetilen anahtara (CMK) sahip TDE için, anahtar kasasında veya yönetilen HSM'de sunucuya erişim hakları sağlamak için sunucudaki yönetilen kimlik kullanılır. Örneğin, sunucuda CMK ile TDE etkinleştirilmeden önce sunucunun sistem tarafından atanan yönetilen kimliği Azure Key Vault izinleriyle sağlanmalıdır.

CMK ile TDE için zaten desteklenen sistem tarafından atanan yönetilen kimliğe ek olarak, sunucuya atanan kullanıcı atamalı yönetilen kimlik (UMI), sunucunun anahtar kasasına veya yönetilen HSM'ye erişmesine izin vermek için kullanılabilir. Anahtar kasası veya yönetilen HSM erişimini etkinleştirmenin önkoşullarından biri, kullanıcı tarafından atanan yönetilen kimliğe anahtar kasasında veya yönetilen HSM'de Get, wrapKey ve unwrapKey izinlerinin verildiğinden emin olmaktır. Kullanıcı tarafından atanan yönetilen kimlik, anahtar kasası veya yönetilen HSM için erişim verilebilen ve tek başına oluşturulabilen bir kaynak olduğundan, müşteri tarafından yönetilen anahtarla TDE, artık sunucu veya veritabanı oluşturulurken etkinleştirilebilir.

Not

Kullanıcı tarafından atanan yönetilen kimliği mantıksal sunucuya veya yönetilen örneğe atamak için, kullanıcının SQL Server Katkıda Bulunanı veya SQL Yönetilen Örneği Katkıda Bulunanı Azure RBAC rolüne ve Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action eylemini içeren diğer azure RBAC rolüne sahip olması gerekir.

Müşteri tarafından yönetilen TDE için UMI kullanmanın avantajları

  • Kullanıcı tarafından atanan bir yönetilen kimlik oluşturarak ve sunucu veya veritabanı oluşturulmadan önce bile anahtar kasasına veya yönetilen HSM'ye erişim vererek Azure SQL mantıksal sunucuları veya Azure SQL Yönetilen Örnekleri için anahtar kasası veya yönetilen HSM erişimini önceden yetkilendirme olanağı sağlar.

  • TDE ve CMK etkin bir Azure SQL mantıksal sunucusu oluşturulmasına izin verir.

  • Kullanıcı tarafından atanan aynı yönetilen kimliğin birden fazla sunucuya atanmasını sağlayarak, her Azure SQL mantıksal sunucusu veya Azure SQL Yönetilen Örneği için sistem tarafından atanan yönetilen kimliği tek tek etkinleştirme gereksinimini ortadan kaldırır ve bu kimliğe anahtar kasası veya yönetilen HSM'ye erişim sağlar.

  • Kullanılabilir bir yerleşik Azure ilkesiyle sunucu oluşturma zamanında CMK'yi zorunlu kılma özelliği sağlar.

Müşteri tarafından yönetilen TDE için UMI kullanırken dikkat edilmesi gerekenler

  • Varsayılan olarak, Azure SQL'deki TDE, anahtar kasası veya yönetilen HSM erişimi için sunucuda ayarlanan birincil kullanıcı tarafından atanmış yönetilen kimliği kullanır. Sunucuya kullanıcı tarafından atanan kimlik atanmamışsa, anahtar kasası veya yönetilen HSM erişimi için sunucunun sistem tarafından atanan yönetilen kimliği kullanılır.
  • CMK ile TDE için kullanıcı tarafından atanan yönetilen kimlik kullanırken, kimliği sunucuya atayın ve sunucu için birincil kimlik olarak ayarlayın.
  • Kullanıcı tarafından atanan birincil yönetilen kimlik, sürekli anahtar kasası veya yönetilen HSM erişimi gerektirir (get, wrapKey, unwrapKey izinleri). Kimliğin anahtar kasasına veya yönetilen HSM'ye erişimi iptal edilirse veya yeterli izinler sağlanmamışsa veritabanı Erişilemez duruma geçer.
  • Eğer birincil kullanıcı tarafından atanan yönetilen kimlik, farklı bir kullanıcı tarafından atanan yönetilen kimlikle değiştirilecekse, yeni kimliğe, birincili güncellemeden önce anahtar kasası veya yönetilen HSM için gerekli izinler verilmelidir.
  • Sunucuyu anahtar kasası veya yönetilen HSM erişimi için sistem tarafından atanan yönetilen kimliğe kullanıcı tarafından atanan kimlikten değiştirmek için, sistem tarafından atanan yönetilen kimliği gerekli anahtar kasası veya yönetilen HSM izinleriyle sağlayın ve ardından kullanıcı tarafından atanan tüm yönetilen kimlikleri sunucudan kaldırın.

Önemli

CMK ile TDE için kullanılan birincil kullanıcı atamalı yönetilen kimlik Azure'dan silinmemelidir. Bu kimliğin silinmesi, sunucunun anahtar kasasına veya yönetilen HSM'ye erişimi kaybedeceğine ve veritabanlarının erişilemez hale geleceğine neden olur.

Sınırlamalar ve bilinen sorunlar

  • Anahtar kasası veya yönetilen HSM, güvenlik duvarı kullanan bir sanal ağın arkasındaysa, kullanıcı tarafından atanan bir yönetilen kimlik veya sistem tarafından atanan yönetilen kimlik kullanmak istiyorsanız Anahtar kasasının veya yönetilen HSM'nin menüsünde Güvenilen Microsoft Hizmetleri'nin bu güvenlik duvarını atlamasına izin ver seçeneği etkinleştirilmelidir. Bu seçenek etkinleştirildikten sonra, kullanılabilir anahtarlar Azure portalındaki SQL Server TDE menüsünde listelenemez. Tek bir CMK ayarlamak için anahtar tanımlayıcısı kullanılmalıdır. Güvenilen Microsoft Hizmetlerinin bu güvenlik duvarını atlamasına izin ver seçeneği etkinleştirilmediğinde aşağıdaki hata döndürülür:
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subscriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • Yukarıdaki hatayı alırsanız anahtar kasasının veya yönetilen HSM'nin bir sanal ağ veya güvenlik duvarının arkasında olup olmadığını denetleyin ve Güvenilen Microsoft Hizmetleri'nin bu güvenlik duvarını atlamasına izin ver seçeneğinin etkinleştirildiğinden emin olun.
  • Sunucuya veya yönetilen örneğe kullanıcı tarafından atanan birden çok yönetilen kimlik atandığında, Azure portalının Kimlik bölmesi kullanılarak sunucudan tek bir kimlik kaldırılırsa işlem başarılı olur ancak kimlik sunucudan kaldırılmaz. Kullanıcı tarafından atanan tüm yönetilen kimliklerin Azure portalından birlikte kaldırılması başarıyla çalışır.
  • Sunucu veya yönetilen örnek müşteri tarafından yönetilen TDE ile yapılandırıldığında ve sunucuda hem sistem tarafından atanan hem de kullanıcı tarafından atanan yönetilen kimlikler etkinleştirildiğinde, önce sistem tarafından atanan yönetilen kimliklere anahtar kasasına veya yönetilen HSM'ye erişim vermeden kullanıcı tarafından atanan yönetilen kimliklerin sunucudan kaldırılması Beklenmeyen bir hata oluştu iletisiyle sonuçlanır . Birincil kullanıcı tarafından atanan yönetilen kimliği (ve diğer kullanıcı tarafından atanan yönetilen kimlikleri) sunucudan kaldırmadan önce, sistem tarafından atanan yönetilen kimliğe anahtar kasası veya yönetilen HSM erişimi sağlandığından emin olun.

Sonraki adımlar