إدارة تشفير البيانات الخارجية في مثيل مُدار باستخدام مفتاحك الخاص من Azure Key Vault باستخدام Azure CLI

ينطبق على: مثيل Azure SQL المُدار

يقوم مثال البرنامج النصي Azure CLI هذا بتكوين تشفير البيانات الشفاف (TDE) باستخدام مفتاح مُدار بواسطة العميل لمثيل Azure SQL المُدار، باستخدام مفتاح من مخزن Azure الأساسي. غالباً ما يشار إلى هذا على أنه سيناريو إنشاء مفتاحك الخاص لـ TDE. لمعرفة المزيد حول TDE باستخدام المفتاح المُدار بواسطة العميل، راجع إنشاء مفتاحك الخاص بـ TDE لـ Azure SQL.

يتطلب هذا النموذج وجود مثيل مُدار، راجع استخدام Azure CLI لإنشاء مثيل Azure SQL المُدار.

إذا لم يكن لديك اشتراك Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

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

نموذج البرنامج النصي

في هذا البرنامج النصي، استخدم واجهة سطر الأوامر في Azure محلياً حيث يستغرق تشغيله في Cloud Shell وقتاً طويلاً.

تسجيل الدخول إلى Azure

استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك معين.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

لمزيد من المعلومات، راجع تعيين اشتراك نشط أو تسجيل الدخول بشكل تفاعلي

تشغيل البرنامج النصي

# Manage Transparent Data Encryption in a Managed Instance using your own key from Azure Key Vault

# Run this script after the script in https://docs.microsoft.com/en-us/azure/azure-sql/managed-instance/scripts/create-configure-managed-instance-cli creates a managed instance.
# You can use the same variables in both scripts/
# If running this script against a different existing instance, uncomment and add appropriate values to next 3 lines of code
# let "randomIdentifier=$RANDOM*$RANDOM"
# instance="<msdocs-azuresql-instance>" # add instance here
# resourceGroup="<msdocs-azuresql-rg>" # add resource here

# Variable block
location="East US"
vault="msdocssqlvault$randomIdentifier"
key="msdocs-azuresql-key-$randomIdentifier"

# echo assigning identity to service principal in the instance
az sql mi update --name $instance --resource-group $resourceGroup --assign-identity

echo "Creating $vault..."
az keyvault create --name $vault --resource-group $resourceGroup --location "$location"

echo "Getting service principal id and setting policy on $vault..."
instanceId=$(az sql mi show --name $instance --resource-group $resourceGroup --query identity.principalId --output tsv)

echo $instanceId
az keyvault set-policy --name $vault --object-id $instanceId --key-permissions get unwrapKey wrapKey

echo "Creating $key..."
az keyvault key create --name $key --vault-name $vault --size 2048 

# keyPath="C:\yourFolder\yourCert.pfx"
# keyPassword="yourPassword" 
# az keyvault certificate import --file $keyPath --name $key --vault-name $vault --password $keyPassword

echo "Setting security on $instance with $key..."
keyId=$(az keyvault key show --name $key --vault-name $vault -o json --query key.kid | tr -d '"')

az sql mi key create --kid $keyId --managed-instance $instance --resource-group $resourceGroup
az sql mi tde-key set --server-key-type AzureKeyVault --kid $keyId --managed-instance $instance --resource-group $resourceGroup

تنظيف الموارد

استخدم الأمر التالي لإزالة مجموعة الموارد وجميع الموارد المقترنة بها باستخدام الأمر حذف مجموعة az - إلا إذا وُجدت حاجة مستمرة لهذه الموارد. قد يستغرق إنشاء بعض هذه الموارد بعض الوقت، وكذلك حذفها.

az group delete --name $resourceGroup

مرجع النموذج

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

الأمر الوصف
az sql db أوامر قاعدة البيانات.
az sql failover-group أوامر مجموعة تجاوز الفشل.

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

لمزيد من المعلومات حول واجهة سطر الأوامر في Azure، راجع ⁧وثائق واجهة سطر الأوامر في Azure⁧.

يمكن العثور على نماذج البرامج النصية الإضافية لقاعدة بيانات SQL لقاعدة بيانات CLI فيوثائق قاعدة بيانات Azure SQL.