Kılavuz: Azure SQL Veritabanı'nda VBS güvenli bölgeleriyle "Always Encrypted" kullanmaya başlangıç

Şunlar için geçerlidir:Azure SQL Veritabanı

Bu öğreticide, sanallaştırma tabanlı güvenlik (VBS) alanlarını kullanarak Azure SQL Veritabanı'nda güvenli alanlarla 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

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.

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.

Hızlı Başlangıç: Tek bir veritabanı oluşturma - Azure SQL Veritabanı bölümüne gidin ve yeni bir Azure SQL Veritabanı mantıksal sunucu ve yeni bir veritabanı oluşturmak için Tek bir veritabanı oluşturma bölümündeki yönergeleri izleyin.

Önemli

ContosoHR (örnek veritabanı değil) adlı boş bir veritabanı oluşturduğunuzdan emin olun.

2. Adım: VBS güvenli alanı etkinleştirin

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.

  1. Azure portalını açın ve güvenli kuşatmalarını etkinleştirmek istediğiniz veritabanını bulun.

  2. Güvenlik ayarlarında Veri Şifrelemesi'ni seçin.

  3. Veri Şifrelemesi menüsünde Always Encrypted sekmesini seçin.

  4. Güvenli kuşatmaları etkinleştir ayarını ON olarak ayarlayın. Zaten ON olarak ayarlandıysa sonraki adımla devam edin.

    Azure portalındaki mevcut bir veritabanında güvenli kuşatmaları etkinleştirme işleminin ekran görüntüsü.

  5. Always Encrypted yapılandırmanızı kaydetmek için Kaydet'i seçin.

3. Adım: Veritabanınızı doldurma

Bu adımda bir tablo oluşturacak ve daha sonra şifreleyip sorguladığınız bazı verilerle dolduracaksınız.

  1. SSMS'yi açın ve veritabanı bağlantısında Always Encrypted etkinleştirilmeden oluşturduğunuz Azure SQL mantıksal sunucusunda ContosoHR veritabanına bağlanın.

    1. 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.

    2. Seçenekler'i >>olun.

    3. Always Encrypted sekmesini seçin.

    4. Always Encrypted'ı Etkinleştir (sütun şifrelemesi) onay kutusunun seçili olmadığından emin olun.

      Always Encrypted etkinleştirilmeden SSMS kullanarak Sunucuya Bağlan'ın ekran görüntüsü.

    5. Bağlan'ı seçin.

  2. adlı Employeesyeni bir tablo oluşturun.

    CREATE SCHEMA [HR];
    GO
    
    CREATE TABLE [HR].[Employees]
    (
        [EmployeeID] [int] IDENTITY(1,1) NOT NULL,
        [SSN] [char](11) NOT NULL,
        [FirstName] [nvarchar](50) NOT NULL,
        [LastName] [nvarchar](50) NOT NULL,
        [Salary] [money] NOT NULL
    ) ON [PRIMARY];
    GO
    
  3. Tabloya Employees birkaç çalışan kaydı ekleyin.

    INSERT INTO [HR].[Employees]
            ([SSN]
            ,[FirstName]
            ,[LastName]
            ,[Salary])
        VALUES
            ('795-73-9838'
            , N'Catherine'
            , N'Abel'
            , $31692);
    
    INSERT INTO [HR].[Employees]
            ([SSN]
            ,[FirstName]
            ,[LastName]
            ,[Salary])
        VALUES
            ('990-00-6818'
            , N'Kim'
            , N'Abercrombie'
            , $55415);
    

4. Adım: Kapanım özellikli anahtarları sağlama

