Aracılığıyla paylaş


Azure Key Vault'ta müşteri tarafından yönetilen anahtarlarla saydam veri şifrelemesi için yaygın hatalar

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

Bu makalede, Azure Key Vault'ta müşteri tarafından yönetilen anahtarlarla saydam veri şifrelemesi (TDE) kullanmak üzere yapılandırılmış bir veritabanının erişilemez duruma gelmesine neden olan Azure Key Vault anahtar erişim sorunlarını tanımlama ve çözme işlemleri açıklanmaktadır.

Uyarı

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

Giriş

TDE, Azure Key Vault'ta müşteri tarafından yönetilen bir anahtar kullanacak şekilde yapılandırıldığında, veritabanının çevrimiçi kalması için bu TDE Koruyucusu'na sürekli erişim gerekir. Mantıksal SQL sunucusu veya yönetilen örnek Azure Key Vault'ta müşteri tarafından yönetilen TDE koruyucusunun erişimini kaybederse, veritabanı uygun hata iletisiyle tüm bağlantıları reddetmeye başlar ve durumunu Azure portalında Erişilemez olarak değiştirir.

İlk 30 dakika boyunca, temel alınan Azure anahtar kasası anahtar erişimi sorunu çözülürse veritabanı otomatik olarak iyileştirilir ve otomatik olarak çevrimiçi olur. Bu, aralıklı ve geçici tüm ağ kesintisi senaryolarında kullanıcı eylemi gerektirmeyecek ve veritabanı otomatik olarak çevrimiçi olur. Çoğu durumda, temel anahtar kasası anahtar erişimi sorununu çözmek için kullanıcı eylemi gerekir.

Erişilemeyen bir veritabanı artık gerekli değilse, maliyetlerin oluşmasını durdurmak için hemen silinebilir. Azure anahtar kasası anahtarına erişim geri yüklenene ve veritabanı yeniden çevrimiçi olana kadar veritabanındaki diğer tüm eylemlere izin verilmez. Müşteri tarafından yönetilen anahtarlarla şifrelenmiş bir veritabanına erişilemezken, TDE seçeneğinin sunucuda müşteri tarafından yönetilen anahtarlardan hizmet tarafından yönetilen anahtarlara değiştirilmesi de mümkün değildir. Bu, TDE Koruyucusu izinleri iptal edilirken verileri yetkisiz erişimden korumak için gereklidir.

Bir veritabanına 30 dakikadan uzun bir süredir erişilemiyorsa, artık otomatik olarak çalışmayacaktır. Gerekli Azure anahtar kasası anahtar erişimi bu süreden sonra geri yüklendiyse, veritabanını yeniden çevrimiçi yapmak için anahtara erişimi el ile yeniden doğrulamanız gerekir. Bu durumda veritabanını yeniden çevrimiçi duruma getirmek, veritabanının boyutuna bağlı olarak önemli miktarda zaman alabilir. Veritabanı yeniden çevrimiçi olduktan sonra yük devretme grubu, PITR geçmişi ve tüm etiketler gibi önceden yapılandırılmış ayarlar kaybolur. Bu nedenle, temel anahtar kasası anahtar erişim sorunlarını en kısa sürede fark etmenize ve çözmenize olanak tanıyan Eylem Gruplarını kullanarak bir bildirim sistemi uygulamanızı öneririz.

Veritabanlarının erişilemez duruma gelmesine neden olan yaygın hatalar

TDE'yi Key Vault ile kullandığınızda oluşan sorunların çoğu aşağıdaki yanlış yapılandırmalardan biri nedeniyle oluşur:

Anahtar kasası kullanılamıyor veya yok

  • Anahtar kasası yanlışlıkla silindi.
  • Güvenlik duvarı Azure Key Vault için yapılandırıldı, ancak Microsoft hizmetlerine erişime izin vermiyor.
  • Aralıklı bir ağ hatası anahtar kasasının kullanılamaz duruma çıkmasına neden olur.

Anahtar kasasına erişim izni yok veya anahtar yok

  • Anahtar yanlışlıkla silindi, devre dışı bırakıldı veya anahtarın süresi doldu.
  • Sunucunun yönetilen kimliği (sistem tarafından atanan veya kullanıcı tarafından atanan) yanlışlıkla silindi.
  • Sunucu farklı bir aboneliğe taşındı. Farklı bir aboneliğe taşındığında sunucuya yeni bir yönetilen kimlik (sistem tarafından atanan veya kullanıcı tarafından atanan) atanmalıdır.
  • Anahtarlar için sunucunun yönetilen kimliğine verilen izinler yeterli değildir (Alma, Kaydırma ve Sarmayı Kaldırma izinlerini içermez).
  • Sunucunun yönetilen kimliğine yönelik izinler anahtar kasasından iptal edildi.

Sık karşılaşılan hataları belirleme ve çözme

Bu bölümde, en yaygın hatalar için sorun giderme adımlarını listeleyeceğiz.

