مشاركة عبر


تمكين الإعدادات الآمنة في عمليات Azure IoT

تتضمن الإعدادات الآمنة لعمليات Azure IoT إعداد إدارة البيانات السرية والهوية المدارة المعينة من قبل المستخدم للاتصالات السحابية؛ على سبيل المثال، خادم OPC UA أو نقاط نهاية تدفق البيانات.

توفر هذه المقالة إرشادات لتمكين الإعدادات الآمنة إذا لم تقم بذلك أثناء النشر الأولي.

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

  • مثيل Azure IoT Operations تم نشره مع إعدادات الاختبار.

  • تم تثبيت Azure CLI على جهاز التطوير الخاص بك. يتطلب هذا السيناريو إصدار Azure CLI 2.53.0 أو أعلى. استخدم az --version للتحقق من الإصدار وتحديثه az upgrade إذا لزم الأمر. لمزيد من المعلومات، راجع كيفية تثبيت Azure CLI.

  • أحدث إصدار من ملحق connectedk8s ل Azure CLI. استخدم الأمر التالي لإضافة الملحق أو تحديثه إلى أحدث إصدار:

    az extension add --upgrade --name connectedk8s
    
  • ملحق عمليات Azure IoT ل Azure CLI. استخدم الأمر التالي لإضافة الملحق أو تحديثه إلى أحدث إصدار:

    az extension add --upgrade --name azure-iot-ops
    

تمكين نظام المجموعة للإعدادات الآمنة

لتمكين مزامنة الأسرار لمثيل Azure IoT Operations، يجب تمكين ميزات اتحاد هوية مصدر OIDCوحمل العمل على نظام المجموعة الخاص بك. هذا التكوين مطلوب لملحق مخزن Azure Key Vault السري لمزامنة الأسرار من Azure Key Vault وتخزينها على الحافة كأسرار Kubernetes.

بالنسبة لمجموعات Azure Kubernetes Service (AKS)، يمكن تمكين مصدر OIDC وميزات هوية حمل العمل فقط في وقت إنشاء نظام المجموعة. بالنسبة للمجموعات على AKS Edge Essentials، يمكن البرنامج النصي التلقائي هذه الميزات بشكل افتراضي. بالنسبة لمجموعات AKS على Azure Local، اتبع الخطوات لنشر هوية حمل العمل وتكوينها على AKS التي تم تمكينها بواسطة نظام مجموعة Azure Arc لإنشاء نظام مجموعة جديد إذا لم يكن لديك واحد مع الميزات المطلوبة.

بالنسبة إلى مجموعات k3s على Kubernetes، يمكنك تحديث نظام مجموعة موجود. لتمكين هذه الميزات وتكوينها، استخدم الخطوات التالية:

  1. تحديث نظام المجموعة لتمكين مصدر OIDC وهوية حمل العمل.

    az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
    

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

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
    
  2. احصل على عنوان URL لمصدر نظام المجموعة.

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    

    قم بتدوين الإخراج من هذا الأمر لاستخدامه في الخطوات التالية.

  3. إنشاء ملف تكوين k3s على الجهاز حيث قمت بنشر مجموعة Kubernetes الخاصة بك:

    sudo nano /etc/rancher/k3s/config.yaml
    
  4. أضف المحتوى التالي إلى config.yaml الملف، واستبدل <SERVICE_ACCOUNT_ISSUER> العنصر النائب بعنوان URL لمصدر نظام المجموعة الذي قمت بتدوينه مسبقا:

    kube-apiserver-arg:
    - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
    - service-account-max-token-expiration=24h
    

    احفظ الملف واخرج من محرر nano.

  5. أعد تشغيل خدمة k3s:

    sudo systemctl restart k3s
    

إعداد إدارة البيانات السرية

تستخدم إدارة الأسرار لعمليات Azure IoT ملحق المخزن السري لمزامنة الأسرار من Azure Key Vault وتخزينها على الحافة كأسرار Kubernetes. يتطلب ملحق المخزن السري هوية مدارة يعينها المستخدم مع الوصول إلى Azure Key Vault حيث يتم تخزين الأسرار. لمعرفة المزيد، راجع ما هي الهويات المدارة لموارد Azure؟.

لإعداد إدارة الأسرار:

  1. إنشاء Azure Key Vault الذي يستخدم لتخزين الأسرار، ومنح حساب المستخدم أذونات لإدارة الأسرار مع Key Vault Secrets Officer الدور.

  2. إنشاء هوية مدارة معينة من قبل المستخدم لملحق المخزن السري لاستخدامها للوصول إلى مخزن المفاتيح.

  3. استخدم الأمر az iot ops secretsync enable لإعداد مثيل عمليات Azure IoT للمزامنة السرية. هذا الأمر:

    • إنشاء بيانات اعتماد هوية موحدة باستخدام الهوية المدارة المعينة من قبل المستخدم.
    • إضافة تعيين دور إلى الهوية المدارة المعينة من قبل المستخدم للوصول إلى Azure Key Vault.
    • يضيف الحد الأدنى من فئة موفر البيانات السرية المقترنة بمثيل عمليات Azure IoT.
    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>"
    KEYVAULT_NAME="<KEYVAULT_NAME>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Get the resource ID of the key vault
    KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Enable secret synchronization
    az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \
                                 --resource-group $RESOURCE_GROUP \
                                 --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \
                                 --kv-resource-id $KEYVAULT_RESOURCE_ID
    

الآن بعد اكتمال إعداد مزامنة البيانات السرية، يمكنك الرجوع إلى إدارة الأسرار لنشر عمليات Azure IoT لمعرفة كيفية استخدام الأسرار مع عمليات Azure IoT.

إعداد هوية مدارة يعينها المستخدم للاتصالات السحابية

تستخدم بعض مكونات عمليات Azure IoT، مثل نقاط نهاية تدفق البيانات، هوية مدارة يعينها المستخدم للاتصالات السحابية. نوصي باستخدام هوية منفصلة عن الهوية التي استخدمتها لإعداد إدارة الأسرار.

  1. إنشاء هوية مدارة معينة من قبل المستخدم تستخدم للاتصالات السحابية.

    إشعار

    ستحتاج إلى منح إذن الهوية لأي مورد سحابي ستستخدم الهوية المدارة له.

  2. استخدم الأمر az iot ops identity assign لتعيين الهوية إلى مثيل عمليات Azure IoT. ينشئ هذا الأمر أيضا بيانات اعتماد هوية موحدة باستخدام مصدر OIDC للمجموعة المتصلة المشار إليها وحساب خدمة عمليات Azure IoT.

    # Variable block
    AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>"
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>"
    
    #Get the resource ID of the user-assigned managed identity
    USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv)
    
    #Assign the identity to the Azure IoT Operations instance
    az iot ops identity assign --name $AIO_INSTANCE_NAME \
                               --resource-group $RESOURCE_GROUP \
                               --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
    
  3. أعد تشغيل جراب تسجيل المخطط لتطبيق الهوية الجديدة.

    kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
    

يمكنك الآن استخدام هذه الهوية المدارة في نقاط نهاية تدفق البيانات للاتصالات السحابية.