IoT Edge cihazını saydam ağ geçidi olarak davranacak şekilde yapılandırma

Ş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, ioT Edge cihazını diğer cihazların IoT Hub ile iletişim kuracakları saydam bir ağ geçidi işlevi görecek şekilde yapılandırmaya yönelik ayrıntılı yönergeler sağlanır. Bu makalede, saydam ağ geçidi olarak yapılandırılmış bir IoT Edge cihazına başvurmak için IoT Edge ağ geçidi terimi kullanılır. Daha fazla bilgi için bkz . IoT Edge cihazı ağ geçidi olarak nasıl kullanılabilir?

Dekont

Aşağı akış cihazları dosya yükleme özelliğini kullanamaz.

Başarılı bir saydam ağ geçidi bağlantısı kurmanın üç genel adımı vardır. Bu makale ilk adımı kapsar:

  1. Aşağı akış cihazlarının güvenli bir şekilde bağlanabilmesi için ağ geçidi cihazını bir sunucu olarak yapılandırın. Aşağı akış cihazlarından ileti almak ve bunları uygun hedefe yönlendirmek için ağ geçidini ayarlayın.
  2. IoT Hub ile kimlik doğrulaması için aşağı akış cihazı için bir cihaz kimliği oluşturun. Aşağı akış cihazını ağ geçidi cihazı üzerinden ileti gönderecek şekilde yapılandırın. Bu adımlar için bkz . Azure IoT Hub'da aşağı akış cihazının kimliğini doğrulama.
  3. Aşağı akış cihazını ağ geçidi cihazına Bağlan ve ileti göndermeye başlayın. Bu adımlar için bkz. Aşağı akış cihazını Azure IoT Edge ağ geçidine Bağlan.

Bir cihazın ağ geçidi görevi görmesi için aşağı akış cihazlarına güvenli bir şekilde bağlanması gerekir. Azure IoT Edge, cihazlar arasında güvenli bağlantılar kurmak için ortak anahtar altyapısını (PKI) kullanmanıza olanak tanır. Bu durumda, aşağı akış cihazının saydam ağ geçidi olarak davranan bir IoT Edge cihazına bağlanmasına izin veririz. Makul güvenliği sağlamak için aşağı akış cihazının ağ geçidi cihazının kimliğini onaylaması gerekir. Bu kimlik denetimi, cihazlarınızın kötü amaçlı olabilecek ağ geçitlerine bağlanmasını engeller.

Aşağı akış cihazı, Azure IoT Hub bulut hizmetiyle oluşturulmuş bir kimliği olan herhangi bir uygulama veya platform olabilir. Bu uygulamalar genellikle Azure IoT cihaz SDK'sını kullanır. Aşağı akış cihazı, IoT Edge ağ geçidi cihazının kendisinde çalışan bir uygulama bile olabilir.

Cihaz ağ geçidi topolojiniz için gereken güveni etkinleştiren herhangi bir sertifika altyapısı oluşturabilirsiniz. Bu makalede, ioT Hub'da X.509 CA güvenliğini etkinleştirmek için kullandığınız sertifika kurulumunun aynısını varsayıyoruz. Bu ayar belirli bir IoT hub'ı (IoT hub'ı kök CA' sı), bu CA ile imzalanan bir dizi sertifika ve IoT Edge cihazı için bir CA ile ilişkili X.509 CA sertifikası içerir.

Dekont

Bu makalelerde kullanılan kök CA sertifikası terimi , PKI sertifika zincirinin en üstteki yetkili ortak sertifikasını ifade eder ve bir genel sertifika yetkilisinin sertifika kökü olması gerekmez. Çoğu durumda, aslında bir ara CA ortak sertifikasıdır.

Aşağıdaki adımlar, sertifikaları oluşturma ve ağ geçidinde doğru yerlere yükleme işleminde size yol gösterir. Sertifikaları oluşturmak için herhangi bir makineyi kullanabilir ve ardından bunları IoT Edge cihazınıza kopyalayabilirsiniz.