Eksik sunucu kimliği

Hata İletisi

401 AzureKeyVaultNoServerIdentity - The server identity is not correctly configured on server. Please contact support.

Algılama

Sunucuya bir kimliğin atandığından emin olmak için aşağıdaki cmdlet'i veya komutu kullanın:

Azaltma

Sunucu için kullanıcı tarafından atanan veya sistem tarafından atanan yönetilen kimliği yapılandırmak için aşağıdaki cmdlet'i veya komutu kullanın:

Azure portalında anahtar kasasına gidin ve ardından Erişim ilkeleri'ne gidin. Şu adımları tamamlayın:

  1. Önceki adımda oluşturduğunuz sunucunun AppId değerini eklemek için Yeni Ekle düğmesini kullanın.
  2. Şu anahtar izinlerini atayın: Alma, Sarmalama ve Sarmayı Kaldırma

Daha fazla bilgi edinmek için bkz. Sunucunuza yönetilen kimlik atama.

Önemli

Azure SQL Veritabanı veya Azure SQL Yönetilen Örneği için mantıksal sunucu, Key Vault ile TDE'nin ilk yapılandırmasından sonra yeni bir Microsoft Entra kiracısına taşınırsa, bu yönetilen kimlik yapılandırmasının yeni kiracıda yeniden yapılandırılması gerekir.

Eksik anahtar kasası

Hata İletisi

503 AzureKeyVaultConnectionFailed - The operation could not be completed on the server because attempts to connect to Azure Key Vault have failed.

Algılama

Anahtar URI'sini ve anahtar kasasını tanımlamak için:

  1. Belirli bir sunucu örneğinin anahtar URI'sini almak için aşağıdaki cmdlet'i veya komutu kullanın:

  2. Anahtar kasasını tanımlamak için anahtar URI'sini kullanın:

    • Azure PowerShell: Anahtar kasasıyla ilgili ayrıntıları almak için $MyServerKeyVaultKey değişkeninin özelliklerini inceleyebilirsiniz.
    • Azure CLI: Anahtar kasası hakkındaki ayrıntılar için döndürülen sunucu şifreleme koruyucusunu inceleyin.

Azaltma

Anahtar kasasının kullanılabilir olduğunu onaylayın:

  • Anahtar kasasının kullanılabilir olduğundan ve sunucunun erişimi olduğundan emin olun.
  • Anahtar kasası bir güvenlik duvarının arkasındaysa, Microsoft hizmetlerinin anahtar kasasına erişmesine izin veren onay kutusunun seçili olduğundan emin olun.
  • Anahtar kasası yanlışlıkla silinmişse, yapılandırmayı baştan tamamlamanız gerekir.

Eksik anahtar

Hata iletileri

404 ServerKeyNotFound - The requested server key was not found on the current subscription.
409 ServerKeyDoesNotExists - The server key does not exist.

Algılama

Anahtar URI'sini ve anahtar kasasını tanımlamak için:

  • Mantıksal SQL Server örneğine eklenen anahtar URI'sini tanımlamak için Eksik anahtar kasası cmdlet'ini veya komutlarını kullanın. Komutları çalıştırmak anahtarların listesini döndürür.

Azaltma

TDE koruyucusunun Key Vault'ta mevcut olduğunu onaylayın:

  1. Anahtar kasasını belirleyin, ardından Azure portalında anahtar kasasına gidin.
  2. Anahtar URI'sinin tanımladığı anahtarın mevcut olduğundan emin olun.

Süresi dolmuş anahtar

Hata iletileri

The server <server_name> requires the Key Vault Crypto Service Encryption User permission for the RBAC policy or following Azure Key Vault permissions: Get, WrapKey, UnwrapKey. Please grant the missing permissions to the service principal with ID <akv_key>. Ensure the key is active, not expired or disabled, set with the key activation date no later than the current date, and that trusted Microsoft services can bypass the firewall if applicable.

Algılama

Anahtar kasasında süresi dolan anahtarı tanımlamak için:

  • Azure portalını kullanın, Anahtar kasası hizmet menüsü >Nesneler>Anahtarları'na gidin ve anahtar süre sonunu denetleyin.
  • Get-AzKeyVaultKey PowerShell komutunu kullanın.
  • Az keyvault key show azure CLI komutunu kullanın.

Azaltma

  • Anahtarın süresinin dolduğunu onaylamak için anahtar kasası anahtarının son kullanma tarihini denetleyin.
  • Anahtar son kullanma tarihini uzatın.
  • Aşağıdakilerden 1'i içeren Anahtar yeniden doğrulama seçeneğini belirleyerek veritabanını yeniden çevrimiçi yapın:
    • Mevcut anahtarı yeniden deneyin.
    • Yedekleme anahtarını seçin.

Daha fazla bilgi için bkz. Erişilemez TDE koruyucusu.

Uyarı

