إدارة هوية الأجهزة الموثوق بها

تعالج خدمة إدارة هوية الأجهزة الموثوق بها إدارة ذاكرة التخزين المؤقت للشهادات لجميع بيئات التنفيذ الموثوق بها (TEEs) الموجودة في Azure. كما يوفر معلومات قاعدة الحوسبة الموثوق بها (TCB) لفرض حد أدنى أساسي لحلول التصديق.

إدارة هوية الأجهزة الموثوق بها وتفاعلات التصديق

تحدد إدارة هوية الأجهزة الموثوق بها أساس أمان Azure لعقد الحوسبة السرية Azure (ACC) وملفات التخزين المؤقت الإضافية من موفري TEE. يمكن لخدمات التصديق وعقد ACC استخدام المعلومات المخزنة مؤقتا للتحقق من صحة TEEs. يوضح الرسم التخطيطي التالي التفاعلات بين خدمة التصديق أو العقدة، وإدارة هوية الأجهزة الموثوق بها، ومضيف جيب.

Diagram that illustrates interactions between an attestation service or node, Trusted Hardware Identity Management, and an enclave host.

الأسئلة الشائعة

كيف أعمل استخدام إدارة هوية الأجهزة الموثوق بها مع معالجات Intel؟

لإنشاء علامات اقتباس Intel SGX وIntel TDX، تحتاج مكتبة Intel Quote Generation (QGL) إلى الوصول إلى ضمان إنشاء/التحقق من صحة عرض الأسعار. يجب إحضار جميع أو أجزاء هذه الضمانات من إدارة هوية الأجهزة الموثوق بها. يمكنك إحضاره باستخدام مكتبة موفر عرض أسعار Intel (QPL) أو مكتبة عميل Azure Data Center Attestation Primitives (DCAP).

يبدو أن تاريخ "التحديث التالي" لواجهة برمجة تطبيقات خدمة التخزين المؤقت الداخلية Azure التي يستخدمها Azure Attestation قديم. هل لا يزال قيد التشغيل ويمكنني استخدامه؟

tcbinfo يحتوي الحقل على معلومات TCB. توفر خدمة إدارة هوية الأجهزة الموثوق بها معلومات أقدم tcbinfo بشكل افتراضي. سيؤدي التحديث إلى أحدث tcbinfo المعلومات من Intel إلى فشل الإثبات للعملاء الذين لم يقوموا بالترحيل إلى أحدث Intel SDK، وقد يؤدي إلى انقطاع.

ومع ذلك، لا ينظر Open Enclave SDK وAzure Attestation إلى nextUpdate التاريخ، وسيمرر التصديق.

ما هي مكتبة Azure DCAP؟

تقوم مكتبة Azure Data Center Attestation Primitives (DCAP)، وهي بديل لمكتبة موفر عرض أسعار Intel (QPL)، بإحضار ضمانات إنشاء الاقتباس والتحقق من صحة الاقتباس مباشرة من خدمة إدارة هوية الأجهزة الموثوق بها. يضمن إحضار الضمانات مباشرة من خدمة إدارة هوية الأجهزة الموثوق بها أن جميع مضيفي Azure لديهم ضمانات متاحة بسهولة داخل سحابة Azure لتقليل التبعيات الخارجية. الإصدار الحالي الموصى به من مكتبة DCAP هو 1.11.2.

أين يمكنني تنزيل أحدث مكتبة Azure DCAP؟

استخدم الارتباطات التالية لتنزيل الحزم:

للحصول على إصدارات أحدث من Ubuntu (على سبيل المثال، Ubuntu 22.04)، يجب عليك استخدام Intel QPL.

لماذا لدى إدارة هوية الأجهزة الموثوق بها وIntel خطوط أساس مختلفة؟

توفر إدارة هوية الأجهزة الموثوق بها وIntel مستويات أساسية مختلفة لقاعدة الحوسبة الموثوق بها. عندما يفترض العملاء أن Intel لديها أحدث الخطوط الأساسية، يجب عليهم التأكد من استيفاء جميع المتطلبات. يمكن أن يؤدي هذا الأسلوب إلى توقف إذا لم يتم تحديث العملاء إلى المتطلبات المحددة.

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

باستخدام معالجات Intel Xeon E، يمكنني الحصول على شهاداتي مباشرة من Intel PCS. لماذا، مع معالجات Intel Xeon القابلة للتحجيم بدءا من الجيل الرابع، هل أحتاج إلى الحصول على الشهادات من إدارة هوية الأجهزة الموثوق بها؟ وكيف يمكنني إحضار هذه الشهادات؟

