إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ابدأ مع مكتبة عملاء Azure Key Vault Managed HSM لجافا سكريبت. HSM المدارة هي خدمة سحابية مدارة بالكامل ومتاحة بشكل كبير ومستأجر واحد ومتوافقة مع المعايير تمكنك من حماية مفاتيح التشفير لتطبيقاتك السحابية، باستخدام وحدات HSM التي تم التحقق من صحتها من FIPS 140-3 المستوى 3 . لمزيد من المعلومات حول إدارة HSM، راجع النظرة العامة.
في هذه البداية السريعة، تتعلم كيفية الوصول إلى وتنفيذ العمليات التشفيرية على المفاتيح في إدارة HSM باستخدام مكتبة عملاء JavaScript.
موارد مكتبة عملاء HSM المدارة:
API الوثائق المرجعية | المكتبة مصدر المصدر | حزمة (npm)
المتطلبات المسبقه
- اشتراك في Azure. أنشئ واحدا مجانا.
- HSM مدارة تم تجهيزها وتفعيلها. انظر Quickstart: توفير وتفعيل HSM مدار باستخدام Azure CLI.
- مفتاح تم إنشاؤه في إدارة HSM الخاصة بك. انظر إدارة المفاتيح في نظام HSM المدار.
- مورد Azure مع هوية مدارة (مثل VM، خدمة التطبيق، أو Azure Function) أو Azure CLI للتطوير المحلي.
- يجب أن يكون للهوية المدارة دور RBAC محلي مناسب لإدارة HSM. انظر الوصول الآمن إلى HSMs المدارة لديك.
إعداد البيئة المحلية
يستخدم هذا البدء السريع مكتبة Azure Identity مع Azure CLI للمصادقة على خدمات Azure. يمكن للمطورين أيضا استخدام تعليمة Visual Studio برمجية لمصادقة مكالماتهم. لمزيد من المعلومات، راجع مصادقة العميل باستخدام مكتبة عميل Azure Identity.
تسجيل الدخول إلى Azure
شغل az login الأمر لتسجيل الدخول:
az login
أنشئ مجلد مشروع وقم بتهيئة
أنشئ مجلد مشروع وانتقل إليه:
mkdir mhsm-js-app && cd mhsm-js-appتهيئة المشروع:
npm init -y
قم بتثبيت الحِزَم
تثبيت مكتبات عملاء Azure Identity و Key Vault Keys:
npm install @azure/identity @azure/keyvault-keys
إنشاء نموذج التعليمات البرمجية
أنشئ ملفا باسم index.js الرمز التالي. استبدلها <hsm-name> باسمك HSM المدار، وباسم <key-name> مفتاح موجود.
const { DefaultAzureCredential } = require("@azure/identity");
const { KeyClient, CryptographyClient } = require("@azure/keyvault-keys");
async function main() {
// Use DefaultAzureCredential for automatic credential selection
const credential = new DefaultAzureCredential();
// Connect to Managed HSM - replace with your HSM URI
const hsmUri = "https://<hsm-name>.managedhsm.azure.net";
const keyClient = new KeyClient(hsmUri, credential);
// Get a key reference
const keyName = "<key-name>";
console.log(`Retrieving key '${keyName}' from Managed HSM...`);
const key = await keyClient.getKey(keyName);
console.log(`Key retrieved. Key type: ${key.keyType}`);
// Perform cryptographic operations
const cryptoClient = new CryptographyClient(key, credential);
// Encrypt data
const plaintext = Buffer.from("Hello, Managed HSM!");
console.log(`\nOriginal text: ${plaintext.toString()}`);
const encryptResult = await cryptoClient.encrypt("RSA-OAEP-256", plaintext);
console.log(`Encrypted (base64): ${encryptResult.result.toString("base64").substring(0, 64)}...`);
// Decrypt data
const decryptResult = await cryptoClient.decrypt("RSA-OAEP-256", encryptResult.result);
console.log(`Decrypted text: ${decryptResult.result.toString()}`);
console.log("\nDone!");
}
main().catch((error) => {
console.error("An error occurred:", error);
process.exit(1);
});
شغّل التطبيق
شغّل التطبيق:
node index.js
يجب أن تلاحظ مخرجات مشابهة لـ:
Retrieving key 'myrsakey' from Managed HSM...
Key retrieved. Key type: RSA-HSM
Original text: Hello, Managed HSM!
Encrypted (base64): NWE4ZjNiMmMxZDRlNWY2YTdiOGM5ZDBlMWYyYTNiNGM...
Decrypted text: Hello, Managed HSM!
Done!
فهم التعليمات البرمجية
المصادقة باستخدام DefaultAzureCredential
DefaultAzureCredential يختار تلقائيا الاعتماد المناسب بناء على بيئتك:
| البيئة | الاعتماد المستخدم |
|---|---|
| Azure VMs، خدمة التطبيقات، الوظائف | هوية مدارة معينة من قبل النظام أو من قبل المستخدم |
| Azure Kubernetes Service | هوية عبء العمل |
| التنمية المحلية | Azure CLI، Visual Studio، أو VS Code credentials |
| البنية الأساسية لبرنامج ربط العمليات التجارية CI/CD | اتحاد هوية أو مبدأ الخدمة في عبء العمل |
تتحقق الشهادة من هذه المصادر بالترتيب:
- متغيرات البيئة
- هوية عبء العمل
- الهوية المُدارة
- Azure CLI
- Azure PowerShell
- بيانات Visual Studio / VS Code
بالنسبة لأعباء العمل الإنتاجية في Azure، ينصح بشدة باستخدام الهويات المدارة لأنها تلغي إدارة بيانات الاعتماد تماما.
العمليات الرئيسية
توفر الفئة KeyClient طرقا ل:
- إنشاء والحصول على التحديثات وحذف المفاتيح
- قائمة المفاتيح وإصدارات المفاتيح
- مفاتيح النسخ الاحتياطي والاستعادة
توفر الفئة CryptographyClient عمليات تشفير:
- تشفير وفك تشفير البيانات
- توقيع وتحقق من التواقيع
- مفاتيح اللف والفك
تعيين أدوار HSM المدارة
لكي يتمكن تطبيقك من الوصول إلى المفاتيح، قم بتعيين الدور المناسب ل HSM المحلي المناسب لهويتك المدارة. استبدل <vm-name>، <resource-group>، ومع <hsm-name> قيمك الفعلية.
# Get the principal ID of your managed identity
principalId=$(az vm identity show --name <vm-name> --resource-group <resource-group> --query principalId -o tsv)
# Assign the Crypto User role for key operations
az keyvault role assignment create \
--hsm-name <hsm-name> \
--role "Managed HSM Crypto User" \
--assignee $principalId \
--scope /keys
لمزيد من المعلومات حول الأدوار والأذونات، راجع الأدوار المدمجة في RBAC المحلية لإدارة HSM.
تنظيف الموارد
عندما لا تعود الحاجة، احذف مجموعة الموارد وجميع الموارد ذات الصلة:
az group delete --name <resource-group>
التحذير
يؤدي حذف مجموعة الموارد إلى وضع HSM المُدار في حالة حذف مبدئي. يستمر نظام HSM المدار في المحاسبة حتى يتم تطهيره. راجع حماية الحذف المبدئي وإزالة HSM المُدار
الخطوات التالية
- تعرف على الوصول الآمن إلى HSMs المدارة لديك
- تكوين تدوير المفاتيح التلقائي
- راجع أفضل الممارسات في وحدة HSM المُدارة
- تعرف على الأدوار المدمجة في HSM المحلية RBAC