Müşteri tarafından yönetilen anahtarla veri şifrelemesi MySQL için Azure Veritabanı
ŞUNLAR IÇIN GEÇERLIDIR: MySQL için Azure Veritabanı - Tek Sunucu
Önemli
MySQL için Azure Veritabanı tek sunucu kullanımdan kaldırma yolundadır. Esnek MySQL için Azure Veritabanı sunucuya yükseltmenizi kesinlikle öneririz. MySQL için Azure Veritabanı esnek sunucuya geçiş hakkında daha fazla bilgi için bkz. MySQL için Azure Veritabanı Tek Sunucu'ya neler oluyor?
MySQL için Azure Veritabanı'nda verilerin müşteri tarafından yönetilen anahtarlarla şifrelenmesini sağlayarak bekleyen veriler için kendi anahtarını getir (KAG) yaklaşımından faydalanabilirsiniz. Kuruluşlar bu sayede anahtarların ve verilerin yönetiminde görev ayrımı yapabilir. Müşteri tarafından yönetilen şifreleme ile anahtarın yaşam döngüsünden, anahtar kullanım izinlerinden ve anahtarlardaki işlemlerin denetiminden siz sorumlu olursunuz.
MySQL için Azure Veritabanı için müşteri tarafından yönetilen anahtarlarla veri şifreleme, sunucu düzeyinde ayarlanır. Belirli bir sunucu için, hizmet tarafından kullanılan veri şifreleme anahtarını (DEK) şifrelemek için anahtar şifreleme anahtarı (KEK) olarak adlandırılan müşteri tarafından yönetilen bir anahtar kullanılır. KEK, müşteriye ait ve müşteri tarafından yönetilen bir Azure Key Vault örneğinde depolanan asimetrik bir anahtardır. Anahtar Şifreleme Anahtarı (KEK) ve Veri Şifreleme Anahtarı (DEK), bu makalenin devamında daha ayrıntılı olarak açıklanmıştır.
Key Vault bulut tabanlı bir dış anahtar yönetim sistemidir. Yüksek oranda kullanılabilir ve isteğe bağlı olarak FIPS 140 doğrulanmış donanım güvenlik modülleri (HSM) tarafından desteklenen RSA şifreleme anahtarları için ölçeklenebilir, güvenli depolama sağlar. Depolanan anahtara doğrudan erişime izin vermez, ancak yetkili varlıklara şifreleme ve şifre çözme hizmetleri sağlar. Key Vault anahtarı oluşturabilir, içeri aktarabilir veya şirket içi HSM cihazından aktarabilir.
Not
Bu özellik yalnızca Genel Amaçlı ve Bellek için İyileştirilmiş fiyatlandırma katmanlarında kullanılabilen "Genel Amaçlı depolama v2 (16 TB'a kadar destek)" depolama alanında desteklenir. Daha fazla ayrıntı için Depolama kavramlarına bakın. Diğer sınırlamalar için sınırlama bölümüne bakın.
Sosyal haklar
MySQL için Azure Veritabanı için müşteri tarafından yönetilen anahtarlarla veri şifreleme aşağıdaki avantajları sağlar:
- Veri erişimi, anahtarı kaldırma ve veritabanına erişilemez hale getirme özelliğiyle sizin tarafınızdan tam olarak denetlenir
- Anahtarın şirket ilkeleriyle uyumlu olacak şekilde döndürülerek anahtar yaşam döngüsü üzerinde tam denetim
- Azure Key Vault'ta anahtarların merkezi yönetimi ve düzenlenmesi
- Güvenlik görevlileri ile DBA ve sistem yöneticileri arasında görev ayrımı uygulama becerisi
Terminoloji ve açıklama
Veri şifreleme anahtarı (DEK): Bir veri bölümünü veya bloğunu şifrelemek için kullanılan simetrik AES256 anahtarı. Her veri bloğunun farklı bir anahtarla şifrelenmesi, şifreleme analizi saldırılarını daha zor hale getirir. DEK'lere erişim, belirli bir bloğu şifreleyen ve şifresini çözen kaynak sağlayıcısı veya uygulama örneği tarafından gereklidir. Dek değerini yeni bir anahtarla değiştirdiğinizde, yalnızca ilişkili bloğundaki veriler yeni anahtarla yeniden şifrelenmelidir.
Anahtar şifreleme anahtarı (KEK):DEK'leri şifrelemek için kullanılan bir şifreleme anahtarı. Key Vault'dan hiç ayrılmamış bir KEK, DEK'lerin şifrelenmesini ve denetlenmesini sağlar. KEK'ye erişimi olan varlık, DEK gerektiren varlıktan farklı olabilir. KEK'nin DEK'lerin şifresini çözmesi gerektiğinden KEK, KEK silinerek DEK'lerin etkili bir şekilde silinebileceği tek bir noktadır.
KEK'lerle şifrelenmiş DEK'ler ayrı olarak depolanır. Bu DEK'lerin şifresini yalnızca KEK erişimi olan bir varlık çözebilir. Daha fazla bilgi için bkz . Bekleyen şifrelemede güvenlik.
Müşteri tarafından yönetilen anahtarla veri şifreleme nasıl çalışır?
MySQL sunucusunun DEK şifrelemesi için Key Vault'ta depolanan müşteri tarafından yönetilen anahtarları kullanması için, Key Vault yöneticisi sunucuya aşağıdaki erişim haklarını verir:
- get: Anahtar kasasında anahtarın ortak bölümünü ve özelliklerini almak için.
- wrapKey: DEK'yi şifreleyebilmek için. Şifrelenmiş DEK, MySQL için Azure Veritabanı depolanır.
- unwrapKey: DEK'nin şifresini çözebilmek için. MySQL için Azure Veritabanı verileri şifrelemek/şifresini çözmek için şifresi çözülmüş DEK'ye ihtiyaç duyar
Anahtar kasası yöneticisi, Key Vault denetim olaylarının günlüğe kaydedilmesini de etkinleştirerek daha sonra denetlenebilir.
Sunucu, anahtar kasasında depolanan müşteri tarafından yönetilen anahtarı kullanacak şekilde yapılandırıldığında, şifreleme için DEK'yi anahtar kasasına gönderir. Key Vault, kullanıcı veritabanında depolanan şifrelenmiş DEK'yi döndürür. Benzer şekilde, gerektiğinde sunucu korumalı DEK'yi şifre çözme için anahtar kasasına gönderir. Denetçiler, günlüğe kaydetme etkinse Key Vault denetim olay günlüklerini gözden geçirmek için Azure İzleyici'yi kullanabilir.
MySQL için Azure Veritabanı için veri şifrelemesini yapılandırma gereksinimleri
Key Vault'un yapılandırılması için gereksinimler şunlardır:
- Key Vault ve MySQL için Azure Veritabanı aynı Microsoft Entra kiracısına ait olmalıdır. Kiracılar arası Key Vault ve sunucu etkileşimleri desteklenmez. Daha sonra Key Vault kaynağını taşımak için veri şifrelemesini yeniden yapılandırmanız gerekir.
- Yanlışlıkla anahtar (veya Key Vault) silme işlemi gerçekleştiğinde veri kaybından korunmak için saklama süresi 90 gün olarak ayarlanmış anahtar kasasında geçici silme özelliğini etkinleştirin. Geçici olarak silinen kaynaklar, bekletme süresi açıkça =90 gün olarak ayarlanmadığı <sürece varsayılan olarak 90 gün boyunca saklanır. Kurtarma ve temizleme eylemlerinin bir Key Vault erişim ilkesiyle ilişkili kendi izinleri vardır. Geçici silme özelliği varsayılan olarak kapalıdır, ancak PowerShell veya Azure CLI aracılığıyla etkinleştirebilirsiniz (Azure portalı üzerinden etkinleştiremezseniz).
- Saklama süresi 90 güne ayarlanmış anahtar kasasında Temizleme Koruması özelliğini etkinleştirin. Temizleme koruması yalnızca geçici silme etkinleştirildikten sonra etkinleştirilebilir. Azure CLI veya PowerShell aracılığıyla açılabilir. Temizleme koruması açık olduğunda, saklama süresi geçene kadar kasa veya silinmiş durumdaki bir nesne temizlenemez. Geçici olarak silinen kasalar ve nesneler yine kurtarılabilir ve bekletme ilkesine uyulmasını sağlar.
- Benzersiz yönetilen kimliğini kullanarak anahtar kasasına get, wrapKey ve unwrapKey izinleriyle MySQL için Azure Veritabanı erişimi verin. Azure portalında, MySQL'de veri şifreleme etkinleştirildiğinde benzersiz 'Hizmet' kimliği otomatik olarak oluşturulur. Azure portalını kullanırken ayrıntılı, adım adım yönergeler için bkz . MySQL için veri şifrelemesini yapılandırma.
Müşteri tarafından yönetilen anahtarı yapılandırma gereksinimleri şunlardır:
- DEK'yi şifrelemek için kullanılacak müşteri tarafından yönetilen anahtar yalnızca asimetrik, RSA 2048 olabilir.
- Anahtar etkinleştirme tarihi (ayarlandıysa) geçmişe ait bir tarih ve saat olmalıdır. Son kullanma tarihi ayarlanmadı.
- Anahtar Etkin durumda olmalıdır.
- Anahtarın saklama süresi 90 gün olarak ayarlanmış geçici silmeye sahip olması gerekir. Bu, gerekli anahtar özniteliği recoveryLevel'i örtük olarak ayarlar: "Kurtarılabilir". Bekletme 90 gün olarak ayarlanırsa < recoveryLevel: "CustomizedRecoverable", bu gereklilik değildir, bu nedenle bekletme süresinin 90 gün olarak ayarlandığından emin olun.
- Anahtarın temizleme koruması etkinleştirilmiş olmalıdır.
- Mevcut bir anahtarı anahtar kasasına aktarıyorsanız, bunu desteklenen dosya biçimlerinde (
.pfx
,.byok
,.backup
) sağladığından emin olun.
Öneriler
Müşteri tarafından yönetilen bir anahtar kullanarak veri şifrelemesi kullanırken Key Vault'un yapılandırılması için öneriler şunlardır:
- Bu kritik kaynağı kimlerin silebileceğini denetlemek ve yanlışlıkla veya yetkisiz silmeyi önlemek için Key Vault'ta bir kaynak kilidi ayarlayın.
- Tüm şifreleme anahtarlarında denetimi ve raporlamayı etkinleştirin. Key Vault, diğer güvenlik bilgilerine ve olay yönetimi araçlarına kolayca eklenen günlükler sağlar. Azure İzleyici Log Analytics, zaten tümleştirilmiş bir hizmet örneğidir.
- DEK sarmalama ve kaldırma işlemlerine daha hızlı erişim sağlamak için Key Vault'un ve MySQL için Azure Veritabanı aynı bölgede bulunduğundan emin olun.
- Azure KeyVault'u yalnızca özel uç nokta ve seçili ağlara kilitleyin ve yalnızca güvenilen Microsoft hizmetlerinin kaynakların güvenliğini sağlamasına izin verin.
Müşteri tarafından yönetilen anahtarı yapılandırmaya yönelik öneriler şunlardır:
Müşteri tarafından yönetilen anahtarın bir kopyasını güvenli bir yerde tutun veya emanet hizmetine emanet edin.
Anahtarı Key Vault oluşturuyorsa anahtarı ilk kez kullanmadan önce bir anahtar yedeklemesi oluşturun. Yedeklemeyi yalnızca Key Vault'a geri yükleyebilirsiniz. Yedekleme komutu hakkında daha fazla bilgi için bkz . Backup-AzKeyVaultKey.
Müşteri tarafından yönetilen erişilemez anahtar koşulu
Key Vault'ta müşteri tarafından yönetilen bir anahtarla veri şifrelemeyi yapılandırdığınızda, sunucunun çevrimiçi kalması için bu anahtara sürekli erişim gerekir. Sunucu Key Vault'ta müşteri tarafından yönetilen anahtara erişimi kaybederse, sunucu 10 dakika içinde tüm bağlantıları reddetmeye başlar. Sunucu karşılık gelen bir hata iletisi gönderir ve sunucu durumunu Erişilemez olarak değiştirir. Sunucunun bu duruma ulaşma nedenlerinden bazıları şunlardır:
- Veri şifrelemesi etkin olan MySQL için Azure Veritabanı için belirli bir Noktaya Geri Yükleme sunucusu oluşturursak, yeni oluşturulan sunucu erişilemez durumda olur. Bunu Azure portal veya CLI aracılığıyla düzeltebilirsiniz.
- Veri şifrelemesi etkinleştirilmiş olan MySQL için Azure Veritabanı için okuma amaçlı bir çoğaltma oluşturursak, çoğaltma sunucusu erişilemez durumda olur. Bunu Azure portal veya CLI aracılığıyla düzeltebilirsiniz.
- KeyVault'ı silerseniz, MySQL için Azure Veritabanı anahtara erişemez ve Erişilemez duruma geçer. Key Vault'un kurtarılması ve sunucunun Kullanılabilir olması için veri şifrelemesini yeniden doğrulama.
- Anahtarı KeyVault'tan silersek, MySQL için Azure Veritabanı anahtara erişemez ve Erişilemez duruma geçer. Sunucuyu Kullanılabilir hale getirmek için Anahtarı kurtarın ve veri şifrelemesini yeniden doğrulama.
- Azure KeyVault'ta depolanan anahtarın süresi dolarsa anahtar geçersiz olur ve MySQL için Azure Veritabanı Erişilemez duruma geçer. CLI kullanarak anahtar süre sonu tarihini uzatın ve ardından sunucuyu Kullanılabilir hale getirmek için veri şifrelemesini yeniden doğrulayın.
Key Vault'tan yanlışlıkla anahtar erişimi iptali
Key Vault'a yeterli erişim haklarına sahip biri, anahtara sunucu erişimini yanlışlıkla şu şekilde devre dışı bırakabilir:
- Anahtar kasasının
get
,wrapKey
veunwrapKey
izinlerini sunucudan iptal etme. - Anahtar siliniyor.
- Anahtar kasası siliniyor.
- Anahtar kasasının güvenlik duvarı kurallarını değiştirme.
- Microsoft Entra Id'de sunucunun yönetilen kimliğini silme.
Key Vault'ta müşteri tarafından yönetilen anahtarı izleme
Veritabanı durumunu izlemek ve saydam veri şifreleme koruyucusu erişiminin kaybıyla ilgili uyarıyı etkinleştirmek için aşağıdaki Azure özelliklerini yapılandırın:
Azure Kaynak Durumu: Müşteri anahtarına erişimi kaybedilen erişilemez bir veritabanı, veritabanına ilk bağlantı reddedildikten sonra "Erişilemez" olarak gösterilir.
Etkinlik günlüğü: Müşteri tarafından yönetilen Key Vault'ta müşteri anahtarına erişim başarısız olduğunda, girişler etkinlik günlüğüne eklenir. Bu olaylar için uyarılar oluşturursanız, erişimi mümkün olan en kısa sürede yeniden devreye alabilirsiniz.
Eylem grupları: Tercihlerinize göre size bildirim ve uyarı göndermek için bu grupları tanımlayın.
Key Vault'da müşterinin yönetilen anahtarıyla geri yükleme ve çoğaltma
MySQL için Azure Veritabanı müşterinin Key Vault'ta depolanan yönetilen anahtarıyla şifrelendiğinde sunucunun yeni oluşturulan tüm kopyaları da şifrelenir. Bu yeni kopyayı yerel veya coğrafi geri yükleme işlemi aracılığıyla veya okuma amaçlı çoğaltmalar aracılığıyla yapabilirsiniz. Ancak kopya, yeni bir müşterinin şifreleme için yönetilen anahtarını yansıtacak şekilde değiştirilebilir. Müşteri tarafından yönetilen anahtar değiştirildiğinde, sunucunun eski yedeklemeleri en son anahtarı kullanmaya başlar.
Geri yükleme veya okuma amaçlı çoğaltma oluşturma sırasında müşteri tarafından yönetilen veri şifrelemesini ayarlarken karşılaşılan sorunları önlemek için kaynak ve geri yüklenen/çoğaltma sunucularında şu adımları izlemek önemlidir:
- Kaynak MySQL için Azure Veritabanı geri yükleme veya okuma amaçlı çoğaltma oluşturma işlemini başlatın.
- Benzersiz kimliğine henüz Key Vault izinleri verilmediğinden, yeni oluşturulan sunucuyu (geri yüklenen/çoğaltma) erişilemez durumda tutun.
- Geri yüklenen/çoğaltma sunucusunda, yeni oluşturulan sunucuya Key Vault'ta depolanan anahtar üzerinde sarmalama ve açma izinlerinin verildiğinden emin olmak için veri şifreleme ayarlarında müşteri tarafından yönetilen anahtarı yeniden doğrulayın.
Sınırlamalar
MySQL için Azure Veritabanı için, bekleyen verilerin müşteri tarafından yönetilen anahtar (CMK) kullanılarak şifrelenmesi desteğinin birkaç sınırlaması vardır:
Bu işlev desteği Genel Amaçlı ve Bellek için İyileştirilmiş fiyatlandırma katmanlarıyla sınırlıdır.
Bu özellik yalnızca genel amaçlı depolama v2'yi (16 TB'a kadar) destekleyen bölgelerde ve sunucularda desteklenir. 16 TB'a kadar depolamayı destekleyen Azure bölgelerinin listesi için buradaki belgelerde yer alan depolama bölümüne bakın
Not
- Genel amaçlı depolama v2'yi destekleyen Azure bölgelerinde oluşturulan tüm yeni MySQL sunucuları, müşteri yöneticisi anahtarlarıyla şifreleme desteği sağlanır. Point In Time Restored (PITR) sunucusu veya okuma çoğaltması teoride 'yeni' olmalarına rağmen nitelenmeyecektir.
- Sağlanan sunucu genel amaçlı depolama v2'nizin sağlanıp sağlanmadığını doğrulamak için portaldaki fiyatlandırma katmanı dikey penceresine gidebilir ve sağlanan sunucunuz tarafından desteklenen maksimum depolama boyutuna bakabilirsiniz. Kaydırıcıyı 4 TB'a kadar taşıyabilirseniz, sunucunuz genel amaçlı depolama v1 üzerindedir ve müşteri tarafından yönetilen anahtarlarla şifrelemeyi desteklemez. Ancak veriler, hizmet tarafından yönetilen anahtarlar kullanılarak her zaman şifrelenir.
Şifreleme yalnızca RSA 2048 şifreleme anahtarıyla desteklenir.
Sonraki adımlar
- Azure portalını ve Azure CLI'yı kullanarak MySQL için Azure veritabanınız için müşteri tarafından yönetilen bir anahtarla veri şifrelemesi ayarlamayı öğrenin.
- MySQL için Azure Veritabanı - Tek Sunucu için depolama türü desteği hakkında bilgi edinin