تكوين المفاتيح المدارة من قبل العميل لحساب Azure Cosmos DB الخاص بك باستخدام Azure Managed HSM Key Vault

ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول

يرجى الرجوع إلى ارتباط تكوين المفاتيح التي يديرها العميل باستخدام Azure Key Vault

إشعار

حاليا، تتوفر المفاتيح المدارة من قبل العملاء فقط لحسابات Azure Cosmos DB الجديدة. يجب عليك تكوينها أثناء إنشاء الحساب.

تسجيل موفر موارد Azure Cosmos DB لاشتراك Azure الخاص بك

  1. سجّل الدخول إلى مدخل Microsoft Azure ، وانتقل إلى اشتراك Azure الخاص بك، وحدد موفرو الموارد ضمن علامة التبويب الإعدادات :

    لقطة شاشة لخيار موفري الموارد في قائمة التنقل بين الموارد.

  2. ابحث عن موفر مورد Microsoft.DocumentDB . تحقق مما إذا كان قد تم وضع علامة على موفر المورد على أنه مسجل بالفعل. إذا لم يكن كذلك، فاختر موفر المورد وحدد تسجيل :

    لقطة شاشة لخيار التسجيل لموفر موارد Microsoft.DocumentDB.

تكوين Azure Managed HSM Key Vault

يتطلب استخدام المفاتيح المُدارة بواسطة العميل مع Azure Cosmos DB تعيين خاصيتين في مثيل Azure Key Vault الذي تخطط لاستخدامه لاستضافة مفاتيح التشفير: حذف ناعم و حماية التطهير .

نظرا لأن الحذف المبدئي قيد التشغيل بشكل افتراضي، يجب تمكين الحماية من الإزالة فقط. عند إنشاء HSM المدار، استخدم أمر CLI التالي:

objectId = az ad signed-in-user show --query id -o tsv
az keyvault create --hsm-name $hsmName --resource-group $rgName --location $location --enable-purge-protection true --administrators $objectId --retention-days 7

إذا كنت تستخدم مثيل Azure Managed HSM Key Vault موجود، يمكنك التحقق من تمكين هذه الخصائص من خلال النظر إلى قسم الخصائص باستخدام الأمر التالي:

az keyvault show $hsmName $rgName

إذا لم يتم تمكين الحماية من الإزالة، يمكن استخدام الأمر التالي:

az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName

لمزيد من المعلومات حول أوامر CLI المتوفرة ل HSM المدار، راجع Azure Key Vault التالي

إنشاء مفتاح التشفير وتعيين الأدوار المراسلة

بمجرد تنشيط HSM المدار، يجب إنشاء المفتاح الذي سيتم استخدامه لحساب CMK. لهذا، يتم تعيين الدور "مستخدم تشفير HSM المدار" للمسؤول. لقراءة المزيد حول كيفية عمل RBAC (التحكم في الوصول استنادا إلى الدور) مع HSM المدار، راجع المقالات التالية: الأدوار المضمنة RBAC المحلية ل HSM المدارة - Azure Key Vault | التحكم في الوصول إلى Microsoft Learn وAzure Managed HSM | Microsoft Learn

objectId = az ad signed-in-user show --query id -o tsv
$keyName = "Name of your key"
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto User" --assignee $objectId --scope /keys
az keyvault key create --hsm-name $hsmName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

الآن بعد أن تم إنشاء المفتاح، يجب تعيين دور المراسل إما إلى معرف Cosmos DB الأساسي أو هوية Azure المدارة لتوفير الحساب. يتم استخدام الدور "مستخدم تشفير خدمة تشفير HSM المدارة" لأنه لديه الأذونات الثلاثة الوحيدة اللازمة للعمل مع حساب CMK، وهي: الحصول على والتفاف وإلغاء التغليف. يتم أيضا تحديد نطاق هذه الأذونات لتكون مفيدة فقط على المفاتيح المخزنة على Azure Managed HSM.

بدون هوية مدارة من Azure:

$cosmosPrincipal = az ad sp show --id a232010e-820c-4083-83bb-3ace5fc29d0b --query id -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI

باستخدام هوية Azure المدارة:

$identityResourceID = az identity show -g $rgName -n $identityName --query id -o tsv
$identityPrincipal = az identity show -g $rgName -n $identityName --query principalId -o tsv
$defaultIdentity = "UserAssignedIdentity={0}" -f $identityResourceID
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI --assign-identity $identityResourceID --default-identity $defaultIdentity

سيؤدي ذلك إلى توفير حساب Cosmos DB CMK مع مفتاح مخزن على Azure Managed HSM Key Vault.

التبديل إلى الهوية المدارة المعينة من قبل النظام.

يدعم Cosmos DB استخدام هوية مدارة معينة من قبل النظام لحساب CMK Cosmos DB. لمزيد من المعلومات حول CMK للهوية المدارة المعينة من قبل النظام، راجع: تكوين المفاتيح المدارة من قبل العميل لحساب Azure Cosmos DB الخاص بك

نفذ الأوامر التالية للتبديل من الهوية الافتراضية إلى الهوية المدارة المعينة من قبل النظام:

az cosmosdb identity assign -n $cosmosName -g $rgName
$principalMSIId = az cosmosdb identity show -n $cosmosName -g $rgName --query principalId -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $principalMSIId --scope /keys
az cosmosdb update --resource-group $rgName --name $cosmosName --default-identity "SystemAssignedIdentity"

كملاحظة اختيارية، يمكن إزالة تعيين الدور الأصلي للمعرف الأساسي ل Cosmos DB أو هوية Azure المدارة.

az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys

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