Simetrik anahtar kullanarak Linux üzerinde büyük ölçekte IoT Edge cihazları oluşturma ve sağlama

Şunlar için geçerlidir:IoT Edge 1.4 checkmark IoT Edge 1.4

Önemli

IoT Edge 1.4 desteklenen sürümdür. Önceki bir sürümdeyseniz bkz. IoT Edge’i güncelleştirme.

Bu makalede, simetrik anahtarları kullanarak bir veya daha fazla Linux IoT Edge cihazının otomatik sağlamasını sağlamak için uçtan uca yönergeler sağlanmaktadır. Azure IoT Edge cihazlarını Azure IoT Hub cihaz sağlama hizmeti (DPS) ile otomatik olarak sağlayabilirsiniz. Otomatik sağlama işlemini bilmiyorsanız devam etmeden önce sağlama genel bakışını gözden geçirin.

Görevler aşağıdaki gibidir:

  1. Tek bir cihaz için tek bir kayıt veya bir cihaz kümesi için grup kaydı oluşturun.
  2. IoT Edge çalışma zamanını yükleyin ve IoT Hub'a bağlanın.

İpucu

Basitleştirilmiş bir deneyim için Azure IoT Edge yapılandırma aracını deneyin. Şu anda genel önizleme aşamasında olan bu komut satırı aracı, ioT Edge'i cihazınıza yükler ve DPS ve simetrik anahtar kanıtlama kullanarak sağlar.

Simetrik anahtar kanıtlama, cihaz sağlama hizmeti örneğiyle cihazın kimliğini doğrulamaya yönelik basit bir yaklaşımdır. Bu kanıtlama yöntemi, cihaz sağlama konusunda yeni olan veya katı güvenlik gereksinimleri olmayan geliştiriciler için bir "Merhaba dünya" deneyimini temsil eder. TPM veya X.509 sertifikaları kullanan cihaz kanıtlaması daha güvenlidir ve daha sıkı güvenlik gereksinimleri için kullanılmalıdır.

Önkoşullar

Bulut kaynakları

  • Etkin bir IoT hub'ı
  • Azure'da IoT Hub cihaz sağlama hizmetinin IoT hub'ınıza bağlı bir örneği
    • Cihaz sağlama hizmeti örneğiniz yoksa, IoT Hub cihaz sağlama hizmeti hızlı başlangıcının Yeni IoT Hub cihazı sağlama hizmeti oluşturma ve IoT hub'ı ile cihaz sağlama hizmetinizi bağlama bölümlerindeki yönergeleri izleyebilirsiniz.
    • Cihaz sağlama hizmetini çalıştırdıktan sonra, genel bakış sayfasından Kimlik Kapsamı değerini kopyalayın. IoT Edge çalışma zamanını yapılandırırken bu değeri kullanırsınız.

Cihaz gereksinimleri

IoT Edge cihazı olacak fiziksel veya sanal bir Linux cihazı.

Her cihazı tanımlamak için benzersizbir kayıt kimliği tanımlamanız gerekir. MAC adresini, seri numarasını veya cihazdaki herhangi bir benzersiz bilgiyi kullanabilirsiniz. Örneğin, bir kayıt kimliği için aşağıdaki dizeyi oluşturan bir MAC adresi ve seri numarasının birleşimini kullanabilirsiniz: sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6. Geçerli karakterler küçük harfli alfasayısal ve tire (-).

DPS kaydı oluşturma

DPS aracılığıyla bir veya daha fazla cihaz sağlamak için bir kayıt oluşturun.

Tek bir IoT Edge cihazı sağlamak istiyorsanız tek bir kayıt oluşturun. Birden çok cihazın sağlanması gerekiyorsa DPS grup kaydı oluşturma adımlarını izleyin.

DPS'de bir kayıt oluşturduğunuzda, ilk cihaz ikizi durumunu bildirme fırsatınız vardır. Cihaz ikizinde cihazları bölge, ortam, konum veya cihaz türü gibi çözümünüzde ihtiyacınız olan ölçümlere göre gruplandıracak şekilde ayarlayabilirsiniz. Bu etiketler otomatik dağıtımlar oluşturmak için kullanılır.

Cihaz sağlama hizmetindeki kayıtlar hakkında daha fazla bilgi için bkz . Cihaz kayıtlarını yönetme.

DPS bireysel kaydı oluşturma

İpucu

