مشاركة عبر


المكون الإضافي للحوسبة السرية للأجهزة الظاهرية السرية

توفر خدمة Azure Kubernetes (AKS) مكونا إضافي لأجهزة Azure الظاهرية للحوسبة السرية (VMs). المكون الإضافي، confcom، هو مجموعة خفي. يعمل المكون الإضافي فقط للأجهزة الظاهرية السرية لملحقات Intel Software Guard (SGX) في نظام مجموعة AKS. تم تسجيل هذا المكون الإضافي على مستوى مجموعة AKS. يمكنك استخدام المكون الإضافي لإدارة العقد السرية بسهولة. تمكين المكون الإضافي على نظام مجموعة AKS قبل البدء.

المكون الإضافي لجهاز Intel SGX ل AKS

ينفذ المكون الإضافي لجهاز SGX واجهة المكون الإضافي لجهاز Kubernetes لذاكرة ذاكرة التخزين المؤقت لصفحة الجيب (EPC). في الواقع، يجعل هذا المكون الإضافي ذاكرة EPC نوع مورد آخر في Kubernetes. يمكن للمستخدمين تحديد حدود على EPC تماما مثل الموارد الأخرى. بصرف النظر عن وظيفة الجدولة، يساعد المكون الإضافي للجهاز في تعيين أذونات برنامج تشغيل جهاز SGX لحاويات حمل العمل السرية. يتوفر نموذج تنفيذ النشر المستند إلى ذاكرة EPC (kubernetes.azure.com/sgx_epc_mem_in_MiB).

PSW مع مساعد اقتباس SGX

تحتاج تطبيقات الجيب التي تقوم بالإثبات عن بعد إلى إنشاء عرض أسعار. يوفر عرض الأسعار دليلا مشفرا على هوية التطبيق وحالته، جنبا إلى جنب مع بيئة مضيف الجيب. يعتمد إنشاء عرض الأسعار على بعض مكونات البرامج الموثوق بها من Intel، والتي تعد جزءا من مكونات برامج النظام الأساسي SGX (PSW/DCAP). يتم حزم PSW هذا كمجموعة خفية يتم تشغيلها لكل عقدة. يمكنك استخدام PSW عند طلب اقتباس التصديق من تطبيقات الجيب. يساعد استخدام الخدمة المقدمة من AKS على الحفاظ على التوافق بين PSW ومكونات SW الأخرى في المضيف بشكل أفضل. اقرأ تفاصيل الميزة أدناه.

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

نظرة عامة

إشعار

هذه الميزة مطلوبة فقط لأجهزة DCsv2/DCsv3 الظاهرية التي تستخدم أجهزة Intel SGX المتخصصة.

