Aracılığıyla paylaş


SQL Server Management Studio kullanarak Always Encrypted anahtarlarını döndürme

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

Bu makalede , SQL Server Management Studio (SSMS) ile Always Encrypted sütun ana anahtarlarını ve sütun şifreleme anahtarlarını döndürme görevleri açıklanmaktadır.

En iyi yöntem önerileri ve önemli güvenlik konuları da dahil olmak üzere Always Encrypted anahtar yönetimine genel bakış için bkz. Always Encrypted için anahtar yönetimine genel bakış.

Not

Azure Key Vault'ta yönetilen bir HSM'de depolanan sütun ana anahtarlarını kullanmak için SSMS 18.9 veya sonraki bir sürüm gerekir.

Sütun ana anahtarlarını döndürme

Sütun ana anahtarının döndürmesi, mevcut bir sütun ana anahtarını yeni bir sütun ana anahtarıyla değiştirme işlemidir. Anahtarın gizliliği ihlal edildiyse veya kuruluşunuzun şifreleme anahtarlarının düzenli aralıklarla döndürülmesi gereken ilkelerine veya uyumluluk düzenlemelerine uymak için anahtarı döndürmeniz gerekebilir. Sütun ana anahtarı döndürme, geçerli sütun ana anahtarıyla korunan sütun şifreleme anahtarlarının şifresini çözmeyi, yeni sütun ana anahtarını kullanarak bunları yeniden şifrelemeyi ve anahtar meta verilerini güncelleştirmeyi içerir.

1. Adım: Yeni bir sütun ana anahtarı sağlama

Yeni Sütun Anahtar Diyalog Bölümünü Kullanarak Sütun Ana Anahtarlarını Sağlayın adımlarını izleyin.

Not

Anahtar deposu olarak Azure Key Vault kullanılırken, müşteri tarafından yönetilen çok kiracılı anahtar döndürme desteklenmez. Yeni müşteri tarafından yönetilen anahtarın mevcut anahtarla aynı kiracıda olduğundan emin olun.

2. Adım: Sütun şifreleme anahtarlarını yeni sütun ana anahtarıyla şifreleme

Sütun ana anahtarı genellikle bir veya daha fazla sütun şifreleme anahtarını korur. Her sütun şifreleme anahtarı, veritabanında depolanan ve sütun şifreleme anahtarını sütun ana anahtarıyla şifrelemenin ürünü olan şifrelenmiş bir değere sahiptir. Bu adımda, döndürdüğünüz sütun ana anahtarıyla korunan sütun şifreleme anahtarlarının her birini yeni sütun ana anahtarıyla şifreleyin ve yeni şifrelenmiş değeri veritabanında depolayın. Sonuç olarak, döndürmeden etkilenen her sütun şifreleme anahtarı iki şifreli değere sahip olur: mevcut sütun ana anahtarıyla şifrelenmiş bir değer ve yeni sütun ana anahtarıyla şifrelenmiş yeni bir değer.

  1. Nesne Gezgini'ni kullanarak Güvenlik>Her Zaman Şifreli Anahtarlar>Sütun Ana Anahtarları klasörüne gidin ve yenilediğiniz sütun ana anahtarını bulun.
  2. Sütun ana anahtarına sağ tıklayın ve Döndür'ü seçin.
  3. Sütun Ana Anahtarı Döndürme iletişim kutusunda, 1. Adımda oluşturduğunuz yeni sütun ana anahtarınızın adını Hedef alanında seçin.
  4. Mevcut sütun ana anahtarları tarafından korunan sütun şifreleme anahtarları listesini gözden geçirin. Bu tuşlar döndürmeden etkilenir.
  5. Tamam'ı seçin.

