Azure IoT İşlemleri Önizleme dağıtımında güvenli ayarları etkinleştirme

Önemli

Azure Arc tarafından etkinleştirilen Azure IoT İşlemleri Önizlemesi şu anda önizleme aşamasındadır. Bu önizleme yazılımını üretim ortamlarında kullanmamalısınız.

Genel kullanıma sunulan bir sürüm kullanıma sunulduğunda yeni bir Azure IoT İşlemleri yüklemesi dağıtmanız gerekir. Önizleme yüklemesini yükseltemezsiniz.

Beta veya önizleme aşamasında olan ya da başka bir şekilde henüz genel kullanıma sunulmamış olan Azure özelliklerinde geçerli olan yasal koşullar için bkz. Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları.

Azure IoT İşlemleri için güvenli ayarlar, OPC UA sunucusu veya veri akışı uç noktaları gibi bulut bağlantıları için Gizli Dizi Yönetimi kurulumu ve kullanıcı tarafından atanan yönetilen kimliktir.

Bu makalede, ilk dağıtımınız sırasında yapmadıysanız güvenli ayarları etkinleştirme yönergeleri sağlanır.

Önkoşullar

  • Test ayarlarıyla dağıtılan bir Azure IoT İşlemleri örneği. Örneğin, Hızlı Başlangıç: Codespaces'ta Azure IoT İşlemleri'ni çalıştırma başlığı altındaki yönergeleri izlediyseniz.

  • Geliştirme makinenizde Yüklü Azure CLI. Bu senaryo için Azure CLI sürüm 2.64.0 veya üzeri gerekir. Sürümünüzü denetlemek ve az upgrade gerekirse güncelleştirmek için kullanınaz --version. Daha fazla bilgi için bkz . Azure CLI'yi yükleme.

  • Azure CLI için aşağıdaki uzantıların en son sürümleri:

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

kümeyi iş yükü kimliği için yapılandırma

İş yükü kimliği, diğer hizmet ve kaynaklara kimlik doğrulaması yapmak ve bunlara erişmek için yazılım iş yüküne (uygulama, hizmet, betik veya kapsayıcı gibi) atadığınız bir kimliktir. Kubernetes ve Azure IoT İşlemleri için Azure Key Vault Gizli Depolama uzantısının Microsoft Entra ID korumalı kaynaklara erişebilmesi için kümenizde iş yükü kimliği özelliğinin etkinleştirilmesi gerekir. Daha fazla bilgi edinmek için bkz . İş yükü kimlikleri nedir?.

Not

Bu adım yalnızca Ubuntu + K3s kümeleri için geçerlidir. Azure Arc özellikli Kubernetes kümenizi hazırlama bölümünde kullanılan Azure Kubernetes Service (AKS) Edge Essentials için hızlı başlangıç betiği, iş yükü kimliğini varsayılan olarak etkinleştirir. AKS Edge Temel Parçalar kümeniz varsa sonraki bölüme geçin.

K3s kümenizde zaten iş yükü kimliğinin etkinleştirilip etkinleştirilmediğinden emin değilseniz, aşağıdakileri denetlemek için az connectedk8s show komutunu çalıştırın:

az connectedk8s show --name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --query "{oidcIssuerEnabled:oidcIssuerProfile.enabled, workloadIdentityEnabled: securityProfile.workloadIdentity.enabled}"