Ön koşullar

IoT Edge yüklü bir Linux veya Windows cihazı.

Hazır bir cihazınız yoksa Azure sanal makinesinde bir cihaz oluşturabilirsiniz. IoT Hub oluşturmak, sanal makine oluşturmak ve IoT Edge çalışma zamanını yapılandırmak için ilk IoT Edge modülünüzü bir sanal Linux cihazına dağıtma makalesindeki adımları izleyin.

Cihaz CA sertifikasını ayarlama

Tüm IoT Edge ağ geçitlerinde bir cihaz CA sertifikası yüklü olmalıdır. IoT Edge güvenlik daemon'u IoT Edge cihaz CA sertifikasını kullanarak bir iş yükü CA sertifikasını imzalar ve bu sertifika da IoT Edge hub'ı için bir sunucu sertifikası imzalar. Ağ geçidi, bağlantının başlatılması sırasında sunucu sertifikasını aşağı akış cihazına sunar. Aşağı akış cihazı, sunucu sertifikasının kök CA sertifikasına toplayan bir sertifika zincirinin parçası olduğundan emin olmak için denetler. Bu işlem, aşağı akış cihazının ağ geçidinin güvenilir bir kaynaktan geldiğini onaylamasını sağlar. Daha fazla bilgi için bkz . Azure IoT Edge'in sertifikaları nasıl kullandığını anlama.

Screenshot that shows the gateway certificate setup.

Kök CA sertifikasının ve cihaz CA sertifikasının (özel anahtarıyla) IoT Edge ağ geçidi cihazında bulunması ve IoT Edge yapılandırma dosyasında yapılandırılması gerekir. Bu durumda kök CA sertifikasının bu IoT Edge senaryosu için en üstteki sertifika yetkilisi anlamına geldiğini unutmayın. Ağ geçidi cihaz CA sertifikası ve aşağı akış cihaz sertifikalarının aynı kök CA sertifikasına alınması gerekir.

Bahşiş

Kök CA sertifikasını ve cihaz CA sertifikasını bir IoT Edge cihazına yükleme işlemi, IoT Edge cihazında sertifikaları yönetme bölümünde de daha ayrıntılı olarak açıklanmıştır.

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

  • Kök CA sertifikası
  • Cihaz CA sertifikası
  • Cihaz CA özel anahtarı

Üretim senaryoları için bu dosyaları kendi sertifika yetkilinizle oluşturmanız gerekir. Geliştirme ve test senaryoları için tanıtım sertifikalarını kullanabilirsiniz.

Tanıtım sertifikaları oluşturma

Kendi sertifika yetkiliniz yoksa ve tanıtım sertifikalarını kullanmak istiyorsanız IoT Edge cihaz özelliklerini test ederek dosyalarınızı oluşturmak için tanıtım sertifikaları oluşturma başlığındaki yönergeleri izleyin. Bu sayfada aşağıdaki adımları uygulamanız gerekir:

  1. Başlamak için, cihazınızda sertifika oluşturmak için betikleri ayarlayın.
  2. Kök CA sertifikası oluşturun. Bu yönergelerin sonunda bir kök CA sertifika dosyanız <path>/certs/azure-iot-test-only.root.ca.cert.pemolacaktır.
  3. IoT Edge cihaz CA sertifikaları oluşturun. Bu yönergelerin sonunda, bir cihaz CA sertifikasının <path>/certs/iot-edge-device-ca-<cert name>-full-chain.cert.pem özel anahtarına <path>/private/iot-edge-device-ca-<cert name>.key.pemsahip olursunuz.