بدءا من الجيل الرابع من معالجات Intel® Xeon® Scalable، يقوم Azure بإجراء التسجيل غير المباشر في خدمة تسجيل Intel باستخدام بيان النظام الأساسي ويخزن شهادة PCK الناتجة في خدمة إدارة هوية الأجهزة الموثوق بها (THIM) التي يستخدمها Azure التسجيل غير المباشر، لأن خدمة تسجيل Intel لن تخزن المفاتيح الجذر للنظام الأساسي في هذه الحالة وينعكس false ذلك في CachedKeys العلامة في شهادات PCK. عند استخدام التسجيل غير المباشر، تتطلب جميع الاتصالات التالية إلى Intel PCS بيان النظام الأساسي، والذي لا يوفره Azure للأجهزة الظاهرية (VMs). بدلا من ذلك، يجب على الأجهزة الظاهرية التواصل مع THIM لتلقي شهادات PCK. لاسترداد شهادة PCK، يمكنك إما استخدام Intel QPL أو مكتبة Azure DCAP.

كيف أعمل استخدام Intel QPL مع إدارة هوية الأجهزة الموثوق بها؟

قد يرغب العملاء في المرونة لاستخدام Intel QPL للتفاعل مع إدارة هوية الأجهزة الموثوق بها دون الحاجة إلى تنزيل تبعية أخرى من Microsoft (أي مكتبة عميل Azure DCAP). يجب على العملاء الذين يرغبون في استخدام Intel QPL مع خدمة إدارة هوية الأجهزة الموثوق بها ضبط ملف تكوين Intel QPL، sgx_default_qcnl.conf.

يمكن تقسيم ضمانات إنشاء/التحقق من الاقتباس المستخدمة لإنشاء علامات اقتباس Intel SGX أو Intel TDX إلى:

  • شهادة PCK. لاسترداده، يجب على العملاء استخدام نقطة نهاية إدارة هوية الأجهزة الموثوق بها.
  • جميع ضمانات إنشاء/التحقق من الأسعار الأخرى. لاسترداده، يمكن للعملاء إما استخدام نقطة نهاية إدارة هوية الأجهزة الموثوق بها أو نقطة نهاية Intel Provisioning Certification Service (PCS).

يحتوي ملف تكوين Intel QPL (sgx_default_qcnl.conf) على ثلاثة مفاتيح لتعريف نقاط النهاية الجانبية. pccs_url يعرف المفتاح نقطة النهاية المستخدمة لاسترداد شهادات PCK. يمكن للمفتاح collateral_service تحديد نقطة النهاية المستخدمة لاسترداد جميع ضمانات إنشاء/التحقق من الأسعار الأخرى. collateral_service إذا لم يتم تعريف المفتاح، يتم استرداد جميع ضمانات التحقق من عرض الأسعار من نقطة النهاية المحددة بالمفتاحpccs_url.

يوضح الجدول التالي كيفية تعيين هذه المفاتيح.

الاسم نقاط النهاية المحتملة
pccs_url نقطة نهاية إدارة هوية الأجهزة الموثوق بها: https://global.acccache.azure.net/sgx/certification/v3.
collateral_service نقطة نهاية إدارة هوية الأجهزة الموثوق بها (https://global.acccache.azure.net/sgx/certification/v3) أو نقطة نهاية Intel PCS. يسرد ملف sgx_default_qcnl.conf دائما أحدث نقطة نهاية في collateral_service المفتاح.

مقتطف التعليمات البرمجية التالي من مثال لملف تكوين Intel QPL:

    { 
        "pccs_url": "https://global.acccache.azure.net/sgx/certification/v3/", 
        "use_secure_cert": true, 
        "collateral_service": "https://global.acccache.azure.net/sgx/certification/v3/",  
        "pccs_api_version": "3.1", 
        "retry_times": 6, 
        "retry_delay": 5, 
        "local_pck_url": "http://169.254.169.254/metadata/THIM/sgx/certification/v3/",
        "pck_cache_expire_hours": 24, 
        "verify_collateral_cache_expire_hours": 24, 
        "custom_request_options": { 
            "get_cert": { 
                "headers": { 
                    "metadata": "true" 
                }, 
                "params": { 
                    "api-version": "2021-07-22-preview" 
                } 
            } 
        } 
    }   

توضح الإجراءات التالية كيفية تغيير ملف تكوين Intel QPL وتنشيط التغييرات.

على Windows

  1. قم بإجراء تغييرات على ملف التكوين.

  2. تأكد من وجود أذونات قراءة للملف من موقع التسجيل التالي والمفتاح/القيمة:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Intel\SGX\QCNL]
    "CONFIG_FILE"="<Full File Path>"
    
  3. أعد تشغيل خدمة AESMD. على سبيل المثال، افتح PowerShell كمسؤول واستخدم الأوامر التالية:

    Restart-Service -Name "AESMService" -ErrorAction Stop
    Get-Service -Name "AESMService"
    

On Linux

  1. قم بإجراء تغييرات على ملف التكوين. على سبيل المثال، يمكنك استخدام Vim للتغييرات عبر الأمر التالي:

    sudo vim /etc/sgx_default_qcnl.conf
    
  2. أعد تشغيل خدمة AESMD. افتح أي محطة طرفية وقم بتشغيل الأوامر التالية:

    sudo systemctl restart aesmd 
    systemctl status aesmd 
    

