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 anahtar (CMK) ile TDE için, anahtar kasasında 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ğine anahtar kasası izinleri 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ı tarafından atanan yönetilen kimlik (UMI), sunucunun anahtar kasasına erişmesine izin vermek için kullanılabilir. Anahtar kasası erişimini etkinleştirmenin önkoşullarından biri, kullanıcı tarafından atanan yönetilen kimliğe anahtar kasasında Get, wrapKey ve unwrapKey izinlerinin verildiğinden emin olmaktır. Kullanıcı tarafından atanan yönetilen kimlik, oluşturulabilen ve anahtar kasasına erişim verilebilen tek başına bir kaynak olduğundan, müşteri tarafından yönetilen anahtarla TDE artık sunucu veya veritabanı için oluşturma zamanında 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 erişim vererek Azure SQL mantıksal sunucuları veya yönetilen örnekleri için anahtar kasası erişimini önceden yetkilendirme olanağı sağlar

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

  • Aynı kullanıcı tarafından atanan yönetilen kimliğin birden çok sunucuya atanarak her Azure SQL mantıksal sunucusu veya yönetilen örneği için sistem tarafından atanan yönetilen kimliği tek tek açma gereksinimini ortadan kaldırır ve anahtar kasasına 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ı erişimi için sunucuda ayarlanan birincil kullanıcı tarafından atanan yönetilen kimliği kullanır. Sunucuya kullanıcı tarafından atanan kimlik atanmamışsa, anahtar kasası 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ı erişimi gerektirir (get, wrapKey, unwrapKey izinleri). Kimliğin anahtar kasasına erişimi iptal edilirse veya yeterli izinler sağlanmamışsa veritabanı Erişilemez duruma geçer
  • Birincil kullanıcı tarafından atanan yönetilen kimlik farklı bir kullanıcı tarafından atanan yönetilen kimliğe güncelleştiriliyorsa, yeni kimliğe birincil kimlik güncelleştirilmadan önce anahtar kasası için gerekli izinler verilmelidir
  • Sunucuya anahtar kasası erişimi için kullanıcı tarafından atanan yönetilen kimlikten anahtar kasası erişimi için sistem tarafından atanan yönetilen kimlikten geçiş yapmak için, sistem tarafından atanan yönetilen kimliği gerekli anahtar kasası 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ı tarafından atanan yönetilen kimlik Azure'dan silinmemelidir. Bu kimliğin silinmesi, sunucunun anahtar kasasına ve veritabanlarına erişimi kaybetmesine neden olur.

Sınırlamalar ve bilinen sorunlar

  • Anahtar kasası 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 menüsünde Güvenilen Microsoft Hizmetlerinin 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/subsriptionID/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 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.
  • SQL Yönetilen Örneği için Kullanıcı Tarafından Atanan Yönetilen Kimlik şu anda yalnızca tüm ağlardan genel erişimi etkinleştirilmiş anahtar kasalarında desteklenmektedir. AKV güvenlik duvarı belirli sanal ağları ve IP adreslerini filtrelerken veya özel uç nokta bağlantıları kullanırken desteklenmez.
  • 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 erişim vermeden kullanıcı tarafından atanan yönetilen kimliklerin sunucudan kaldırılması Beklenmeyen bir hata oluştu iletisiyle sonuçlanır . Sunucudan birincil kullanıcı tarafından atanan yönetilen kimliği (ve diğer kullanıcı tarafından atanan yönetilen kimlikleri) kaldırmadan önce sistem tarafından atanan yönetilen kimliğin anahtar kasası erişimi sağlanmış olduğundan emin olun.

Sonraki adımlar

Ayrıca bkz.