قم بإزالة أداة حماية تشفير البيانات الشفافة (TDE) باستخدام PowerShell

ينطبق على: Azure SQL Database Azure Synapse Analytics

يصف هذا الموضوع كيفية الاستجابة لأداة حماية TDE المخترقة لـ Azure SQL Database أو Azure Synapse Analytics الذي يستخدم TDE مع المفاتيح التي يديرها العميل في Azure Key Vault - دعم إحضار مفتاحك الخاص (BYOK). لمعرفة المزيد حول دعم BYOK لـ TDE، راجع صفحة النظرة العامة.

تنبيه

يجب أن تتم الإجراءات الموضحة في هذه المقالة فقط في الحالات القصوى أو في بيئات الاختبار. راجع الخطوات بعناية، حيث سيؤدي حذف أدوات حماية TDE المستخدمة بشكل نشط من Azure Key Vault إلى عدم توفر قاعدة البيانات.

في حالة الاشتباه في تعرض أحد المفاتيح للاختراق، كأن يكون لدى خدمة أو مستخدم وصول غير مصرح به إلى المفتاح، فمن الأفضل حذف المفتاح.

ضع في اعتبارك أنه بمجرد حذف أداة حماية TDE في Key Vault، في غضون ما يصل إلى 10 دقائق، ستبدأ جميع قواعد البيانات المشفرة في رفض جميع الاتصالات مع رسالة الخطأ المقابلة وتُغيّر حالتها إلى غير قابل للوصول.

يتطرق دليل الكيفية هذا إلى منهج جعل قواعد البيانات غير قابلة للوصول بعد الاستجابة لحادث اختراق.

ملاحظة

تنطبق هذه المقالة على قاعدة بيانات Azure SQL ومثيل SQL Azure المدار وAzure Synapse Analytics (تجمعات SQL المخصصة ( المعروفة سابقًا بـ SQL DW)). للحصول على وثائق حول تشفير البيانات الشفاف لتجمعات SQL المخصصة داخل مساحات عمل Synapse، راجع تشفير Azure Synapse Analytics.

المتطلبات الأساسية

  • يجب أن يكون لديك اشتراك Azure وأن تكون مسؤولاً في هذا الاشتراك
  • يجب أن يكون لديك Azure PowerShell مثبت وقيد التشغيل.
  • يفترض دليل الكيفية هذا أنك تستخدم بالفعل مفتاحاً من Azure Key Vault كأداة حماية TDE لقاعدة بيانات Azure SQL أو Azure Synapse. راجع تشفير البيانات الشفافة مع دعم BYOK لمعرفة المزيد.

للحصول على إرشادات تثبيت وحدة Az، راجع تثبيت Azure PowerShell. بخصوص أوامر cmdlets معينة، راجع AzureRM.Sql.

هام

لا تزال الوحدة النمطية PowerShell Azure Resource Manager مدعومة، ولكن جميع التطويرات المستقبلية تكون للوحدة النمطية Az.Sql. ستستمر الوحدة النمطية AzureRM في تلقي إصلاحات الأخطاء حتى ديسمبر 2020 على الأقل. تتطابق وسائط الأوامر في الوحدة النمطية Az وفي الوحدات النمطية AzureRm بشكل كبير. لمعرفة المزيد حول توافقها، اطّلع على تقديم الوحدة النمطية Azure PowerShell Az الجديدة.

التحقق من بصمات الإبهام لأداة حماية TDE

توضح الخطوات التالية كيفية التحقق من بصمات إبهام أداة حماية TDE التي لا تزال قيد الاستخدام بواسطة ملفات السجل الظاهرية (VLF) لقاعدة بيانات معينة. يمكن العثور على بصمة إبهام أداة حمايةTDE الحالية لقاعدة البيانات، ومعرف قاعدة البيانات عن طريق تشغيل:

SELECT [database_id],
       [encryption_state],
       [encryptor_type], /*asymmetric key means AKV, certificate means service-managed keys*/
       [encryptor_thumbprint]
 FROM [sys].[dm_database_encryption_keys]