SQL Server Management Studio, eski sütun ana anahtarıyla korunan sütun şifreleme anahtarlarının meta verilerini ve eski ve yeni sütun ana anahtarlarının meta verilerini alır. Ardından SSMS, eski sütun ana anahtarını içeren anahtar deposuna erişmek ve sütun şifreleme anahtarlarının şifresini çözmek için sütun ana anahtarı meta verilerini kullanır. Daha sonra SSMS, yeni sütun ana anahtarının bulunduğu anahtar deposuna erişerek sütun şifreleme anahtarlarının şifrelenmiş yeni değerlerini oluşturur ve ardından meta verilere yeni değerleri ekler ( ALTER COLUMN ENCRYPTION KEY deyimleri oluşturma ve verme).

Not

Eski sütun ana anahtarıyla şifrelenmiş olan sütun şifreleme anahtarlarının her birinin başka bir sütun ana anahtarıyla şifrelenmediğinden emin olun. Başka bir deyişle, döndürmeden etkilenen her sütun şifreleme anahtarının veritabanında tam olarak bir şifrelenmiş değere sahip olması gerekir. Etkilenen bir sütun şifreleme anahtarının birden fazla şifrelenmiş değeri varsa, döndürmeye devam etmeden önce değeri kaldırmanız gerekir (bkz. Sütun şifreleme anahtarının şifrelenmiş değerini kaldırma hakkında 4. Adım ).

3. Adım: Uygulamalarınızı yeni sütun ana anahtarıyla yapılandırma

Bu adımda, döndürdüğünüz sütun ana anahtarıyla korunan veritabanı sütunlarını sorgulayan tüm istemci uygulamalarınızın yeni sütun ana anahtarına (yani, sütun ana anahtarıyla şifrelenmiş bir sütun şifreleme anahtarıyla şifrelenmiş veritabanı sütunlarına) erişebildiğinden emin olmanız gerekir. Bu adım, yeni sütun ana anahtarınızın içinde olduğu anahtar deposunun türüne bağlıdır. Mesela:

  • Yeni sütun ana anahtarı Windows Sertifika Deposu'nda depolanan bir sertifikaysa, sertifikayı veritabanındaki sütun ana anahtarınızın anahtar yolunda belirtilen konumla aynı sertifika deposu konumuna (Geçerli Kullanıcı veya Yerel bilgisayar) dağıtmanız gerekir. Uygulamanın sertifikaya erişebilmesi gerekir:
    • Sertifika Geçerli Kullanıcı sertifika deposu konumunda depolanıyorsa, sertifikanın uygulamanın Windows kimliğinin (kullanıcı) Geçerli Kullanıcı deposuna aktarılması gerekir.
    • Sertifika Yerel bilgisayar sertifika deposu konumunda depolanıyorsa, uygulamanın Windows kimliğinin sertifikaya erişme izni olmalıdır.
  • Yeni sütun ana anahtarı Microsoft Azure Key Vault'ta depolanıyorsa uygulamanın Azure'da kimlik doğrulaması yapması ve anahtara erişim izni olması için uygulanması gerekir.

Ayrıntılar için bkz. Always Encrypted için sütun ana anahtarları oluşturma ve depolama.

Not

Döndürmenin bu noktasında hem eski sütun ana anahtarı hem de yeni sütun ana anahtarı geçerlidir ve verilere erişmek için kullanılabilir.

4. Adım: Eski sütun ana anahtarıyla şifrelenmiş sütun şifreleme anahtarı değerlerini temizleme

Tüm uygulamalarınızı yeni sütun ana anahtarını kullanacak şekilde yapılandırdıktan sonra, eski sütun ana anahtarıyla şifrelenmiş sütun şifreleme anahtarlarının değerlerini veritabanından kaldırın. Eski değerlerin kaldırılması bir sonraki döndürmeye hazır olduğunuzdan emin olur (unutmayın, döndürülecek bir sütun ana anahtarıyla korunan her sütun şifreleme anahtarının tam olarak bir şifrelenmiş değere sahip olması gerekir).