Anahtarlar, bir hataya tepki vermek için yeterli süre sağlamak için süre dolmadan önce belirtilen sayıda gün içinde döndürülmelidir. Daha fazla bilgi için bkz. Key Vault için Azure İlkesi yerleşik tanımları.

Eksik izinler

Hata İletisi

401 AzureKeyVaultMissingPermissions - The server is missing required permissions on the Azure Key Vault.

Algılama

Anahtar URI'sini ve anahtar kasasını tanımlamak için:

Azaltma

Sunucunun anahtar kasası için izinleri olduğunu ve anahtara erişmek için doğru izinlere sahip olduğunu onaylayın:

  • Azure portalında anahtar kasası >Erişim ilkeleri'ne gidin. Sunucunun yönetilen kimliğini (sistem tarafından atanan veya kullanıcı tarafından atanan) bulun.
  • Sunucu kimliği varsa, şu anahtar izinlerine sahip olduğundan emin olun: Get, WrapKey ve UnwrapKey.
  • Sunucu kimliği yoksa , Yeni Ekle düğmesini kullanarak ekleyin.

Etkinlik günlüğünden TDE durumunu alma

Azure Key Vault anahtar erişim sorunları nedeniyle veritabanı durumunun izlenmesine izin vermek için aşağıdaki olaylar Azure Resource Manager URL'sine göre kaynak kimliği için Etkinlik Günlüğü'ne kaydedilir.

Uyarı

Olayların, anahtar kasası erişim sorununun oluştuğu zamandan itibaren Etkinlik Günlüğü'nde görünmesi en az 15-30 dakika sürebilir.

Hizmetin Azure Key Vault anahtarına erişimini kaybetmesi olayı

Azure SQL Veritabanı

EventName: MakeDatabaseInaccessible

Durum: Başlatıldı

Açıklama: {server_name} Sunucusundaki {database_name} veritabanı Azure Key Vault Anahtarı'na erişimi kaybetti ve şu anda erişilemez duruma geçti.

Yönetilen Azure SQL Örneği

EventName: MakeManagedDbInaccessible

Durum: Başlatıldı

Açıklama: {server_name} yönetilen sunucusundaki { database_name} veritabanı Azure Key Vault Anahtarı'na erişimi kaybetti ve şu anda erişilemez duruma geçti.

Sorun 30 dakika içinde çözülmediğinde ve Azure Key Vault anahtar erişiminin el ile doğrulanması gerektiğinde gerçekleşen olay

Azure SQL Veritabanı

EventName: MakeDatabaseInaccessible

Durum: Başarılı

Açıklama: Veritabanına erişilemiyor ve kullanıcının Azure anahtar kasası hatalarını çözmesini ve Yeniden Doğrulama anahtarını kullanarak Azure anahtar kasası anahtarına erişimi yeniden başlatmasını gerektirir.

Yönetilen Azure SQL Örneği

EventName: MakeManagedDbInaccessible

Durum: Başarılı

Açıklama: {server_name} yönetilen sunucusundaki { database_name} veritabanına erişilemiyor ve kullanıcının Azure Key Vault Anahtarına yeniden erişim oluşturmasını gerektiriyor.

Azure Key Vault anahtar erişiminin yeniden doğrulanması başarılı olduğunda ve veritabanı yeniden çevrimiçi olduğunda gerçekleşen olay

Azure SQL Veritabanı

EventName: MakeDatabaseAccessible

Durum: Başlatıldı

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu, {server_name} sunucusundaki {database_name} veritabanını erişilebilir hale getirme işlemi başlatıldı.

Yönetilen Azure SQL Örneği

EventName: MakeManagedDatabaseAccessible

Durum: Başlatıldı

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu, yönetilen sunucudaki {database_name} veritabanının {server_name} erişilebilir olmasını sağlama işlemi başlatıldı.

Veritabanı başarıyla yeniden çevrimiçi olduğunda gerçekleşen olay

Azure SQL Veritabanı

EventName: MakeDatabaseAccessible

Durum: Başarılı

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu ve {server_name} sunucusundaki {database_name} veritabanı artık çevrimiçi.

Yönetilen Azure SQL Örneği

EventName: MakeManagedDatabaseAccessible

Durum: Başarılı

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu ve {server_name} yönetilen sunucusundaki {database_name} veritabanı artık çevrimiçi.

Azure Key Vault anahtar erişiminin yeniden doğrulanması başarısız olduğunda oluşan olay

Azure SQL Veritabanı

EventName: MakeDatabaseAccessible

Durum: Başarısız

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu, {database_name} veritabanını {server_name} sunucusunda erişilebilir hale getirme işlemi başarısız oldu

Yönetilen Azure SQL Örneği

EventName: MakeManagedDatabaseAccessible

Durum: Başarısız

Açıklama: Azure Key Vault Anahtarına erişim yeniden oluşturuldu, {database_name} veritabanını yönetilen sunucuda {server_name} erişilebilir hale getirme işlemi başarısız oldu