تدعم Intel وضعي تصديق لتشغيل إنشاء عرض الأسعار. لمعرفة كيفية اختيار النوع، راجع [اختلافات نوع التصديق] (#attestation-type-differences).

  • in-proc: يستضيف مكونات البرامج الموثوق بها داخل عملية تطبيق الجيب. هذه الطريقة مفيدة عند إجراء إثبات محلي (بين تطبيقي جيب في عقدة جهاز ظاهري واحدة)

  • خارج البرنامج: يستضيف مكونات البرامج الموثوق بها خارج تطبيق الجيب. هذه طريقة مفضلة عند إجراء التصديق عن بعد.

يتم إنشاء تطبيقات SGX باستخدام Open Enclave SDK افتراضيا باستخدام وضع التصديق في proc. تسمح التطبيقات المستندة إلى SGX بالانقطاع وتتطلب استضافة إضافية. تعرض هذه التطبيقات المكونات المطلوبة مثل إدارة خدمة الجيب المعماري (AESM)، الخارجية للتطبيق.

يوصى بشدة باستخدام هذه الميزة. تحسن هذه الميزة وقت التشغيل لتطبيقات الجيب أثناء تحديثات Intel Platform أو تحديثات برنامج تشغيل DCAP.

اختلافات نوع التصديق

لا توجد تحديثات مطلوبة لمكونات إنشاء quote من PSW لكل تطبيق حاوية.

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

بالنسبة للوكلاء غير المحدثين، لا يوجد قلق من حالات الفشل بسبب مكونات PSW غير المحدثة. يتضمن إنشاء عرض الأسعار مكونات SW الموثوق بها - جيب الاقتباس (QE) وجيب شهادة التزويد (PCE)، والتي تعد جزءا من قاعدة الحوسبة الموثوق بها (TCB). يجب أن تكون مكونات SW هذه محدثة للحفاظ على متطلبات التصديق. يقوم الموفر بإدارة التحديثات لهذه المكونات. لا يتعين على العملاء أبدا التعامل مع حالات فشل الإثبات بسبب مكونات SW الموثوق بها غير المحدثة داخل حاوياتهم.

يستخدم Out-of-proc ذاكرة EPC بشكل أفضل. في وضع التصديق في الإعلان، ينشئ كل تطبيق جيب نسخة من QE وPCI للمصادقة عن بعد. مع خارج proc، لا تستضيف الحاوية هذه الجيوب، ولا تستهلك ذاكرة الجيب من الحصة النسبية للحاوية.

هناك أيضا ضمانات ضد إنفاذ Kernel. عند دفق برنامج تشغيل SGX إلى نواة Linux، يكون للجيب امتياز أعلى. يسمح هذا الامتياز للجيب باستدعاء PCE، والذي يكسر تطبيق الجيب الذي يعمل في وضع proc. افتراضياً، لا تحصل جيوب الذاكرة على هذا الإذن. يتطلب منح هذا الامتياز إلى تطبيق الجيب تغييرات على عملية تثبيت التطبيق. يتأكد موفر الخدمة التي تتعامل مع الطلبات خارج proc من تثبيت الخدمة بهذا الامتياز.

ليس عليك التحقق من التوافق مع الإصدارات السابقة مع PSW وDCAP. يتحقق الموفر من صحة التحديثات لمكونات إنشاء عرض الأسعار من PSW للتوافق مع الإصدارات السابقة. تعالج هذه الخطوة مشكلات التوافق مقدما وتعالجها قبل نشر التحديثات لأحمال العمل السرية.

إثبات خارج الإعلان لأحمال العمل السرية

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

رسم تخطيطي لمطالب عرض الأسعار وواجهة إنشاء الاقتباس.

ينطبق النموذج المجرد على سيناريوهات حمل العمل السرية. يستخدم هذا النموذج خدمة AESM المتوفرة بالفعل. يتم تعبئة AESM في حاويات ونشرها كخفية تم تعيينها عبر مجموعة Kubernetes. تنشئ Kubernetes مثيلاً واحداً من حاوية خدمة الــ AESM، ملفوفاً في جراب، لتنشر في كل عامل عقدة. تعتمد مجموعة البرنامج الخفي الجديد لاقتباس SGX على sgx-device-plugin مجموعة البرنامج الخفي، نظرا لأن حاوية خدمة AESM ستطلب ذاكرة EPC من sgx-device-plugin لإطلاق جيوب QE وPCI.

تحتاج كل حاوية إلى الاشتراك في استخدام إنشاء عرض أسعار خارج نطاق proc عن طريق تعيين متغير SGX_AESM_ADDR=1 البيئة أثناء الإنشاء. يجب أن تتضمن الحاوية أيضا الحزمة libsgx-quote-ex، التي توجه الطلب إلى مأخذ توصيل مجال Unix الافتراضي

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

إشعار

إذا كنت تستخدم برنامج تضمين Intel SGX (OSS/ISV) لتشغيل الحاويات غير المعدلة، عادة ما يتم التعامل مع تفاعل التصديق مع الأجهزة لتطبيقاتك ذات المستوى الأعلى. يرجى الرجوع إلى تنفيذ التصديق لكل موفر.

نموذج التنفيذ

بشكل افتراضي، لا يتم تمكين هذه الخدمة لمجموعة AKS الخاصة بك مع إضافة "confcom". الرجاء تحديث الملحق باستخدام الأمر أدناه

az aks addon update --addon confcom --name " YourAKSClusterName " --resource-group "YourResourceGroup " --enable-sgxquotehelper

بمجرد تشغيل الخدمة، استخدم نموذج docker أدناه لتطبيق يستند إلى Open Enclave للتحقق من صحة التدفق. SGX_AESM_ADDR=1 تعيين متغير البيئة في ملف Docker. أو قم بتعيين المتغير في ملف النشر. اتبع هذه العينة للحصول على ملف Docker وتفاصيل YAML للتوزيع.

إشعار

يجب حزم حزمة libsgx-quote-ex من Intel في حاوية التطبيق للمصادقة خارج الإعلان للعمل بشكل صحيح. تحتوي الإرشادات أدناه على التفاصيل.

# Refer to Intel_SGX_Installation_Guide_Linux for detail
FROM ubuntu:18.04 as sgx_base
RUN apt-get update && apt-get install -y \
    wget \
    gnupg

# Add the repository to sources, and add the key to the list of
# trusted keys used by the apt to authenticate packages
RUN echo "deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu bionic main" | tee /etc/apt/sources.list.d/intel-sgx.list \
    && wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add -
# Add Microsoft repo for az-dcap-client
RUN echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/18.04/prod bionic main" | tee /etc/apt/sources.list.d/msprod.list \
    && wget -qO - https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

FROM sgx_base as sgx_sample
RUN apt-get update && apt-get install -y \
    clang-7 \
    libssl-dev \
    gdb \
    libprotobuf10 \
    libsgx-dcap-ql \
    libsgx-quote-ex \
    az-dcap-client \
    open-enclave
WORKDIR /opt/openenclave/share/openenclave/samples/attestation
RUN . /opt/openenclave/share/openenclave/openenclaverc \
    && make build
# this sets the flag for out of proc attestation mode, alternatively you can set this flag on the deployment files
ENV SGX_AESM_ADDR=1 

CMD make run

بدلا من ذلك، قم بتعيين وضع التصديق خارج الإعلان في ملف YAML للتوزيع كما يلي:

apiVersion: batch/v1
kind: Job
metadata:
  name: sgx-test
spec:
  template:
    spec:
      containers:
      - name: sgxtest
        image: <registry>/<repository>:<version>
        env:
        - name: SGX_AESM_ADDR
          value: 1
        resources:
          limits:
            kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
        volumeMounts:
        - name: var-run-aesmd
          mountPath: /var/run/aesmd
      restartPolicy: "Never"
      volumes:
      - name: var-run-aesmd
        hostPath:
          path: /var/run/aesmd

يجب أن ينجح النشر ويسمح لتطبيقاتك بإجراء تصديق عن بعد باستخدام خدمة SGX Quote Helper.

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