Eski sütun ana anahtarını arşivlemeden veya kaldırmadan önce eski değeri temizlemenin bir diğer nedeni performansla ilgilidir: Şifrelenmiş bir sütunu sorgularken Always Encrypted özellikli bir istemci sürücüsünün iki değerin şifresini çözmeyi denemesi gerekebilir: eski değer ve yenisi. Sürücü, uygulamanın ortamında iki sütun ana anahtarından hangisinin geçerli olduğunu bilmez, bu nedenle sürücü her iki şifrelenmiş değeri de sunucudan alır. Değerlerden birinin şifresini çözme işlemi başarısız olursa, sütun ana anahtarıyla korunduğundan kullanılamaz (örneğin, depodan kaldırılan eski sütun ana anahtarı), sürücü yeni sütun ana anahtarını kullanarak başka bir değerin şifresini çözmeyi dener.

Uyarı

Bir sütun şifreleme anahtarının değerini ilgili sütun ana anahtarı bir uygulamanın kullanımına sunulmadan önce kaldırırsanız, uygulama artık veritabanı sütununun şifresini çözemez.

  1. Nesne Gezgini'ni kullanarak Güvenlik>Always Encrypted Anahtarları klasörüne gidin ve değiştirmek istediğiniz mevcut sütun ana anahtarını bulun.
  2. Mevcut sütun ana anahtarınıza sağ tıklayın ve Temizle'yi seçin.
  3. Kaldırılacak sütun şifreleme anahtarı değerlerinin listesini gözden geçirin.
  4. Tamam'ı seçin.

SQL Server Management Studio, eski sütun ana anahtarıyla şifrelenmiş olan sütun şifreleme anahtarlarının şifrelenmiş değerlerini bırakmak için ALTER COLUMN ENCRYPTION KEY deyimleri verir.

5. Adım: Eski sütun ana anahtarınız için meta verileri silme

Eski sütun ana anahtarının tanımını veritabanından kaldırmayı seçerseniz aşağıdaki adımları kullanın.

  1. Nesne Gezgini'ni kullanarak Güvenlik>Column Master Keys>Always Encrypted Anahtarları klasörüne gidin ve veritabanından kaldırılacak eski sütun ana anahtarını bulun.
  2. Eski sütun ana anahtarına sağ tıklayın ve Sil'i seçin. (Bu, sütun ana anahtarı meta verilerini kaldırmak için bir DROP COLUMN MASTER KEY deyimi oluşturur ve verir.)
  3. Tamam'ı seçin.

Not

Döndürme sonrasında eski sütun ana anahtarını kalıcı olarak silmemenizi kesinlikle öneririz. Bunun yerine, eski sütun ana anahtarını geçerli anahtar deposunda tutmalı veya başka bir güvenli yerde arşivlemelisiniz. Veritabanınızı yedekleme dosyasından yeni sütun ana anahtarı yapılandırılmadan önceki bir noktaya geri yüklerseniz verilere erişmek için eski anahtara ihtiyacınız olur.

Döndürme izinleri için sütun ana anahtarı

Sütun ana anahtarını döndürmek için aşağıdaki veritabanı izinleri gerekir:

  • ALTER ANY COLUMN MASTER KEY - Yeni sütun ana anahtarı için meta veriler oluşturmak ve eski sütun ana anahtarının meta verilerini silmek için gereklidir.
  • ALTER ANY COLUMN ENCRYPTION KEY - Sütun şifreleme anahtarı meta verilerini değiştirmek için gereklidir (yeni şifrelenmiş değerler ekleyin).

Ayrıca, hem eski sütun ana anahtarına hem de anahtar depolarındaki yeni sütun ana anahtarına erişebilmek için anahtar deposu izinlerine sahip olmanız gerekir. Anahtar yönetimi işlemleri için gereken anahtar deposu izinleri hakkında ayrıntılı bilgi için Always Encrypted için sütun ana anahtarları oluşturma ve depolama bölümüne gidin ve anahtar deponuzla ilgili bir bölüm bulun.