يقوم الاستعلام التالي بإرجاع بصمات الإبهام المستخدمة في ملفات السجل الظاهرية (VLF) وأداة حماية TDE. تشير كل بصمة إبهام مختلفة إلى مفتاح مختلف في Azure Key Vault ‏(AKV):

SELECT * FROM sys.dm_db_log_info (database_id)

بدلاً من ذلك، يمكنك استخدام PowerShell أو Azure CLI:

يوفر أمر PowerShell Get-AzureRmSqlServerKeyVaultKey بصمة الإبهام لأداة حماية TDE المستخدمة في الاستعلام، بحيث يمكنك معرفة المفاتيح التي يجب الاحتفاظ بها والمفاتيح التي يجب حذفها في AKV. يمكن حذف المفاتيح التي لم تعد تستخدمها قاعدة البيانات بأمان من Azure Key Vault.

الاحتفاظ بالوصول إلى الموارد المشفرة

  1. إنشاء مفتاح جديد في Key Vault. تأكد من إنشاء هذا المفتاح الجديد في مخزن رئيسي منفصل عن أداة حماية TDE المخترقة، حيث يتم توفير التحكم في الوصول على مستوى المخزن.

  2. أضف المفتاح الجديد إلى الخادم باستخدام cmdlets Add-AzSqlServer KeyVaultKey وSet-AzSqlServer Transparent DataEncryptionProtector وقم بتحديثه باعتباره أداة حماية TDE الجديدة للخادم.

    # add the key from Key Vault to the server  
    Add-AzSqlServerKeyVaultKey -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -KeyId <KeyVaultKeyId>
    
    # set the key as the TDE protector for all resources under the server
    Set-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> `
        -ServerName <LogicalServerName> -Type AzureKeyVault -KeyId <KeyVaultKeyId>
    
  3. تأكد من تحديث الخادم وأي نسخ متماثلة إلى أداة حماية TDE الجديدة باستخدام Get-AzSqlServerTransparentDataEncryptionProtector cmdlet.

    ملاحظة

    قد يستغرق الأمر بضع دقائق حتى تنتشر أداة حماية TDE الجديدة إلى جميع قواعد البيانات وقواعد البيانات الثانوية تحت الخادم.

    Get-AzSqlServerTransparentDataEncryptionProtector -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
    
  4. خذ نسخة احتياطية من المفتاح الجديد في Key Vault.

    # -OutputFile parameter is optional; if removed, a file name is automatically generated.
    Backup-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName> -OutputFile <DesiredBackupFilePath>
    
  5. احذف المفتاح المخترق من Key Vault باستخدام Remove-AzKeyVaultKey cmdlet.

    Remove-AzKeyVaultKey -VaultName <KeyVaultName> -Name <KeyVaultKeyName>
    
  6. لاستعادة مفتاح إلى Key Vault في المستقبل باستخدام Restore-AzKeyVaultKey cmdlet:

    Restore-AzKeyVaultKey -VaultName <KeyVaultName> -InputFile <BackupFilePath>
    

جعل الموارد المشفرة غير قابلة للوصول

  1. إسقاط قواعد البيانات التي يتم تشفيرها بواسطة المفتاح المحتمل اختراقه.

    يتم نسخ قاعدة البيانات وملفات السجل احتياطياً تلقائياً، لذلك يمكن إجراء استعادة نقطة زمنية لقاعدة البيانات في أي وقت (طالما أنك توفر المفتاح). يجب إسقاط قواعد البيانات قبل حذف أداة حماية TDE النشطة لمنع فقدان البيانات المحتمل لمدة تصل إلى 10 دقائق من أحدث المعاملات.

  2. قم بعمل نسخة احتياطية من المادة الرئيسية لأداة حماية TDE في Key Vault.

  3. إزالة المفتاح المحتمل اختراقه من Key Vault

ملاحظة

قد يستغرق الأمر حوالي 10 دقائق، حتى يصبح أي تغيير في الإذن ساري المفعول بالنسبة لخزنة المفاتيح. يتضمن ذلك إبطال أذونات الوصول إلى وسيلة حماية TDE في AKV، وقد يظل لدى المستخدمين، ضمن هذا الإطار الزمني أذونات الوصول.

الخطوات التالية