PowerShell وAzure CLI: تمكين تعليم برمجة البيانات الشفاف باستخدام المفتاح المُدار بواسطة العميل من Azure Key Vault
ينطبق على: Azure SQL Database مثيل Azure SQL المُدار Azure Synapse Analytics
تستعرض هذه المقالة كيفية استخدام مفتاح من Azure Key Vault لتعليم برمجة البيانات الشفاف (TDE) في قاعدة بيانات Azure SQL أو Azure Synapse Analytics. لمعرفة المزيد حول TDE مع تكامل Azure Key Vault - أحضر دعم المفتاح الخاص بك (BYOK)، تفضل بزيارة TDE باستخدام المفاتيح المُدارة بواسطة العميل في Azure Key Vault.
ملاحظة
يدعم Azure SQL الآن استخدام مفتاح RSA مخزن في HSM مُدار كحامي TDE. Azure Key Vault Managed HSM عبارة عن خدمة سحابية مُدارة بالكامل، ومتاحة للغاية، ومستأجر فردي، ومتوافقة مع المعايير التي تمكّنك من حماية مفاتيح التشفير لتطبيقات السحابة الخاصة بك، باستخدام FIPS 140-2 Level 3 HSMs المصادق عليها. تعرف على المزيد حول HSMs المُدارة.
ملاحظة
تنطبق هذه المقالة على قاعدة بيانات Azure SQL ومثيل SQL Azure المدار وAzure Synapse Analytics (تجمعات SQL المخصصة ( المعروفة سابقًا بـ SQL DW)). للحصول على وثائق حول تشفير البيانات الشفاف لتجمعات SQL المخصصة داخل مساحات عمل Synapse، راجع تشفير Azure Synapse Analytics.
المتطلبات الأساسية لـ PowerShell
- يجب أن يكون لديك اشتراك Azure وأن تكون مسؤولاً في هذا الاشتراك.
- [موصى به ولكنه اختياري] امتلك وحدة أمان للأجهزة (HSM) أو مخزن مفاتيح محلي لإنشاء نسخة محلية من مادة مفتاح حامي TDE.
- يجب أن يكون Azure PowerShell مثبتاً وقيد التشغيل.
- قم بإنشاء Azure Key Vault and Key لاستخدامهما مع TDE.
-
إرشادات استخدام وحدة أمان الأجهزة (HSM) وKey Vault
- يجب أن يحتوي خزنة المفاتيح على الخاصية التالية لاستخدامها في TDE:
- حذف ناعم وحماية من التطهير
-
إرشادات استخدام وحدة أمان الأجهزة (HSM) وKey Vault
- يجب أن يحتوي المفتاح على السمات التالية لاستخدامه في TDE:
- لا تاريخ لانتهاء الصلاحية
- لا المعاقين
- قادر على تنفيذ عمليات الحصول على ومفتاح التفاف وإلغاء تغليف المفتاح
- لاستخدام مفتاح HSM مُدار، اتبع الإرشادات لإنشاء وتفعيل HSM مُدار باستخدام Azure CLI
للحصول على إرشادات تثبيت وحدة Az، راجع تثبيت Azure PowerShell. للحصول على أوامر cmdlets معينة، راجع AzureRM.Sql.
للحصول على تفاصيل حول Key Vault، راجع إرشادات PowerShell من Key Vault وكيفية استخدام Key Vault soft-delete with PowerShell.
هام
لا تزال الوحدة النمطيةPowerShell Azure Resource Manager مدعومة، ولكن جميع التطويرات المستقبلية تكون للوحدة النمطية Az.Sql. ستستمر الوحدة النمطية AzureRM في تلقي إصلاحات الأخطاء حتى ديسمبر 2020 على الأقل. تتطابق وسائط الأوامر في الوحدة النمطية Az وفي الوحدات النمطية AzureRm بشكل كبير. لمعرفة المزيد حول تطابقها، اطّلع على تقديم الوحدة النمطية Azure PowerShell Az الجديدة.
قم بتعيين هوية Azure Active Directory (Microsoft Azure Active Directory) إلى الخادم الخاص بك
إذا كان لديك خادم موجود، فاستخدم ما يلي لإضافة هوية Azure Active Directory (Microsoft Azure Active Directory) إلى الخادم الخاص بك:
$server = Set-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName> -AssignIdentity
إذا كنت تقوم بإنشاء خادم، فاستخدم الأمر cmdlet New-AzSqlServer مع العلامة -Identity لإضافة هوية Microsoft Azure Active Directory أثناء إنشاء الخادم:
$server = New-AzSqlServer -ResourceGroupName <SQLDatabaseResourceGroupName> -Location <RegionName> `
-ServerName <LogicalServerName> -ServerVersion "12.0" -SqlAdministratorCredentials <PSCredential> -AssignIdentity
منح أذونات Key Vault إلى الخادم الخاص بك
استخدم الأمر cmdlet Set-AzKeyVaultAccessPolicy لمنح خادمك حق الوصول إلى مخزن المفاتيح قبل استخدام مفتاح منه لـ TDE.
Set-AzKeyVaultAccessPolicy -VaultName <KeyVaultName> `
-ObjectId $server.Identity.PrincipalId -PermissionsToKeys get, wrapKey, unwrapKey
لإضافة أذونات إلى الخادم الخاص بك على HSM مُدار، أضف دور RBAC المحلي "مستخدم برمجة خدمة تعليم برمجة HSM المُدار" إلى الخادم. سيمكّن هذا الخادم من إجراء عمليات الحصول على المفتاح ولف المفتاح وإلغاء تغليفه على المفاتيح في HSM المُدار. إرشادات لتوفير وصول الخادم في HSM المُدار
أضف مفتاح Key Vault إلى الخادم وقم بتعيين واقي TDE
- استخدم الأمر cmdlet Get-AzKeyVaultKey لاسترداد معرّف المفتاح من مخزن المفاتيح
- استخدم الأمر cmdlet Add-AzSqlServerKeyVaultKey لإضافة المفتاح من Key Vault إلى الخادم.
- استخدم الأمر cmdlet Set-AzSqlServerTransparentDataEncryptionProtector لتعيين المفتاح كحامي TDE لجميع موارد الخادم.
- استخدم الأمر cmdlet Get-AzSqlServerTransparentDataEncryptionProtector لتأكيد تكوين واقي TDE على النحو المنشود.
ملاحظة
بالنسبة لمفاتيح HSM المُدارة، استخدم إصدار Az.Sql 2.11.1 من PowerShell.
ملاحظة
لا يمكن أن يتجاوز الطول المجمّع لاسم مخزن المفاتيح واسم المفتاح 94 حرفاً.
تلميح
مثال KeyId من Key Vault: https://contosokeyvault.vault.azure.net/keys/Key1/1a1a2b2b3c3c4d4d5e5e6f6f7g7g8h8h
مثال KeyId من Managed HSM:
https://contosoMHSM.managedhsm.azure.net/keys/myrsakey
# 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>
# confirm the TDE protector was configured as intended
Get-AzSqlServerTransparentDataEncryptionProtector -ResourceGroupName <SQLDatabaseResourceGroupName> -ServerName <LogicalServerName>
قم بتشغيل TDE
استخدم الأمر cmdlet Set-AzSqlDatabaseTransparentDataEncryption لتشغيل TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> -State "Enabled"
الآن تم تمكين TDE لقاعدة البيانات أو مستودع البيانات بمفتاح تشفير في Key Vault.
تحقق من حالة التعليمات البرمجية ونشاط التعليمات البرمجية
استخدم Get-AzSqlDatabaseTransparentDataEncryption للحصول على حالة التشفير وGet-AzSqlDatabaseTransparentDataEncryptionActivity للتحقق من تقدم التشفير لقاعدة بيانات أو مستودع بيانات.
# get the encryption state
Get-AzSqlDatabaseTransparentDataEncryption -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName> `
# check the encryption progress for a database or data warehouse
Get-AzSqlDatabaseTransparentDataEncryptionActivity -ResourceGroupName <SQLDatabaseResourceGroupName> `
-ServerName <LogicalServerName> -DatabaseName <DatabaseName>
أوامر cmdlets مفيدة من PowerShell
استخدم الأمر cmdlet Set-AzSqlDatabaseTransparentDataEncryption لإيقاف تشغيل TDE.
Set-AzSqlDatabaseTransparentDataEncryption -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName> ` -DatabaseName <DatabaseName> -State "Disabled"
استخدم الأمر cmdlet Get-AzSqlServerKeyVaultKey لإعادة قائمة مفاتيح Key Vault المضافة إلى الخادم.
# KeyId is an optional parameter, to return a specific key version Get-AzSqlServerKeyVaultKey -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
استخدم Remove-AzSqlServerKeyVaultKey لإزالة مفتاح Key Vault من الخادم.
# the key set as the TDE Protector cannot be removed Remove-AzSqlServerKeyVaultKey -KeyId <KeyVaultKeyId> -ServerName <LogicalServerName> -ResourceGroupName <SQLDatabaseResourceGroupName>
استكشاف الأخطاء وإصلاحها
تحقق مما يلي في حالة حدوث مشكلة:
إذا تعذر العثور على خزينة المفاتيح، فتأكد من الاشتراك الصحيح.
Get-AzSubscription -SubscriptionId <SubscriptionId>
- إذا تعذرت إضافة المفتاح الجديد إلى الخادم، أو تعذر تحديث المفتاح الجديد باعتباره حامي TDE، فتحقق مما يلي:
- يجب ألا يكون للمفتاح تاريخ انتهاء صلاحية
- يجب أن يتم تمكين عمليات الحصول على ومفتاح الالتفاف ومفتاح إلغاء التغليف.
الخطوات التالية
- تعرف على كيفية تدوير واقي TDE للخادم للامتثال لمتطلبات الأمان: قم بتدوير حامي تشفير البيانات الشفاف باستخدام PowerShell.
- في حالة وجود خطر أمني، تعرف على كيفية إزالة واقي TDE المحتمل اختراقه: قم بإزالة المفتاح المحتمل اختراقه.