Azure vm 'lerinde SQL Server için Azure Key Vault tümleştirmesini yapılandırma (Kaynak Yöneticisi)

AŞAĞıDAKILER IÇIN GEÇERLIDIR: SQL Server VM'de sanal makine

saydam veri şifrelemesi (tde), sütun düzeyinde şifreleme (CLE)ve yedekleme şifrelemesigibi birden çok SQL Server şifreleme özelliği vardır. Bu şifreleme biçimleri, şifreleme için kullandığınız şifreleme anahtarlarını yönetmenizi ve depolamanızı gerektirir. Azure Key Vault hizmeti, bu anahtarların güvenli ve yüksek oranda kullanılabilir bir konumda güvenliğini ve yönetimini geliştirmek için tasarlanmıştır. SQL Server bağlayıcısı SQL Server bu anahtarları Azure Key Vault kullanmasına olanak sağlar.

şirket içi SQL Server çalıştırıyorsanız, şirket içi SQL Server örneğinden Azure Key Vault erişmekiçin izleyebileceğiniz adımlar vardır. ancak, Azure vm 'lerinde SQL Server için Azure Key Vault tümleştirme özelliğini kullanarak zamandan tasarruf edebilirsiniz.

bu özellik etkinleştirildiğinde, SQL Server bağlayıcısını otomatik olarak kurar, EKM sağlayıcısını Azure Key Vault erişimi için yapılandırır ve kasanıza erişmenize izin veren kimlik bilgisini oluşturur. Daha önce bahsedilen şirket içi belgelerdeki adımlara bakarsanız, bu özelliğin 2 ve 3. adımları otomatikleştirdiği hakkında bilgi alabilirsiniz. Hala el ile yapmanız gereken tek şey, anahtar kasasını ve anahtarları oluşturmaktır. buradan SQL Server sanal makinenizin tüm kurulumu otomatikleştirilir. bu özellik bu kurulumu tamamladıktan sonra, veritabanlarınızı veya yedeklemelerinizi normal şekilde şifrelemeye başlamak için Transact-SQL (T-SQL) deyimlerini çalıştırabilirsiniz.

AKV tümleştirmesi için hazırlanma

SQL Server sanal bilgisayarınızı yapılandırmak üzere Azure Key Vault tümleştirme kullanmak için birkaç önkoşul vardır:

  1. Azure PowerShell 'i yükler
  2. Azure Active Directory oluşturma
  3. Anahtar kasası oluşturma

Aşağıdaki bölümlerde, bu Önkoşullar ve daha sonra PowerShell cmdlet 'lerini çalıştırmak için toplamanız gereken bilgiler açıklanır.

Not

Bu makalede, Azure ile etkileşim kurmak için önerilen PowerShell modülü olan Azure Az PowerShell modülü kullanılır. Az PowerShell modülünü kullanmaya başlamak için Azure PowerShell’i yükleyin. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.

Azure PowerShell yüklensin

en son Azure PowerShell modülünü yüklediğinizden emin olun. Daha fazla bilgi için bkz. Azure PowerShell’i yükleme ve yapılandırma.

Azure Active Directory bir uygulamayı kaydetme

ilk olarak, aboneliğinizde bir Azure Active Directory (AAD) olması gerekir. Birçok avantaj arasında, bu, belirli kullanıcılar ve uygulamalar için anahtar kasanıza izin vermenizi sağlar.

Sonra, bir uygulamayı AAD ile kaydedin. Bu size, sanal makinenizin ihtiyaç duyduğu anahtar kasanıza erişimi olan bir hizmet sorumlusu hesabı sağlar. Azure Key Vault makalesinde, bu adımları bir uygulamayı Azure Active Directory ile kaydet bölümünde bulabilir veya bu blog gönderisinin uygulama için kimlik al bölümünde ekran görüntüleriyle ilgili adımları görebilirsiniz. bu adımları tamamlamadan önce, daha sonra SQL sanal makinenizde Azure Key Vault tümleştirmeyi etkinleştirdiğinizde gerekli olan bu kayıt sırasında aşağıdaki bilgileri toplamanız gerekir.

  • Uygulama eklendikten sonra, kayıtlı uygulama dikey PENCERESINDE uygulama kimliğini (AAD ClientID veya AppID olarak da bilinir) bulun. Uygulama KIMLIĞI daha sonra Azure Key Vault tümleştirmesini etkinleştirmek için PowerShell betiğindeki $spName (hizmet asıl adı) parametresine atanır.

    Uygulama Kimliği

  • Anahtarınızı oluştururken bu adımlar sırasında, aşağıdaki ekran görüntüsünde gösterildiği gibi anahtarınızın parolasını kopyalayın. Bu anahtar gizli anahtarı daha sonra PowerShell betiğindeki $spSecret (hizmet sorumlusu gizli anahtarı) parametresine atanır.

    AAD gizli anahtarı

  • Uygulama KIMLIĞI ve gizli anahtar, SQL Server bir kimlik bilgisi oluşturmak için de kullanılacaktır.

  • Bu yeni uygulama KIMLIĞINI (veya istemci KIMLIĞI) aşağıdaki erişim izinlerine sahip olacak şekilde yetkilendirmelisiniz: Get, wrapKey, unwrapKey. Bu, set-AzKeyVaultAccessPolicy cmdlet 'i ile yapılır. Daha fazla bilgi için bkz. Azure Key Vault genel bakış.

