IoT Edge cihazını saydam ağ geçidi olarak davranacak şekilde yapılandırma
Şunlar için geçerlidir: IoT Edge 1.1
Önemli
IoT Edge 1.1 destek sonu tarihi 13 Aralık 2022'ydi. Bu ürünün, hizmetin, teknolojinin veya API’nin nasıl desteklendiği hakkında bilgi edinmek için Microsoft Ürün Yaşam Döngüsü’ne göz atın. IoT Edge'in en son sürümüne güncelleştirme hakkında daha fazla bilgi için 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?
Not
IoT Edge 1.1 ve daha eski sürümlerde IoT Edge cihazı IoT Edge ağ geçidinin aşağı akışı olamaz.
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:
- 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.
- 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.
- Aşağı akış cihazını ağ geçidi cihazına bağlayın 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ğlama.
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. Ancak IoT Edge cihazı IoT Edge ağ geçidinin aşağı akışı olamaz.
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.
Not
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.
Önkoş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.
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.
İpucu
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:
- Başlamak için, cihazınızda sertifika oluşturmak için betikleri ayarlayın.
- 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.pem
olacaktır. - 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.pem
sahip olursunuz.
Sertifikaları cihaza kopyalama
Sertifikanın biçim gereksinimlerini karşıladığını denetleyin.
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.
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
.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
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
IoT Edge cihazınızda güvenlik daemon yapılandırma dosyasını açın.
- Windows:
C:\ProgramData\iotedge\config.yaml
- Linux:
/etc/iotedge/config.yaml
- Windows üzerinde Linux için IoT Edge:
/etc/iotedge/config.yaml
İpucu
Windows üzerinde Linux için IoT Edge (EFLOW) kullanıyorsanız EFLOW sanal makinesine bağlanmanız ve vm içindeki dosyayı değiştirmeniz gerekir. PowerShell cmdlet'ini
Connect-EflowVm
kullanarak EFLOW VM'sine bağlanabilir ve ardından tercih ettiğiniz düzenleyiciyi kullanabilirsiniz.- Windows:
Dosyanın Sertifika ayarları bölümünü bulun. Sertifikalarla başlayan dört satırın açıklamalarını kaldırın: ve dosya URI'lerini aşağıdaki özellikler için üç dosyanıza değer olarak sağlayın:
- device_ca_cert: cihaz CA sertifikası
- device_ca_pk: cihaz CA özel anahtarı
- trusted_ca_certs: kök CA sertifikası
Sertifikalarda önünde boşluk olmadığından emin olun: satır ve diğer satırların iki boşlukla girintili olduğundan emin olun.
Dosyayı kaydedip kapatın
IoT Edge'i yeniden başlatın.
- Windows:
Restart-Service iotedge
- Linux:
sudo systemctl restart iotedge
- Windows üzerinde Linux için IoT Edge:
sudo systemctl restart iotedge
- Windows:
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:
Azure portalında IoT Hub'ınıza gidin.
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.
Modülleri Ayarlama'yı seçin.
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.
İleri: Yollar'ı seçin.
Yollar sayfasında, aşağı akış cihazlarından gelen iletileri işlemek için bir yol olduğundan emin olun. Örneğin:
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
- Ad:
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.
- Ad:
Yolunuz veya yollarınız oluşturulduktan sonra Gözden geçir ve oluştur'u seçin.
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.