Sütun şifreleme anahtarlarını döndürme

Sütun şifreleme anahtarını döndürmek, döndürülecek anahtarla şifrelenmiş tüm sütunlardaki verilerin şifresini çözmeyi ve yeni sütun şifreleme anahtarını kullanarak verileri yeniden şifrelemeyi içerir.

Not

Sütun şifreleme anahtarını döndürmek, döndürülmekte olan anahtarla şifrelenmiş sütunlar içeren tablolar büyükse çok uzun sürebilir. Veriler yeniden şifrelenirken, uygulamalarınız etkilenen tablolara yazamaz. Bu nedenle kuruluşunuzun bir sütun şifreleme anahtarı döndürmesini çok dikkatli bir şekilde planlaması gerekir. Sütun şifreleme anahtarını döndürmek için Always Encrypted Sihirbazı'nı kullanın.

  1. Veritabanınızın sihirbazını açın: Veritabanınıza sağ tıklayın, Görevler'in üzerine gelin ve Sütunları Şifrele'yi seçin.
  2. Giriş sayfasını gözden geçirin ve İleri'yi seçin.
  3. Sütun Seçimi sayfasında tabloları genişletin ve değiştirmek istediğiniz ve eski sütun şifreleme anahtarıyla şifrelenmiş olan tüm sütunları bulun.
  4. Eski sütun şifreleme anahtarıyla şifrelenmiş her sütun için Şifreleme Anahtarı yeni bir otomatik oluşturulan anahtar olarak ayarlayın. Not: Alternatif olarak, sihirbazı çalıştırmadan önce yeni bir sütun şifreleme anahtarı oluşturabilirsiniz. Bkz. Yeni Sütun Şifreleme Anahtarı İletişim Kutusu ile Sütun Şifreleme Anahtarlarını Sağlama.
  5. Ana Anahtar Yapılandırması sayfasında, yeni anahtarı depolamak için bir konum seçin ve bir ana anahtar kaynağı seçin ve ardından İleri'yi seçin. Not: Mevcut bir sütun şifreleme anahtarı (otomatik oluşturulan anahtar değil) kullanıyorsanız, bu sayfada gerçekleştirilecek bir eylem yoktur.
  6. Doğrulama sayfasında, betiğin hemen çalıştırılıp çalıştırılmayacağını veya bir PowerShell betiği oluşturulup oluşturulmayacağını seçin ve ardından İleri'yi seçin.
  7. Özet sayfasında, seçtiğiniz seçenekleri gözden geçirin, ardından Son'u seçin ve tamamlandığında sihirbazı kapatın.
  8. Nesne Gezgini'ni kullanarak Güvenlik/Always Encrypted Anahtarlar/Sütun Şifreleme Anahtarları klasörüne gidin ve veritabanından kaldırılacak eski sütun şifreleme anahtarınızı bulun. Tuşa sağ tıklayın ve Sil'i seçin.

Sütun şifreleme anahtarlarını döndürme izinleri

Sütun şifreleme anahtarını döndürmek için şu veritabanı izinleri gerekir: ALTER ANY COLUMN MASTER KEY - yeni bir otomatik oluşturulan sütun şifreleme anahtarı kullanırsanız gereklidir (yeni bir sütun ana anahtarı ve yeni meta verileri de oluşturulur). Yeni sütun şifreleme anahtarına meta veri eklemek için Herhangi bir sütun şifreleme anahtarını -required değiştirin.

Ayrıca hem yeni hem de eski sütun şifreleme anahtarı için sütun ana anahtarlarına erişebilmek için anahtar deposu izinlerine sahip olmanız gerekir. Anahtar yönetimi işlemleri için gereken anahtar deposu izinleri hakkında ayrıntılı bilgi için Always Encrypted için sütun ana anahtarları oluşturma ve depolama bölümüne gidin ve anahtar deponuzla ilgili bir bölüm bulun.