Anahtar Kasası oluşturma

SANAL makinenizde şifreleme için kullanacağınız anahtarları depolamak üzere Azure Key Vault kullanmak için bir anahtar kasasına erişmeniz gerekir. Anahtar kasanızı henüz yüklemediyseniz Azure Key Vault kullanmaya başlama makalesindeki adımları izleyerek bir tane oluşturun. bu adımları tamamlamadan önce, bu ayarlama sırasında, daha sonra SQL sanal makinenizde Azure Key Vault tümleştirmeye olanak tanımak için gereken bazı bilgiler vardır.

New-AzKeyVault -VaultName 'ContosoKeyVault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East Asia'

Anahtar Kasası oluşturma adımını aldığınızda, Anahtar Kasası URL 'SI olan döndürülen Vaulturi özelliğini aklınızda bulabilirsiniz. Bu adımda verilen örnekte, aşağıda gösterildiği gibi, Anahtar Kasası adı Contosokeykasadır, bu nedenle Anahtar Kasası URL 'SI olur https://contosokeyvault.vault.azure.net/ .

Anahtar Kasası URL 'SI daha sonra Azure Key Vault tümleştirmesini etkinleştirmek için PowerShell betiğindeki $akvURL parametresine atanır.

anahtar kasası oluşturulduktan sonra anahtar kasasına bir anahtar eklememiz gerekir, daha sonra SQL Server bir asimetrik anahtar oluştururken bu anahtara başvurulur.

Not

genişletilebilir anahtar yönetimi (EKM) sağlayıcısı sürüm 1.0.4.0, bir hizmet olarak altyapı (ıaas) uzantısı SQLaracılığıyla SQL Server VM 'ye yüklenir. SQL ıaas uzantısını yükseltmek, sağlayıcı sürümünü güncelleştirmeyecektir. lütfen EKM sağlayıcısı sürümünü gerekirse (örneğin, SQL yönetilen bir örneğe geçiş yaparken) el ile yükseltmeyi düşünün.

Key Vault Tümleştirmesini Etkinleştirme ve yapılandırma

Sağlama sırasında Key Vault tümleştirmeyi etkinleştirebilir veya mevcut VM 'Ler için yapılandırabilirsiniz.

Yeni VM 'Ler

Kaynak Yöneticisi ile yeni bir SQL sanal makine sağlıyorsanız Azure portal Azure Key Vault tümleştirmeyi etkinleştirmek için bir yol sağlar. Azure Key Vault özelliği yalnızca SQL Server Enterprise, geliştirici ve değerlendirme sürümleri için kullanılabilir.

SQL Azure Anahtar Kasası Tümleştirme

sağlama hakkında ayrıntılı yönergeler için, bkz. Azure portal SQL sanal makinesi sağlama.

Mevcut VM 'Ler

mevcut SQL sanal makineler için SQL sanal makineler kaynağınızı açın ve Ayarlar' nın altında güvenlik ' i seçin. Azure Key Vault tümleştirmesini etkinleştirmek için Etkinleştir ' i seçin.

SQL Mevcut VM 'Ler için Key Vault tümleştirme

İşiniz bittiğinde, değişikliklerinizi kaydetmek için güvenlik sayfasının alt kısmındaki Uygula düğmesini seçin.

Not

burada oluşturduğumuz kimlik bilgisi adı, daha sonra SQL bir oturum açmayla eşlenecek. bu, SQL oturum açmanın anahtar kasasına erişmesini sağlar.

Not

Ayrıca, bir şablon kullanarak Key Vault tümleştirmeyi yapılandırabilirsiniz. Daha fazla bilgi için bkz. Azure Key Vault tümleştirme Için Azure hızlı başlangıç şablonu.

Sonraki adımlar

Azure Key Vault tümleştirmeyi etkinleştirdikten sonra SQL sanal makinenizde SQL Server şifrelemeyi etkinleştirebilirsiniz. İlk olarak, Anahtar Kasanızda bir asimetrik anahtar ve sanal makinenizde SQL Server içinde bir simetrik anahtar oluşturmanız gerekir. Daha sonra, veritabanınız ve yedeklemeleriniz için şifrelemeyi etkinleştirmek üzere T-SQL deyimlerini yürütebileceksiniz.

Avantajlarından faydalanabilirsiniz birkaç şifreleme biçimi vardır:

Aşağıdaki Transact-SQL betikleri, bu alanların her biri için örnekler sağlar.

Örnek önkoşulları