Sertifikaları cihaza kopyalama

  1. Sertifikanın biçim gereksinimlerini karşıladığını denetleyin.

  2. Sertifikaları farklı bir makinede oluşturduysanız, bunları IoT Edge cihazınıza kopyalayın. USB sürücüsü, Azure Key Vault gibi bir hizmet veya Güvenli dosya kopyası gibi bir işlev kullanabilirsiniz.

  3. Dosyaları sertifikalar ve anahtarlar için tercih edilen dizine taşıyın. Sertifikalar ve /var/aziot/secrets anahtarlar için kullanın/var/aziot/certs.

  4. Sertifikaları ve anahtar dizinlerini oluşturun ve izinleri ayarlayın. Sertifikalarınızı ve anahtarlarınızı tercih edilen /var/aziot dizine depolamalısınız. Sertifikalar ve /var/aziot/secrets anahtarlar için kullanın/var/aziot/certs.

    # If the certificate and keys directories don't exist, create, set ownership, and set permissions
    sudo mkdir -p /var/aziot/certs
    sudo chown aziotcs:aziotcs /var/aziot/certs
    sudo chmod 755 /var/aziot/certs
    
    sudo mkdir -p /var/aziot/secrets
    sudo chown aziotks:aziotks /var/aziot/secrets
    sudo chmod 700 /var/aziot/secrets
    
  5. Sertifikaların ve anahtarların sahipliğini ve izinlerini değiştirin.

    # Give aziotcs ownership to certificates
    # Read and write for aziotcs, read-only for others
    sudo chown -R aziotcs:aziotcs /var/aziot/certs
    sudo find /var/aziot/certs -type f -name "*.*" -exec chmod 644 {} \;
    
    # Give aziotks ownership to private keys
    # Read and write for aziotks, no permission for others
    sudo chown -R aziotks:aziotks /var/aziot/secrets
     sudo find /var/aziot/secrets -type f -name "*.*" -exec chmod 600 {} \;
    

Cihazda sertifikaları yapılandırma

  1. IoT Edge cihazınızda şu yapılandırma dosyasını açın: /etc/aziot/config.toml. Windows üzerinde Linux için IoT Edge kullanıyorsanız PowerShell cmdlet'ini kullanarak EFLOW sanal makinesine Connect-EflowVm bağlanmanız gerekir.

    Bahşiş

    Yapılandırma dosyası henüz cihazınızda yoksa şablon olarak kullanarak /etc/aziot/config.toml.edge.template oluşturun.

  2. parametresini trust_bundle_cert bulun. Bu satırın açıklamasını kaldırın ve dosya URI'sini cihazınızdaki kök CA sertifika dosyasına sağlayın.

  3. [edge_ca] Dosyanın bölümünü bulun. Bu bölümdeki üç satırın açıklamalarını kaldırın ve dosya URI'lerini sertifikanıza ve anahtar dosyalarınıza aşağıdaki özellikler için değer olarak sağlayın:

    • sertifika: cihaz CA sertifikası
    • pk: cihaz CA'sı özel anahtarı
  4. Dosyayı kaydedin ve kapatın.

  5. Değişikliklerinizi uygulayın.

    sudo iotedge config apply
    

EdgeHub'ı dağıtma ve iletileri yönlendirme

Aşağı akış cihazları, bilgileri diğer modüllere veya IoT Hub'a yönlendirmek için IoT Edge hub modülünün sorumlu olduğu ağ geçidi cihazına telemetri ve ileti gönderir. Ağ geçidi cihazınızı bu işleve hazırlamak için şunları yaptığınızdan emin olun:

  • IoT Edge hub modülü cihaza dağıtılır.

    IoT Edge'i bir cihaza ilk yüklediğinizde, yalnızca bir sistem modülü otomatik olarak başlatılır: IoT Edge aracısı. Bir cihaz için ilk dağıtımı oluşturduktan sonra, ikinci sistem modülü ve IoT Edge hub'ı da başlar. EdgeHub modülü cihazınızda çalışmıyorsa cihazınız için bir dağıtım oluşturun.

  • IoT Edge hub modülünde aşağı akış cihazlarından gelen iletileri işlemek için ayarlanmış yollar vardır.

    Aşağı akış cihazlarından gelen iletileri işlemek için ağ geçidi cihazının bir yolu olmalıdır, aksi takdirde bu iletiler işlenmez. İletileri ağ geçidi cihazındaki modüllere veya doğrudan IoT Hub'a gönderebilirsiniz.

