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
Ö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:
- Tek bir cihaz için tek bir kayıt veya bir cihaz kümesi için grup kaydı oluşturun.
- 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.
Azure portalında IoT Hub cihaz sağlama hizmeti örneğine gidin.
Ayarlar altında Kayıtları yönet'i seçin.
Bireysel kayıt ekle'yi seçin ve kaydı yapılandırmak için aşağıdaki adımları tamamlayın:
Mekanizma için Simetrik Anahtar'ı seçin.
Cihazınız için benzersiz bir Kayıt Kimliği sağlayın.
İ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.
Kaydın bir IoT Edge cihazına yönelik olduğunu bildirmek için True'yu seçin.
İ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": {} } }
Kaydet'i seçin.
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.
Mevcut Docker daemon'un yapılandırma dosyasını oluşturma veya düzenleme
sudo nano /etc/docker/daemon.json
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" }
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:
- DPS Kimlik Kapsamı değeri
- Oluşturduğunuz cihaz Kayıt Kimliği
- Tek bir kayıttan birincil anahtar veya grup kaydı kullanan cihazlar için türetilmiş anahtar.
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
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
,
registration_id
ve değerleriniid_scope
DPS vesymmetric_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.
İ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ı.İ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.Dosyayı kaydedip kapatın
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.