Bu makaledeki adımlar Azure portalına yöneliktir, ancak Azure CLI kullanarak tek tek kayıtlar da oluşturabilirsiniz. Daha fazla bilgi için bkz . az iot dps enrollment. CLI komutunun bir parçası olarak, kaydın bir IoT Edge cihazına ait olduğunu belirtmek için kenar etkin bayrağını kullanın.

  1. Azure portalında IoT Hub cihaz sağlama hizmeti örneğine gidin.

  2. Ayarlar altında Kayıtları yönet'i seçin.

  3. Bireysel kayıt ekle'yi seçin ve kaydı yapılandırmak için aşağıdaki adımları tamamlayın:

    1. Mekanizma için Simetrik Anahtar'ı seçin.

    2. Cihazınız için benzersiz bir Kayıt Kimliği sağlayın.

    3. İsteğe bağlı olarak, cihazınız için bir IoT Hub Cihaz Kimliği sağlayın. Modül dağıtımı için tek bir cihazı hedeflemek için cihaz kimliklerini kullanabilirsiniz. Cihaz kimliği sağlamazsanız kayıt kimliği kullanılır.

    4. Kaydın bir IoT Edge cihazına yönelik olduğunu bildirmek için True'yu seçin.

    5. İsteğe bağlı olarak, İlk Cihaz İkizi Durumuna bir etiket değeri ekleyin. Modül dağıtımı için cihaz gruplarını hedeflemek için etiketleri kullanabilirsiniz. Örneğin:

      {
         "tags": {
            "environment": "test"
         },
         "properties": {
            "desired": {}
         }
      }
      
    6. Kaydet'i seçin.

  4. IoT Edge çalışma zamanını yüklerken kullanılacak bireysel kaydın Birincil Anahtar değerini kopyalayın.

Artık bu cihaz için bir kayıt var olduğuna göre, IoT Edge çalışma zamanı yükleme sırasında cihazı otomatik olarak sağlayabilir.

IoT Edge'i yükleme

Bu bölümde, Linux sanal makinenizi veya fiziksel cihazınızı IoT Edge için hazırlarsınız. Ardından IoT Edge'i yüklersiniz.

Paket deposunu eklemek için aşağıdaki komutları çalıştırın ve ardından Microsoft paket imzalama anahtarını güvenilen anahtarlar listenize ekleyin.

Önemli

30 Haziran 2022'de Raspberry Pi OS Stretch, Katman 1 işletim sistemi destek listesinden kullanımdan kaldırıldı. Olası güvenlik açıklarını önlemek için konak işletim sisteminizi Bullseye'a güncelleştirin.

Yükleme birkaç komutla yapılabilir. Bir terminal açın ve aşağıdaki komutları çalıştırın:

  • 22.04:

    wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    
  • 20.04:

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    rm packages-microsoft-prod.deb
    

İşletim sistemi sürümleri hakkında daha fazla bilgi için bkz . Azure IoT Edge tarafından desteklenen platformlar.

Not

Azure IoT Edge yazılım paketleri, her pakette (usr/share/doc/{package-name} veya dizinde) bulunan lisans koşullarına LICENSE tabidir. Paket kullanmadan önce lisans koşullarını okuyun. Bir paketi yüklemeniz ve kullanmanız, bu koşulları kabul etmişsinizdir. Lisans koşullarını kabul etmiyorsanız bu paketi kullanmayın.

Kapsayıcı altyapısı yükleme

Azure IoT Edge, OCI uyumlu bir kapsayıcı çalışma zamanı kullanır. Üretim senaryoları için Moby altyapısını kullanmanızı öneririz. Moby altyapısı, IoT Edge ile resmi olarak desteklenen tek kapsayıcı altyapısıdır. Docker CE/EE kapsayıcı görüntüleri Moby çalışma zamanıyla uyumludur.

Moby motorunu yükleyin.

sudo apt-get update; \
  sudo apt-get install moby-engine

Varsayılan olarak, kapsayıcı altyapısı kapsayıcı günlüğü boyutu sınırlarını ayarlamaz. Bu durum, zaman içinde cihazın günlüklerle dolmasına ve disk alanının tamamının kullanılmasına neden olabilir. Ancak, isteğe bağlı olsa da günlüğünüzü yerel olarak gösterilecek şekilde yapılandırabilirsiniz. Günlük yapılandırması hakkında daha fazla bilgi edinmek için bkz . Üretim Dağıtımı Denetim Listesi.

