Bu öğreticide, sanallaştırma tabanlı güvenlik (VBS) kuşatmalarını kullanarak Azure SQL Veritabanı güvenli kuşatmalarla Always Encrypted'ı kullanmaya başlamayı öğreneceksiniz. Size şunu gösterir:
VBS kuşatmalarıyla Always Encrypted'ı test etmek ve değerlendirmek için bir ortam oluşturma.
SQL Server Management Studio (SSMS) kullanarak verileri yerinde şifreleme ve şifrelenmiş sütunlara karşı zengin gizli sorgular verme.
Önkoşullar
Etkin bir Azure aboneliği. Aboneliğiniz yoksa ücretsiz bir hesap oluşturun. Kaynak oluşturabilmek için aboneliğin Katkıda Bulunan rolüne veya Sahip rolüne üye olmanız gerekir.
İsteğe bağlı, ancak Always Encrypted için sütun ana anahtarınızı depolamak için önerilir: Azure Key Vault'ta bir anahtar kasası. Anahtar kasası oluşturma hakkında bilgi için bkz . Hızlı Başlangıç: Azure portalını kullanarak anahtar kasası oluşturma.
Anahtar kasanız erişim ilkesi izin modelini kullanıyorsa, anahtar kasasında aşağıdaki anahtar izinlerine sahip olduğunuzdan emin olun: get, list, create, unwrap key, wrap key, , verify, sign. Bkz . Key Vault erişim ilkesi atama.
Azure rol tabanlı erişim denetimi (RBAC) izin modelini kullanıyorsanız anahtar kasanızın Key Vault Şifreleme Yetkilisi rolünün üyesi olduğunuzdan emin olun. Bkz . Azure rol tabanlı erişim denetimiyle Key Vault anahtarlarına, sertifikalarına ve gizli dizilerine erişim sağlama.
Araç gereksinimleri
Bu öğretici için SQL Server Management Studio (SSMS) gereklidir. VBS kuşatmalarını etkinleştirmek için PowerShell veya Azure CLI kullanmayı seçebilirsiniz.
SQL Server Management Studio'nun (SSMS) en son sürümünü indirin.
Az PowerShell modülü sürüm 9.3.0 veya üzeri gereklidir. Az PowerShell modülünü yükleme hakkında ayrıntılı bilgi için bkz . Azure Az PowerShell modülünü yükleme. Makinenizde yüklü olan Az PowerShell modülünün sürümünü belirlemek için PowerShell'den aşağıdaki komutu çalıştırın.
PowerShell
Get-InstalledModule -Name Az
Makinenizde Azure CLI 2.44.0 veya üzerinin yüklü olduğundan emin olun. Azure CLI'yı yükleme hakkında ayrıntılı bilgi için bkz . Azure CLI'yi yükleme. Yüklü sürümünüzü bulmak ve güncelleştirmeniz gerekip gerekmediğini görmek için az version komutunu çalıştırın.
Azure CLI
az version
1. Adım: Sunucu ve veritabanı oluşturma ve yapılandırma
Bu adımda, yeni bir Azure SQL Veritabanı mantıksal sunucusu ve yeni bir veritabanı oluşturacaksınız.
ContosoHR (örnek veritabanı değil) adlı boş bir veritabanı oluşturduğunuzdan emin olun.
2. Adım: VBS kapanımını etkinleştirme
Bu adımda, veritabanında güvenli kuşatmalarla Always Encrypted için gerekli olan VBS kapanımını etkinleştireceksiniz. Veritabanınızda VBS kuşatmalarını etkinleştirmek için tercih edilenEnclaveType veritabanı özelliğini VBS olarak ayarlamanız gerekir.
Sunucuya Bağlan iletişim kutusunda, sunucunuzun tam adını (örneğin, myserver135.database.windows.net) belirtin ve yönetici kullanıcı adını ve sunucuyu oluştururken belirttiğiniz parolayı girin.
Seçenekler'i >> seçin ve Bağlantı Özellikleri sekmesini seçin. ContosoHR veritabanını (varsayılan master veritabanı değil) seçtiğinizden emin olun.
Bu adımda, bir sütun ana anahtarı ve kapanım hesaplamalarına izin veren bir sütun şifreleme anahtarı oluşturacaksınız.
Önceki adımda yer alan SSMS örneğini kullanarak Nesne Gezgini veritabanınızı genişletin ve Güvenlik>Always Encrypted Keys'e gidin.
Yeni bir kapanım özellikli sütun ana anahtarı sağlayın:
Always Encrypted Keys'e sağ tıklayın ve Yeni Sütun Ana Anahtarı... öğesini seçin.
Yeni sütun ana anahtarı için bir ad girin: CMK1.
Kapanım hesaplamalarına izin ver'in seçili olduğunu doğrulayın. (Veritabanı için güvenli bir kapanım etkinleştirildiyse varsayılan olarak seçilir; veritabanınız DC serisi donanım yapılandırmasını kullandığından etkinleştirilmelidir.)
Azure Key Vault (önerilen) veya Windows Sertifika Deposu (Geçerli Kullanıcı veya Yerel Makine) seçeneğini belirleyin.
Azure Key Vault'ı seçerseniz Azure'da oturum açın, kullanmak istediğiniz anahtar kasasını içeren bir Azure aboneliği seçin ve anahtar kasanızı seçin. Yeni bir anahtar oluşturmak için Anahtar Oluştur'u seçin.
Windows Sertifika Deposu'nı seçerseniz, yeni bir sertifika oluşturmak için Sertifika Oluştur düğmesini seçin.
Tamam'ı seçin.
Yeni bir kapanım özellikli sütun şifreleme anahtarı oluşturun:
Always Encrypted Keys'e sağ tıklayın ve Yeni Sütun Şifreleme Anahtarı'nı seçin.
Yeni sütun şifreleme anahtarı için bir ad girin: CEK1.
Sütun ana anahtarı açılan listesinde, önceki adımlarda oluşturduğunuz sütun ana anahtarını seçin.
Tamam'ı seçin.
5. Adım: Bazı sütunları yerinde şifreleme
Bu adımda, sunucu tarafı kapanım içindeki SSN ve Maaş sütunlarında depolanan verileri şifreler ve ardından veriler üzerinde bir SELECT sorgusunu test edersiniz.
Yeni bir SSMS örneği açın ve veritabanı bağlantısı için Always Encrypted etkinken veritabanınıza bağlanın.
SSMS'nin yeni bir örneğini başlatın.
Sunucuya Bağlan iletişim kutusunda, sunucunuzun tam adını (örneğin, myserver135.database.windows.net) belirtin ve yönetici kullanıcı adını ve sunucuyu oluştururken belirttiğiniz parolayı girin.
Seçenekler'i >> seçin ve Bağlantı Özellikleri sekmesini seçin. ContosoHR veritabanını (varsayılan master veritabanı değil) seçtiğinizden emin olun.
Protokol'leri Yok olarak ayarlayın. Aşağıdaki ekran görüntüsüne bakın.
Bağlan'ı seçin.
Always Encrypted sorguları için Parametreleştirme'yi etkinleştirmeniz istenirse Etkinleştir'i seçin.
Aynı SSMS örneğini kullanarak (Always Encrypted etkinken), yeni bir sorgu penceresi açın ve aşağıdaki deyimleri çalıştırarak SSN ve Maaş sütunlarını şifreleyin.
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE deyimi, yukarıdaki betikte veritabanı için sorgu planı önbelleğini temizler. Tabloyu değiştirdikten sonra, parametre şifreleme bilgilerini yenilemek için tabloya erişen tüm toplu işlemlerin ve saklı yordamların planlarını temizlemeniz gerekir.
SSN ve Maaş sütunlarının artık şifrelendiğini doğrulamak için SSMS örneğinde veritabanı bağlantısı için Always Encrypted etkinleştirilmemiş yeni bir sorgu penceresi açın ve aşağıdaki deyimi yürütün. Sorgu penceresi SSN ve Maaş sütunlarında şifrelenmiş değerler döndürmelidir. Always Encrypted etkin durumdaki SSMS örneğini kullanarak aynı sorguyu yürütürseniz verilerin şifresinin çözülmüş olduğunu görmeniz gerekir.
SQL
SELECT * FROM [HR].[Employees];
6. Adım: Şifrelenmiş sütunlarda zengin sorgular çalıştırma
Şifrelenmiş sütunlarda zengin sorgular çalıştırabilirsiniz. Bazı sorgu işlemleri sunucu tarafı kapanımınızın içinde gerçekleştirilir.
Always Encrypted'ın etkinleştirildiği SSMS örneğinde Always Encrypted için Parametreleştirme'nin de etkinleştirildiğinden emin olun.
SSMS'nin ana menüsünde Araçlar'ı seçin.
Seçenekler'i seçin ....
Sorgu Yürütme>SQL Server>Gelişmiş'e gidin.
Always Encrypted için Parametreleştirmeyi Etkinleştir seçeneğinin işaretli olduğundan emin olun.
Tamam'ı seçin.
Yeni bir sorgu penceresi açın, aşağıdaki sorguyu yapıştırın ve yürütun. Sorgu, belirtilen arama ölçütlerine uyan düz metin değerleri ve satırlar döndürmelidir.
SQL
DECLARE @SSNPattern [char](11) = '%6818';
DECLARE @MinSalary [money] = $1000;
SELECT * FROM [HR].[Employees]
WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;
Always Encrypted etkin olmayan SSMS örneğinde aynı sorguyu yeniden deneyin. Bir hata oluşmalıdır.
Sonraki adımlar
Bu öğreticiyi tamamladıktan sonra aşağıdaki öğreticilerden birine gidebilirsiniz:
Microsoft PaaS ilişkisel veritabanı tekliflerini kullanarak bulut, şirket içi ve karma ilişkisel veritabanları için SQL Server veritabanı altyapısını yönetme.
Azure SQL Veritabanı'da Intel SGX kuşatmalarıyla Always Encrypted için temel bir ortam oluşturma, verileri yerinde şifreleme ve SQL Server Management Studio (SSMS) kullanarak şifrelenmiş sütunlara karşı zengin gizli sorgular oluşturma öğreticisi.