كيف أعمل طلب ضمانات في جهاز ظاهري سري؟

استخدم النموذج التالي في ضيف جهاز ظاهري سري (CVM) لطلب ضمانات AMD التي تتضمن شهادة VCEK وسلسلة الشهادات. للحصول على تفاصيل حول هذا الضمان ومن أين يأتي، راجع شهادة مفتاح مصادقة الشريحة (VCEK) ومواصفات واجهة KDS.

معلمات URI

GET "http://169.254.169.254/metadata/THIM/amd/certification"

نص الطلب

Name كتابة الوصف
Metadata قيمة منطقية يسمح الإعداد بإعادة True الضمانات.

نموذج الطلب

curl GET "http://169.254.169.254/metadata/THIM/amd/certification" -H "Metadata: true"

الردود

الاسم ‏‏الوصف
200 OK يسرد الضمانات المتوفرة في نص HTTP بتنسيق JSON
Other Status Codes توضح هذه المقالة سبب فشل العملية

التعريفات

مفتاح ‏‏الوصف
VcekCert شهادة X.509v3 كما هو محدد في RFC 5280
tcbm قاعدة الحوسبة الموثوق بها
certificateChain شهادات AMD SEV Key (ASK) وAMD Root Key (ARK)

كيف أعمل طلب ضمان AMD في حاوية خدمة Azure Kubernetes على عقدة CVM؟

اتبع هذه الخطوات لطلب ضمانات AMD في حاوية سرية:

  1. ابدأ بإنشاء مجموعة Azure Kubernetes Service (AKS) على عقدة CVM أو عن طريق إضافة تجمع عقدة CVM إلى مجموعة موجودة:

    • إنشاء نظام مجموعة AKS على عقدة CVM:

      1. إنشاء مجموعة موارد في إحدى المناطق المدعومة من CVM:

        az group create --resource-group <RG_NAME> --location <LOCATION> 
        
      2. إنشاء نظام مجموعة AKS مع عقدة CVM واحدة في مجموعة الموارد:

        az aks create --name <CLUSTER_NAME> --resource-group <RG_NAME> -l <LOCATION> --node-vm-size Standard_DC4as_v5 --nodepool-name <POOL_NAME> --node-count 1
        
      3. تكوين kubectl للاتصال بالمجموعة:

        az aks get-credentials --resource-group <RG_NAME> --name <CLUSTER_NAME> 
        
    • إضافة تجمع عقدة CVM إلى مجموعة AKS موجودة:

      az aks nodepool add --cluster-name <CLUSTER_NAME> --resource-group <RG_NAME> --name <POOL_NAME > --node-vm-size Standard_DC4as_v5 --node-count 1 
      
  2. تحقق من الاتصال بالمجموعة باستخدام kubectl get الأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

    kubectl get nodes 
    

    يوضح مثال الإخراج التالي العقدة الفردية التي قمت بإنشائها في الخطوات السابقة. تأكد من أن حالة العقدة هي Ready.

    الاسم الحالة ادوار العمر الإصدار
    aks-nodepool1-31718369-0 جاهز agent 6m44s الإصدار 1.12.8
  3. إنشاء ملف curl.yaml بالمحتوى التالي. وهو يحدد مهمة تقوم بتشغيل حاوية curl لإحضار ضمانات AMD من نقطة نهاية إدارة هوية الأجهزة الموثوق بها. لمزيد من المعلومات حول وظائف Kubernetes، راجع وثائق Kubernetes.

    apiVersion: batch/v1 
    kind: Job 
    metadata: 
      name: curl 
    spec: 
      template: 
        metadata: 
          labels: 
            app: curl 
        spec: 
          nodeSelector: 
            kubernetes.azure.com/security-type: ConfidentialVM 
          containers: 
            - name: curlcontainer 
              image: alpine/curl:3.14 
              imagePullPolicy: IfNotPresent 
              args: ["-H", "Metadata:true", "http://169.254.169.254/metadata/THIM/amd/certification"] 
          restartPolicy: "Never" 
    

    يحتوي الملف curl.yaml على الوسيطات التالية.

    Name كتابة الوصف
    Metadata قيمة منطقية يسمح الإعداد بإعادة True الضمانات.
  4. قم بتشغيل المهمة عن طريق تطبيق ملف curl.yaml :

    kubectl apply -f curl.yaml 
    
  5. تحقق وانتظر حتى تكتمل pod وظيفتها:

    kubectl get pods 
    

    وإليك مثالاً للاستجابة:

    الاسم جاهز ‏الحالة إعادة التشغيل العمر
    Curl-w7nt8 0/1 مكتمل 0 72 ثانية
  6. قم بتشغيل الأمر التالي للحصول على سجلات المهمة والتحقق من صحتها إذا كانت تعمل. يجب أن يتضمن vcekCertالإخراج الناجح و tcbmو.certificateChain

    kubectl logs job/curl  
    

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

  • تعرف على المزيد حول وثائق Azure Attestation.
  • تعرف على المزيد حول الحوسبة السرية في Azure.