Aşağıdaki adımlarda, kapsayıcınızı günlüğe kaydetme mekanizması olarak günlük sürücüsünü kullanacak local şekilde nasıl yapılandırabileceğiniz gösterilmektedir.

  1. Mevcut Docker daemon'un yapılandırma dosyasını oluşturma veya düzenleme

    sudo nano /etc/docker/daemon.json
    
  2. Varsayılan günlük sürücüsünü local örnekte gösterildiği gibi günlük sürücüsüne ayarlayın.

       {
          "log-driver": "local"
       }
    
  3. Değişikliklerin etkili olması için kapsayıcı altyapısını yeniden başlatın.

    sudo systemctl restart docker
    

IoT Edge çalışma zamanını yükleme

IoT Edge hizmeti, IoT Edge cihazında güvenlik standartlarını sağlar ve korur. Hizmet her önyüklemede başlar ve IoT Edge çalışma zamanının geri kalanını başlatarak cihazı bootstraplar.

Not

1.2 sürümünden itibaren IoT kimlik hizmeti , IoT Edge ve IoT Hub ile iletişim kurması gereken diğer cihaz bileşenleri için kimlik sağlama ve yönetimi gerçekleştirir.

Bu bölümdeki adımlar, İnternet bağlantısı olan bir cihaza en son IoT Edge sürümünü yükleme işlemini gösterir. Yayın öncesi sürüm gibi belirli bir sürümü yüklemeniz veya çevrimdışıyken yüklemeniz gerekiyorsa, bu makalenin devamında yer alan Çevrimdışı veya belirli bir sürüm yükleme adımlarını izleyin.

İpucu

Daha eski bir sürümü çalıştıran bir IoT Edge cihazınız varsa ve en son sürüme yükseltmek istiyorsanız IoT Edge güvenlik daemon'unu ve çalışma zamanını güncelleştirme'deki adımları kullanın. Sonraki sürümler, Yükseltme için belirli adımların gerekli olduğu IoT Edge'in önceki sürümlerinden yeterince farklıdır.

IoT Edge'in en son sürümünü ve IoT kimlik hizmeti paketini yükleyin (henüz güncel değilseniz):

  • 22.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge
    
  • 20.04:

    sudo apt-get update; \
       sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

İsteğe bağlı defender-iot-micro-agent-edge paket, IoT Edge cihazlarınızın güvenliğini sağlamanıza yardımcı olmak için güvenlik duruşu yönetimi, güvenlik açıkları, tehdit algılama, filo yönetimi ve daha fazlası için uç nokta görünürlüğü sağlayan IoT için Microsoft Defender güvenlik mikro aracısını içerir. Edge cihazlarınızın güvenlik izlemesini ve sağlamlaştırmasını sağlamak için mikro aracıyı Edge aracısıyla yüklemeniz önerilir. IoT için Microsoft Defender hakkında daha fazla bilgi edinmek için bkz . Cihaz oluşturucuları için IoT için Microsoft Defender nedir?

Cihazı bulut kimliğiyle sağlama

Çalışma zamanı cihazınıza yüklendikten sonra, cihazı cihaz sağlama hizmetine ve IoT Hub'a bağlanmak için kullandığı bilgilerle yapılandırın.

Aşağıdaki bilgileri hazır bulundurun:

IoT Edge yüklemesinin bir parçası olarak sağlanan şablon dosyasını temel alarak cihazınız için bir yapılandırma dosyası oluşturun.

sudo cp /etc/aziot/config.toml.edge.template /etc/aziot/config.toml

IoT Edge cihazında yapılandırma dosyasını açın.