Bu adımda, bir sütun ana anahtarı ve kapanım hesaplamalarına izin veren bir sütun şifreleme anahtarı oluşturacaksınız.

  1. Önceki adımda yer alan SSMS örneğini kullanarak Nesne Gezgini veritabanınızı genişletin ve Güvenlik>gidin.

  2. Yeni bir kapanım özellikli sütun ana anahtarı sağlayın:

    1. Always Encrypted Keys'e sağ tıklayın ve Yeni Sütun Ana Anahtarı... öğesini seçin.

    2. Yeni sütun ana anahtarı için bir ad girin: CMK1.

    3. Yerleşik hesaplamalara izin ver seçeneğinin 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.)

    4. 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.
    5. Tamam'ı seçin.

  3. Yeni bir kapanım özellikli sütun şifreleme anahtarı oluşturun:

    1. Always Encrypted Keys'e sağ tıklayın ve Yeni Sütun Şifreleme Anahtarı'nı seçin.
    2. Yeni sütun şifreleme anahtarı için bir ad girin: CEK1.
    3. Sütun ana anahtarı açılan listesinde, önceki adımlarda oluşturduğunuz sütun ana anahtarını seçin.
    4. Tamam'ı seçin.

5. Adım: Bazı sütunları yerinde şifreleme

Bu adımda, sunucu tarafı kılanım içinde, SSN ve Salary sütunlarında depolanan verileri şifreleyecek ve ardından bu veriler üzerinde bir SELECT sorgusunu test edeceksiniz.

  1. Yeni bir SSMS örneği açın ve veritabanı bağlantısı için Always Encrypted etkinken veritabanınıza bağlanın.

    1. SSMS'nin yeni bir örneğini başlatın.

    2. 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.

    3. Seçenekler'i >>olun.

    4. Always Encrypted sekmesini seçin.

    5. Always Encrypted'ı etkinleştir (sütun şifrelemesi) onay kutusunu seçin.

    6. Güvenli kuşatmaları etkinleştir'i seçin.

    7. Protokol'leri Yok olarak ayarlayın.

      Kanıtlama protokolü Yok olarak ayarlanmış SSMS Sunucuya Bağlan iletişim kutusunun Always Encrypted sekmesinin ekran görüntüsü.

    8. Bağlan'ı seçin.

    9. Always Encrypted sorguları için Parametreleştirme'yi etkinleştirmeniz istenirse Etkinleştir'i seçin.

  2. Aynı SSMS örneğini kullanarak (Always Encrypted etkin olduğunda), yeni bir sorgu penceresi açın ve aşağıdaki deyimleri çalıştırarak SSN ve Salary sütunlarını şifreleyin.

    ALTER TABLE [HR].[Employees]
    ALTER COLUMN [SSN] [char] (11) COLLATE Latin1_General_BIN2
    ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
    WITH
    (ONLINE = ON);
    
    ALTER TABLE [HR].[Employees]
    ALTER COLUMN [Salary] [money]
    ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
    WITH
    (ONLINE = ON);
    
    ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
    

    Not

    ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE ifadesi, yukarıdaki betikteki veritabanı için sorgu planı belleği ö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.

  3. ve SSN sütunlarının Salary artık şifrelendiğini doğrulamak için SSMS örneğinde veritabanı bağlantısı için Always Encrypted etkinleştirilmeden yeni bir sorgu penceresi açın ve aşağıdaki deyimi yürütün. Sorgu penceresi, `SSN` ve `Salary` 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.

    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ı enklavınızın içinde yapılacaktır.

  1. Always Encrypted'ın etkinleştirildiği SSMS örneğinde Always Encrypted için Parametreleştirme'nin de etkinleştirildiğinden emin olun.

    1. SSMS'nin ana menüsünde Araçlar'ı seçin.
    2. Seçenekler'i seçin ....
    3. Sorgu Yürütme>SQL Server>Gelişmiş'e gidin.
    4. Always Encrypted için Parametreleştirmeyi Etkinleştir seçeneğinin işaretli olduğundan emin olun.
    5. Tamam'ı seçin.
  2. 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.

    DECLARE @SSNPattern [char](11) = '%6818';
    DECLARE @MinSalary [money] = $1000;
    SELECT * FROM [HR].[Employees]
    WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;
    
  3. Always Encrypted etkin olmayan SSMS örneğinde aynı sorguyu yeniden deneyin. Bir hata oluşabilir.

Kılavuzlar

Bu eğitimi tamamladıktan sonra aşağıda belirtilen eğitimlerden birine gidebilirsiniz.