Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Key Vault tarafından korunan bir asimetrik anahtar kullanan yaygın SQL Server şifreleme etkinlikleri aşağıdaki üç alanı içerir.
Azure Key Vault'tan Asimetrik Anahtar kullanarak Saydam Veri Şifrelemesi
Key Vault'tan Asimetrik Anahtar Kullanarak Yedeklemeleri Şifreleme
Anahtar Kasasından Asimetrik Anahtar Kullanarak Sütun Düzeyinde Şifreleme
Bu konudaki adımları takip etmeden önce Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi için Kurulum Adımları konusunun IV ile I. bölümlerini tamamlayın.
Uyarı
1.0.0.440 ve daha eski sürümler değiştirilmiştir ve artık üretim ortamlarında desteklenmez. Microsoft İndirme Merkezi'ni ziyaret ederek ve "SQL Server Bağlayıcısı Yükseltmesi" altındaki SQL Server Bağlayıcısı Bakım ve Sorun Giderme sayfasındaki yönergeleri kullanarak sürüm 1.0.1.0 veya sonraki bir sürüme yükseltin.
Uyarı
Microsoft Entra Id daha önce Azure Active Directory (Azure AD) olarak biliniyordu.
Azure Key Vault'tan Asimetrik Anahtar kullanarak Saydam Veri Şifrelemesi
Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi için Kurulum Adımları konusunun IV ile I. Bölümleri tamamladıktan sonra, TDE kullanarak veritabanı şifreleme anahtarını şifrelemek için Azure Key Vault anahtarını kullanın. PowerShell kullanarak anahtarları döndürme hakkında daha fazla bilgi için bkz. PowerShell kullanarak Saydam Veri Şifrelemesi (TDE) koruyucuyu döndürme.
Önemli
Geçiş sonrasında anahtarın önceki sürümlerini silmeyin. Anahtarlar devredildiğinde, eski veritabanı yedeklemeleri, yedeklenen günlük dosyaları ve işlem günlüğü dosyaları gibi bazı veriler önceki anahtarlarla şifrelenir.
Bir kimlik bilgisi ve oturum açma bilgisi oluşturmanız ve veritabanındaki verileri ve günlükleri şifreleyecek bir veritabanı şifreleme anahtarı oluşturmanız gerekir. Veritabanını şifrelemek için veritabanında CONTROL izni gerekir. Aşağıdaki grafikte Azure Key Vault kullanılırken şifreleme anahtarının hiyerarşisi gösterilmektedir.
TDE için kullanılacak Veritabanı Altyapısı için bir SQL Server kimlik bilgisi oluşturma
Veritabanı Altyapısı, veritabanı yüklemesi sırasında Key Vault'a erişmek için Microsoft Entra uygulama kimlik bilgilerini kullanır. Verilen Key Vault izinlerini sınırlamak için Veritabanı Altyapısı için 1. Adımda açıklandığı gibi başka bir İstemci Kimliği ve Gizli Dizi oluşturmanızı öneririz.
Aşağıdaki Transact-SQL betiğini aşağıdaki yollarla değiştirin:
IDENTITY
argümanını (ContosoDevKeyVault
), Azure Key Vault'unuzu işaret edecek şekilde değiştirin.-
Genel Azure kullanıyorsanız,
IDENTITY
bağımsız değişkenini Azure Key Vault'unuzun adıyla (Bölüm II'den) değiştirin. -
Özel bir Azure bulutu (örneğin Azure Kamu, 21Vianet tarafından sağlanan Azure veya Azure Almanya) kullanıyorsanız,
IDENTITY
bağımsız değişkenini, Bölüm II'de döndürülen 3. adımdaki Kasa URI'siyle değiştirin. Kasa URI'sine "https://" eklemeyin.
-
Genel Azure kullanıyorsanız,
SECRET
bağımsız değişkeninin ilk bölümünü 1. Adımdan Microsoft Entra uygulaması İstemci Kimliği ile değiştirin. Bu örnekte İstemci Kimliği şeklindedirEF5C8E094D2A4A769998D93440D8115D
.Önemli
İstemci Kimliği'nden kısa çizgileri kaldırmanız gerekir.
Bağımsız değişkenin
SECRET
ikinci bölümünü, Bölüm I'den gelen İstemci Gizli Anahtarı ile tamamlayın. Bu örnekte, Bölüm 1'deki İstemci Gizli AnahtarıReplaceWithAADClientSecret
.SECRET bağımsız değişkeninin son dizesi, kısa çizgi içermeyen uzun bir harf ve sayı dizisi olacaktır.
USE master; CREATE CREDENTIAL Azure_EKM_TDE_cred WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplaceWithAADClientSecret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
TDE için Veritabanı Altyapısına yönelik bir SQL Server oturumu oluşturun
Bir SQL Server girişi oluşturun ve 1. adım'dan kimlik bilgilerini ona ekleyin. Bu Transact-SQL örnek, daha önce içeri aktarılan anahtarın aynısını kullanır.
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 TDE_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 TDE_Login ADD CREDENTIAL Azure_EKM_TDE_cred ; GO
Veritabanı Şifreleme Anahtarı (DEK) oluşturma
DEK, veritabanı örneğindeki verilerinizi ve günlük dosyalarınızı şifreler ve ardından Azure Key Vault asimetrik anahtarıyla şifrelenir. DEK, SQL Server tarafından desteklenen herhangi bir algoritma veya anahtar uzunluğu kullanılarak oluşturulabilir.
USE ContosoDatabase; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER ASYMMETRIC KEY CONTOSO_KEY; GO
TDE'i Aç
-- Alter the database to enable transparent data encryption. ALTER DATABASE ContosoDatabase SET ENCRYPTION ON; GO
Management Studio'yu kullanarak, Nesne Gezgini ile veritabanınıza bağlanarak TDE'nin açık olduğunu doğrulayın. Veritabanınıza sağ tıklayın, Görevler'in üzerine gelin ve ardından Veritabanı Şifrelemesini Yönet'e tıklayın.
>
Veritabanı Şifrelemesini Yönet iletişim kutusunda TDE'nin açık olduğunu ve DEK'yi hangi asimetrik anahtarın şifrelediğini onaylayın.
Alternatif olarak, aşağıdaki Transact-SQL betiğini yürütebilirsiniz. 3 şifreleme durumu şifrelenmiş bir veritabanını gösterir.
USE MASTER SELECT * FROM sys.asymmetric_keys -- Check which databases are encrypted using TDE SELECT d.name, dek.encryption_state FROM sys.dm_database_encryption_keys AS dek JOIN sys.databases AS d ON dek.database_id = d.database_id;
Uyarı
Herhangi
tempdb
bir veritabanı TDE'yi etkinleştirildiğinde veritabanı otomatik olarak şifrelenir.
Key Vault'tan Asimetrik Anahtar Kullanarak Yedeklemeleri Şifreleme
Şifrelenmiş yedeklemeler SQL Server 2014 (12.x) ile başlayarak desteklenir. Aşağıdaki örnek, anahtar kasasında asimetrik anahtarla korunan bir veri şifreleme anahtarını şifreleyen bir yedekleme oluşturur ve geri yükler.
Veritabanı Altyapısı, veritabanı yüklemesi sırasında Key Vault'a erişmek için Microsoft Entra uygulama kimlik bilgilerini kullanır. Verilen Key Vault izinlerini sınırlamak için Veritabanı Altyapısı için 1. Adımda açıklandığı gibi başka bir İstemci Kimliği ve Gizli Dizi oluşturmanızı öneririz.
Veritabanı Altyapısı'nın Yedekleme Şifrelemesi için kullanacağı SQL Server kimlik bilgileri oluşturma
Aşağıdaki Transact-SQL betiğini aşağıdaki yollarla değiştirin:
IDENTITY
argümanını (ContosoDevKeyVault
), Azure Key Vault'unuzu işaret edecek şekilde değiştirin.-
Genel Azure kullanıyorsanız,
IDENTITY
bağımsız değişkenini Azure Key Vault'unuzun adıyla (Bölüm II'den) değiştirin. -
Özel bir Azure bulutu (örneğin Azure Kamu, 21Vianet tarafından sağlanan Microsoft Azure veya Azure Almanya) kullanıyorsanız,
IDENTITY
bağımsız değişkenini Bölüm II, adım 3'te döndürülen Kasa URI'si ile değiştirin. Kasa URI'sine "https://" eklemeyin.
-
Genel Azure kullanıyorsanız,
SECRET
bağımsız değişkeninin ilk bölümünü 1. Adımdan Microsoft Entra uygulaması İstemci Kimliği ile değiştirin. Bu örnekte İstemci Kimliği şeklindedirEF5C8E094D2A4A769998D93440D8115D
.Önemli
İstemci Kimliği'nden kısa çizgileri kaldırmanız gerekir.
Bağımsız değişkenin
SECRET
ikinci bölümünü Bölüm I'den İstemci Gizli Anahtarı ile tamamlayın. Bu örnekte, Bölüm I'deki İstemci Gizli AnahtarıReplace-With-AAD-Client-Secret
şeklindedir. Bağımsız değişkeninSECRET
son dizesi, kısa çizgi içermeyen uzun bir harf ve sayı dizisi olacaktır.USE master; CREATE CREDENTIAL Azure_EKM_Backup_cred WITH IDENTITY = 'ContosoDevKeyVault', -- for global Azure -- WITH IDENTITY = 'ContosoDevKeyVault.vault.usgovcloudapi.net', -- for Azure Government -- WITH IDENTITY = 'ContosoDevKeyVault.vault.azure.cn', -- for Microsoft Azure operated by 21Vianet -- WITH IDENTITY = 'ContosoDevKeyVault.vault.microsoftazure.de', -- for Azure Germany SECRET = 'EF5C8E094D2A4A769998D93440D8115DReplace-With-AAD-Client-Secret' FOR CRYPTOGRAPHIC PROVIDER AzureKeyVault_EKM_Prov;
Yedekleme Şifrelemesi için Veritabanı Altyapısı için SQL Server oturum açma bilgisi oluşturma
Veritabanı Altyapısı tarafından şifreleme yedeklemeleri için kullanılacak bir SQL Server oturumu oluşturun ve 1. Adımdaki kimlik bilgilerini ekleyin. Bu Transact-SQL örnek, daha önce içeri aktarılan anahtarın aynısını kullanır.
Önemli
Bu anahtarı TDE için (yukarıdaki örnekte) veya sütun düzeyinde şifreleme (aşağıdaki örnek) için zaten kullandıysanız yedekleme şifrelemesi için aynı asimetrik anahtarı kullanamazsınız.
Bu örnek, Bölüm IV, 5. Adım'da belirtildiği gibi, daha önce içeri aktarılabilen veya oluşturulabilen ve ana veritabanı için kullanılan anahtar kasasında depolanan
CONTOSO_KEY_BACKUP
asimetrik anahtarı kullanır.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 Backup_Login FROM ASYMMETRIC KEY CONTOSO_KEY_BACKUP; GO -- Alter the Encrypted Backup Login to add the credential for use by -- the Database Engine to access the key vault ALTER LOGIN Backup_Login ADD CREDENTIAL Azure_EKM_Backup_cred ; GO
Veritabanını Yedekleme
Anahtar kasasında depolanan asimetrik anahtarla şifrelemeyi belirten veritabanını yedekleyin.
Aşağıdaki örnekte, veritabanı zaten TDE ile şifrelendiyse ve asimetrik anahtar TDE asimetrik anahtarından
CONTOSO_KEY_BACKUP
farklıysa yedeklemenin hem TDE asimetrik anahtarıCONTOSO_KEY_BACKUP
hem de tarafından şifrelendiğini unutmayın. Yedeklemenin şifresini çözmek için hedef SQL Server örneğinin her iki anahtara da ihtiyacı olacaktır.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_BACKUP]); GO
Veritabanını Geri Yükleme
TDE ile şifrelenmiş bir veritabanı yedeğini geri yüklemek için, hedef SQL Server örneğinde önce şifreleme için kullanılan asimetrik Anahtar Kasası anahtarının bir kopyası olmalıdır. Bu şekilde elde edilebilir:
TDE için kullanılan özgün asimetrik anahtar artık Key Vault'ta değilse Key Vault anahtar yedeklemesini geri yükleyin veya yerel HSM'den anahtarı yeniden içeri aktarın. Önemli: Anahtarın parmak izinin veritabanı yedeklemesinde kaydedilen parmak iziyle eşleşmesi için anahtarın, daha önce adlandırıldığı anahtarla aynı Key Vault anahtar adıyla adlandırılması gerekir.
Hedef SQL Server örneğine 1. ve 2. Adımları uygulayın.
Hedef SQL Server örneğinin yedeklemeyi şifrelemek için kullanılan asimetrik anahtarlara erişimi olduğunda, veritabanını sunucuya geri yükleyin.
Örnek geri yükleme kodu:
RESTORE DATABASE [DATABASE_TO_BACKUP] FROM DISK = N'[PATH TO BACKUP FILE]' WITH FILE = 1, NOUNLOAD, REPLACE; GO
Yedekleme seçenekleri hakkında daha fazla bilgi için bkz . YEDEKLEME (Transact-SQL).
Anahtar Kasasından Asimetrik Anahtar Kullanarak Sütun Düzeyinde Şifreleme
Aşağıdaki örnek, anahtar kasasında asimetrik anahtar tarafından korunan bir simetrik anahtar oluşturur. Ardından simetrik anahtar, veritabanındaki verileri şifrelemek için kullanılır.
Önemli
Bu anahtarı yedekleme şifrelemesi için zaten kullandıysanız sütun düzeyinde şifreleme için aynı asimetrik anahtarı kullanamazsınız.
Bu örnekte, CONTOSO_KEY_COLUMNS
3. Adımının 3. Bölümünde açıklandığı gibi, anahtar kasasında depolanan ve daha önce içeri aktarılabilir veya oluşturulabilen asimetrik anahtar kullanılır. Bu asimetrik anahtarı ContosoDatabase
veritabanında kullanmak için, CREATE ASYMMETRIC KEY
veritabanına anahtara bir başvuru sağlamak üzere ContosoDatabase
deyimini yeniden yürütmeniz gerekir.
USE [ContosoDatabase];
GO
-- Create a reference to the key in the key vault
CREATE ASYMMETRIC KEY CONTOSO_KEY_COLUMNS
FROM PROVIDER [AzureKeyVault_EKM_Prov]
WITH PROVIDER_KEY_NAME = 'ContosoDevRSAKey2',
CREATION_DISPOSITION = OPEN_EXISTING;
-- Create the data encryption key.
-- The data encryption key can be created using any SQL Server
-- supported algorithm or key length.
-- The DEK will be protected by the asymmetric key in the key vault
CREATE SYMMETRIC KEY DATA_ENCRYPTION_KEY
WITH ALGORITHM=AES_256
ENCRYPTION BY ASYMMETRIC KEY CONTOSO_KEY_COLUMNS;
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_COLUMNS;
--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;
Ayrıca Bkz.
Azure Key Vault Kullanarak Genişletilebilir Anahtar Yönetimi için Kurulum Adımları
Azure Key Vault ile Genişletilebilir Anahtar Yönetimi
EKM sağlayıcı etkinleştirilmiş Sunucu Yapılandırma Seçeneği
SQL Server Bağlayıcısı Bakım ve Sorun Giderme Adımları