sudo nano /etc/aziot/config.toml
  1. Dosyanın Sağlama bölümünü bulun. DPS sağlama satırlarını simetrik anahtarla açıklamayı kaldırın ve diğer sağlama satırlarının açıklama satırı eklendiğinden emin olun.

    # DPS provisioning with symmetric key
    [provisioning]
    source = "dps"
    global_endpoint = "https://global.azure-devices-provisioning.net"
    id_scope = "PASTE_YOUR_SCOPE_ID_HERE"
    
    # Uncomment to send a custom payload during DPS registration
    # payload = { uri = "PATH_TO_JSON_FILE" }
    
    [provisioning.attestation]
    method = "symmetric_key"
    registration_id = "PASTE_YOUR_REGISTRATION_ID_HERE"
    
    symmetric_key = { value = "PASTE_YOUR_PRIMARY_KEY_OR_DERIVED_KEY_HERE" }
    
    # auto_reprovisioning_mode = Dynamic
    
  2. , registration_idve değerlerini id_scopeDPS ve symmetric_key cihaz bilgilerinizle güncelleştirin.

    Simetrik anahtar parametresi satır içi anahtarın, dosya URI'sinin veya PKCS#11 URI'sinin değerini kabul edebilir. Kullandığınız biçime göre yalnızca bir simetrik anahtar satırının açıklamasını kaldırın. Satır içi anahtar kullanırken, örnek gibi base64 ile kodlanmış bir anahtar kullanın. Dosya URI'sini kullanırken, dosyanız anahtarın ham baytlarını içermelidir.

    PKCS#11 URI'leri kullanıyorsanız, yapılandırma dosyasında PKCS#11 bölümünü bulun ve PKCS#11 yapılandırmanız hakkında bilgi sağlayın.

    Yapılandırma ayarlarını sağlama hakkında daha fazla bilgi için bkz . IoT Edge cihaz ayarlarını yapılandırma.

  3. İsteğe bağlı olarak, dosyanın otomatik yeniden sağlama modu bölümünü bulun. auto_reprovisioning_mode Cihazınızın yeniden sağlama davranışını yapılandırmak için parametresini kullanın. Dinamik - Cihaz bir IoT Hub'dan diğerine taşınmış olabileceğini algıladığında yeniden sağlama. Bu varsayılan seçenektir. AlwaysOnStartup - Cihaz yeniden başlatıldığında veya bir kilitlenme, daemon'ların yeniden başlatılmasına neden olduğunda yeniden sağlama. OnErrorOnly - Cihaz yeniden sağlamayı otomatik olarak hiçbir zaman tetiklemeyin. Cihaz bağlantı hataları nedeniyle kimlik sağlama sırasında IoT Hub'a bağlanamıyorsa, her modun örtük bir cihaz yeniden sağlama geri dönüşü vardır. Daha fazla bilgi için bkz . IoT Hub cihazı yeniden sağlama kavramları.

  4. İsteğe bağlı olarak, yerel bir JSON dosyasının payload yolunu belirtmek için parametresinin açıklamasını kaldırın. Dosya içeriği, cihaz kaydedildiğinde ek veri olarak DPS'ye gönderilir. Bu, özel ayırma için kullanışlıdır. Örneğin, cihazlarınızı insan müdahalesi olmadan IoT Tak Çalıştır model kimliğine göre ayırmak istiyorsanız.

  5. Dosyayı kaydedip kapatın

  6. Cihazda yaptığınız yapılandırma değişikliklerini uygulayın.

    sudo iotedge config apply
    

Yüklemenin başarılı olduğunu doğrulama

Çalışma zamanı başarıyla başlatıldıysa IoT Hub'ınıza gidebilir ve IoT Edge modüllerini cihazınıza dağıtmaya başlayabilirsiniz.

Cihaz sağlama hizmetinde oluşturduğunuz bireysel kaydın kullanıldığını doğrulayabilirsiniz. Azure portalında cihaz sağlama hizmeti örneğine gidin. Oluşturduğunuz bireysel kayıt için kayıt ayrıntılarını açın. Kaydın durumunun atandığını ve cihaz kimliğinin listelendiğine dikkat edin.

IoT Edge'in başarıyla yüklendiğini ve başlatıldığını doğrulamak için cihazınızda aşağıdaki komutları kullanın.

IoT Edge hizmetinin durumunu kontrol edin.

sudo iotedge system status

Hizmet günlüklerini inceleyin.

sudo iotedge system logs

Çalışan modülleri listeleyin.

sudo iotedge list

Sonraki adımlar

Cihaz sağlama hizmeti kayıt işlemi, yeni cihazı sağlarken cihaz kimliğini ve cihaz ikizi etiketlerini aynı anda ayarlamanıza olanak tanır. Otomatik cihaz yönetimi kullanarak tek tek cihazları veya cihaz gruplarını hedeflemek için bu değerleri kullanabilirsiniz. Azure portalını veya Azure CLI'yi kullanarak IoT Edge modüllerini uygun ölçekte dağıtmayı ve izlemeyi öğrenin.