Henüz ayarlanmadıysa, mevcut bir bağlı K3s kümesinde iş yükü kimliğini etkinleştirmek için aşağıdaki adımları kullanın:

  1. Kümede iş yükü kimliği özelliğini etkinleştirmek için az connectedk8s update komutunu kullanın.

    #!/bin/bash   
    
    # Variable block
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    CLUSTER_NAME="<CLUSTER_NAME>"
    
    # Enable workload identity
    az connectedk8s update --resource-group $RESOURCE_GROUP \
                           --name $CLUSTER_NAME \
                           --enable-oidc-issuer --enable-workload-identity 
    
  2. Kümenin veren URL'sini almak için az connectedk8s show komutunu kullanın. Daha sonra K3s yapılandırma dosyasına eklemek için not alın.

    #!/bin/bash
    
    # Variable block
    RESOURCE_GROUP="<RESOURCE_GROUP>"
    CLUSTER_NAME="<CLUSTER_NAME>"
    
    # Get the cluster's issuer url
    SERVICE_ACCOUNT_ISSUER=$(az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv)
    echo "SERVICE_ACCOUNT_ISSUER = $SERVICE_ACCOUNT_ISSUER"
    
  3. K3s yapılandırma dosyası oluşturun.

    sudo nano /etc/rancher/k3s/config.yaml
    
  4. config.yaml dosyasına aşağıdaki içeriği ekleyin:

    kube-apiserver-arg:
     - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
     - service-account-max-token-expiration=24h 
    
  5. Dosya düzenleyicisini kaydedin ve çıkın.

  6. k3s'i yeniden başlatın.

    systemctl restart k3s 
    

Gizli Dizi Yönetimini Ayarlama

Azure IoT İşlemleri için Gizli Dizi Yönetimi, gizli dizileri bir Azure Key Vault'tan eşitlemek ve uçta Kubernetes gizli dizileri olarak depolamak için Gizli Dizi Deposu uzantısını kullanır. Gizli Dizi Deposu uzantısı, gizli dizilerin depolandığı Azure Key Vault'a erişimi olan, kullanıcı tarafından atanan yönetilen kimliği gerektirir. Daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler nelerdir?.

Gizli Dizi Yönetimi'nin ayarlanması için şu adımları izleyin:

  1. Gizli dizileri depolamak için kullanılan bir Azure Key Vault oluşturun ve kullanıcı hesabınıza rolle Key Vaults Secrets Officer gizli dizileri yönetme izinleri verin.

  2. Gizli Dizi Deposu uzantısı için kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.

  3. Azure IoT İşlemleri örneğini gizli dizi eşitlemesi için ayarlamak için az iot ops secretsync enable komutunu kullanın. Şu komut:

    • Kullanıcı tarafından atanan yönetilen kimliği kullanarak bir federasyon kimliği kimlik bilgisi oluşturur.
    • Azure Key Vault'a erişim için kullanıcı tarafından atanan yönetilen kimliğe rol ataması ekler.
    • Azure IoT İşlemleri örneğiyle ilişkili en düşük gizli dizi sağlayıcısı sınıfını ekler.
    # Variable block
    INSTANCE_NAME="<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 --name $INSTANCE_NAME \
                                 --resource-group $RESOURCE_GROUP \
                                 --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \
                                 --kv-resource-id $KEYVAULT_RESOURCE_ID
    

Gizli dizi eşitleme kurulumu tamamlandıktan sonra Azure IoT İşlemleri ile gizli dizileri kullanmayı öğrenmek için Gizli Dizileri Yönetme konusuna bakabilirsiniz.

Bulut bağlantıları için kullanıcı tarafından atanan yönetilen kimliği ayarlama

Veri akışı uç noktaları gibi bazı Azure IoT İşlemleri bileşenleri, bulut bağlantıları için kullanıcı tarafından atanan yönetilen kimliği kullanır. Gizli Dizi Yönetimi'ni ayarlamak için kullanılan kimlikten ayrı bir kimlik kullanmanız önerilir.

  1. Bulut bağlantıları için kullanılan kullanıcı tarafından atanan bir yönetilen kimlik oluşturun.

    Not

    Bunun hangi bulut kaynağı için kullanılacağına kimlik izni vermeniz gerekir.

  2. Kimliği Azure IoT İşlemleri örneğine atamak için az iot ops identity assign komutunu kullanın. Bu komut ayrıca belirtilen bağlı kümenin OIDC verenini ve Azure IoT İşlemleri hizmet hesabını kullanarak bir federasyon kimliği kimlik bilgisi oluşturur.

    # Variable block
    INSTANCE_NAME="<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 $INSTANCE_NAME \
                               --resource-group $RESOURCE_GROUP \
                               --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
    

Artık bu yönetilen kimliği bulut bağlantıları için veri akışı uç noktalarında kullanabilirsiniz.