Aracılığıyla paylaş


Azure IoT İşlemleri'nde güvenli ayarları etkinleştirme

Azure IoT İşlemleri için güvenli ayarlar arasında gizli dizi yönetimi kurulumu ve bulut bağlantıları için kullanıcı tarafından atanan yönetilen kimlik bulunur; örneğin, bir OPC UA sunucusu veya veri akışı uç noktaları.

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.

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

  • Azure CLI için connectedk8s uzantısının en son sürümü. Uzantıyı eklemek veya en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

    az extension add --upgrade --name connectedk8s
    
  • Azure CLI için Azure IoT İşlemleri uzantısı. Uzantıyı eklemek veya en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

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

Güvenli ayarlar için kümeyi etkinleştirme

Azure IoT İşlemleri örneğiniz için gizlilik eşitlemesini etkinleştirmek üzere OIDC sağlayıcısı ve iş yükü kimlik federasyonu özelliklerinin kümenizde etkinleştirilmesi gerekir. Bu yapılandırma, Azure Key Vault Gizli Dizi Deposu uzantısının bir Azure Key Vault'tan gizli dizileri eşitlemesi ve uçta Kubernetes gizli dizileri olarak depolaması için gereklidir.

Azure Kubernetes Service (AKS) kümeleri için OIDC veren ve iş yükü kimliği özellikleri yalnızca küme oluşturma sırasında etkinleştirilebilir. AKS Edge Essentials'ta kümeler için otomatik betik bu özellikleri varsayılan olarak etkinleştirir. Azure Yerel'de AKS kümeleri için, gerekli özelliklere sahip bir kümeniz yoksa yeni bir küme oluşturmak için Azure Arc kümesi tarafından etkinleştirilen bir AKS'de iş yükü kimliğini dağıtma ve yapılandırma adımlarını izleyin.

Kubernetes'te k3s kümeleri için mevcut bir kümeyi güncelleştirebilirsiniz. Bu özellikleri etkinleştirmek ve yapılandırmak için aşağıdaki adımları kullanın:

  1. OIDC vereni ve iş yükü kimliğini etkinleştirmek için kümeyi güncelleştirin.

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

    Kümeyi oluştururken OIDC veren ve iş yükü kimliği özelliklerini etkinleştirdiyseniz, önceki komutu yeniden çalıştırmanız gerekmez. Kümenizin OIDC veren ve iş yükü kimliği özelliklerinin durumunu denetlemek için aşağıdaki komutu kullanın:

    az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
    
  2. Kümenin veren URL'sini alın.

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

    Sonraki adımlarda kullanmak üzere bu komutun çıkışını not edin.

  3. Kubernetes kümenizi dağıttığınız makinede k3s yapılandırma dosyasını oluşturun:

    sudo nano /etc/rancher/k3s/config.yaml
    
  4. Aşağıdaki içeriği config.yaml dosyasına ekleyin ve <SERVICE_ACCOUNT_ISSUER> yer tutucusunu önceden not ettiğiniz küme sağlayıcı URL'si ile değiştirin.

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

    Dosyayı kaydedin ve nano düzenleyiciden çıkın.

  5. k3s hizmetini yeniden başlatın:

    sudo systemctl restart k3s
    

Gizli bilgi 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 bir yönetilen kimlik gerektirir. Daha fazla bilgi edinmek için bkz . Azure kaynakları için yönetilen kimlikler nelerdir?.

Gizlilik yönetimini ayarlamak için:

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

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

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

    • Kullanıcı tarafından atanan yönetilen kimliği kullanarak bir federe 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 Operasyonları örneğiyle ilişkili minimum gizli sağlayıcı sınıfını ekler.
    # 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
    

Gizli dizi eşitleme kurulumu tamamlandıktan sonra Azure IoT İşlemleri ile gizli dizileri kullanmayı öğrenmek için Azure IoT İşlemleri dağıtımınız 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 yönetimini ayarlamak için kullandığınız kimlikten ayrı bir kimlik kullanmanızı öneririz.

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

    Uyarı

    Yönetilen kimliği kullanacağınız bulut kaynağı için 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 sağlayıcısını ve Azure IoT İşlemleri hizmet hesabını kullanarak federasyon kimlik bilgileri oluşturur.

    # 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. Yeni kimliği uygulamak için şema kayıt defteri podlarını yeniden başlatın.

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

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