Her örnek iki önkoşul temel alır: CONTOSO_KEY adlı anahtar kasanızdan asimetrik bir anahtar ve Azure_EKM_cred adlı Akv tümleştirme özelliği tarafından oluşturulan kimlik bilgileri. Aşağıdaki Transact-SQL komutları, örnekleri çalıştırmak için bu önkoşulları ayarlar.

USE master;
GO

--create credential
--The <<SECRET>> here requires the <Application ID> (without hyphens) and <Secret> to be passed together without a space between them.
CREATE CREDENTIAL Azure_EKM_cred
    WITH IDENTITY = 'keytestvault', --keyvault
    SECRET = '<<SECRET>>'
FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;


--Map the credential to a SQL login that has sysadmin permissions. This allows the SQL login to access the key vault when creating the asymmetric key in the next step.
ALTER LOGIN [SQL_Login]
ADD CREDENTIAL Azure_EKM_cred;


CREATE ASYMMETRIC KEY CONTOSO_KEY
FROM PROVIDER [AzureKeyVault_EKM_Prov]
WITH PROVIDER_KEY_NAME = 'KeyName_in_KeyVault',  --The key name here requires the key we created in the key vault
CREATION_DISPOSITION = OPEN_EXISTING;

Saydam Veri Şifrelemesi (TDE)

  1. TDE veritabanı altyapısı tarafından kullanılacak SQL Server bir oturum açma oluşturun, ardından kimlik bilgisini buna ekleyin.

    USE master;
    -- Create a SQL Server login associated with the asymmetric key
    -- for the Database engine to use when it loads a database
    -- encrypted by TDE.
    CREATE LOGIN EKM_Login
    FROM ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the TDE Login to add the credential for use by the
    -- Database Engine to access the key vault
    ALTER LOGIN EKM_Login
    ADD CREDENTIAL Azure_EKM_cred;
    GO
    
  2. TDE için kullanılacak veritabanı şifreleme anahtarını oluşturun.

    USE ContosoDatabase;
    GO
    
    CREATE DATABASE ENCRYPTION KEY 
    WITH ALGORITHM = AES_128 
    ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the database to enable transparent data encryption.
    ALTER DATABASE ContosoDatabase
    SET ENCRYPTION ON;
    GO
    

Şifrelenmiş yedeklemeler

  1. Yedeklemeleri şifrelemek için veritabanı altyapısı tarafından kullanılacak SQL Server bir oturum açma oluşturun ve kimlik bilgisini buna ekleyin.

    USE master;
    -- Create a SQL Server login associated with the asymmetric key
    -- for the Database engine to use when it is encrypting the backup.
    CREATE LOGIN EKM_Login
    FROM ASYMMETRIC KEY CONTOSO_KEY;
    GO
    
    -- Alter the Encrypted Backup Login to add the credential for use by
    -- the Database Engine to access the key vault
    ALTER LOGIN EKM_Login
    ADD CREDENTIAL Azure_EKM_cred ;
    GO
    
  2. Anahtar kasasında depolanan asimetrik anahtarla şifrelemeyi belirterek veritabanını yedekleyin.

    USE master;
    BACKUP DATABASE [DATABASE_TO_BACKUP]
    TO DISK = N'[PATH TO BACKUP FILE]'
    WITH FORMAT, INIT, SKIP, NOREWIND, NOUNLOAD,
    ENCRYPTION(ALGORITHM = AES_256, SERVER ASYMMETRIC KEY = [CONTOSO_KEY]);
    GO
    

Sütun düzeyinde şifreleme (CLE)

Bu betik, anahtar kasasındaki asimetrik anahtarla korunan bir simetrik anahtar oluşturur ve sonra veritabanındaki verileri şifrelemek için simetrik anahtar kullanır.

CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY
WITH ALGORITHM=AES_256
ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;

DECLARE @DATA VARBINARY(MAX);

--Open the symmetric key for use in this session
OPEN SYMMETRIC KEY DATA_ENCRYPTION_KEY
DECRYPTION BY ASYMMETRIC KEY CONTOSO_KEY;

--Encrypt syntax
SELECT @DATA = ENCRYPTBYKEY(KEY_GUID('DATA_ENCRYPTION_KEY'), CONVERT(VARBINARY,'Plain text data to encrypt'));

-- Decrypt syntax
SELECT CONVERT(VARCHAR, DECRYPTBYKEY(@DATA));

--Close the symmetric key
CLOSE SYMMETRIC KEY DATA_ENCRYPTION_KEY;

Ek kaynaklar

Bu şifreleme özelliklerinin nasıl kullanılacağı hakkında daha fazla bilgi için bkz. SQL Server şifreleme ÖZELLIKLERIYLE ekm kullanma.

Bu makaledeki adımlarda, zaten bir Azure sanal makinesinde SQL Server çalıştırmakta olduğunuz varsayılmaktadır. Aksi takdirde bkz. Azure 'da SQL Server sanal makinesi sağlama. Azure VM 'lerinde SQL Server çalıştırmaya ilişkin diğer yönergeler için bkz. Azure sanal makinelerine genel bakış SQL Server.