IoT Edge hub modülünü dağıtmak ve aşağı akış cihazlarından gelen iletileri işlemek üzere yollar ile yapılandırmak için şu adımları izleyin:

  1. Azure portalında IoT Hub'ınıza gidin.

  2. Cihaz yönetimi menüsünün altındaki Cihazlar'a gidin ve ağ geçidi olarak kullanmak istediğiniz IoT Edge cihazınızı seçin.

  3. Modülleri Ayarlama'yı seçin.

  4. Modüller sayfasında, ağ geçidi cihazına dağıtmak istediğiniz modülleri ekleyebilirsiniz. Bu makalenin amaçları doğrultusunda, bu sayfada açıkça ayarlanması gerekmeyen edgeHub modülünü yapılandırmaya ve dağıtmaya odaklandık.

  5. İleri: Yollar'ı seçin.

  6. Yollar sayfasında, aşağı akış cihazlarından gelen iletileri işlemek için bir yol olduğundan emin olun. Örnek:

    • Modülden veya aşağı akış cihazından IoT Hub'a tüm iletileri gönderen bir yol:

      • Ad: allMessagesToHub
      • Değer: FROM /messages/* INTO $upstream
    • Tüm aşağı akış cihazlarından IoT Hub'a tüm iletileri gönderen bir yol:

      • Ad: allDownstreamToHub
      • Değer: FROM /messages/* WHERE NOT IS_DEFINED ($connectionModuleId) INTO $upstream

      Bu yol çalışır çünkü IoT Edge modüllerinden gelen iletilerden farklı olarak aşağı akış cihazlarından gelen iletilerin kendisiyle ilişkilendirilmiş bir modül kimliği yoktur. Yolun WHERE yan tümcesini kullanmak, bu sistem özelliğiyle tüm iletileri filtrelememize olanak tanır.

      İleti yönlendirme hakkında daha fazla bilgi için bkz . Modülleri dağıtma ve yolları oluşturma.

  7. Yolunuz veya yollarınız oluşturulduktan sonra Gözden geçir ve oluştur'u seçin.

  8. Gözden Geçir + oluştur sayfasında Oluştur'u seçin.

Ağ geçidi cihazında bağlantı noktalarını açma

IoT Hub ile tüm iletişim giden bağlantılar üzerinden yapıldığından standart IoT Edge cihazlarının çalışması için gelen bağlantı gerekmez. Ağ geçidi cihazları, aşağı akış cihazlarından ileti alması gerektiğinden farklıdır. Aşağı akış cihazları ile ağ geçidi cihazı arasında bir güvenlik duvarı varsa, iletişimin güvenlik duvarı üzerinden de mümkün olması gerekir.

Ağ geçidi senaryosunun çalışması için IoT Edge Hub'ın desteklenen protokollerinden en az birinin aşağı akış cihazlarından gelen trafik için açık olması gerekir. Desteklenen protokoller MQTT, AMQP, HTTPS, WebSockets üzerinden MQTT ve WebSockets üzerinden AMQP'tir.

Bağlantı noktası Protokol
8883 MQTT
5671 AMQP
443 HTTPS
MQTT+WS
AMQP+WS

Sonraki adımlar

Artık saydam ağ geçidi olarak ayarlanmış bir IoT Edge cihazınız olduğuna göre, aşağı akış cihazlarınızı ağ geçidine güvenecek ve ona ileti gönderecek şekilde yapılandırmanız gerekir. Saydam ağ geçidi senaryonuzu ayarlamaya yönelik sonraki adımlar için Aşağı akış cihazının Kimliğini Azure IoT Hub'da doğrulamaya devam edin.