Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sicherheit und Skalierbarkeit sind eine Priorität für die Bereitstellung von Azure IoT Einsatz. In diesem Artikel werden Richtlinien beschrieben, die Sie beim Einrichten von Azure IoT Einsatz für die Produktion berücksichtigen sollten.
Entscheiden Sie, ob Sie Azure IoT Einsatz in einem Einzelknoten- oder Multiknotencluster bereitstellen, bevor Sie die entsprechende Konfiguration in Betracht ziehen. Viele der Richtlinien in diesem Artikel gelten unabhängig vom Clustertyp, aber wenn es einen Unterschied gibt, wird es speziell bezeichnet.
Plattform
Verwenden Sie eine unterstützte Umgebung für die Bereitstellung von Azure IoT Einsatz in der Produktionsumgebung.
Clustereinrichtung
Stellen Sie sicher, dass Ihre Hardwareeinrichtung für Ihr Szenario ausreichend ist und sie mit einer sicheren Umgebung beginnen.
Systemkonfiguration
Erstellen Sie einen Arc-fähigen Cluster, der die Systemanforderungen erfüllt.
- Verwenden Sie eine unterstützte Umgebung für Azure IoT Einsatz.
- Konfigurieren Sie den Cluster entsprechend der Dokumentation.
- Wenn Sie eine unterbrochene Konnektivität für Ihren Cluster erwarten, stellen Sie sicher, dass Sie dem Cluster-Cache für Daten und Nachrichten genügend Datenträger zuweisen, während der Cluster offline ist. Azure IoT Einsatz können maximal 72 Stunden offline arbeiten.
- Wenn möglich, verfügen Sie über einen zweiten Cluster als Stagingbereich zum Testen neuer Änderungen, bevor Sie sie im primären Produktionscluster bereitstellen.
- Autoupgrade für Azure Arc deaktivieren, um die vollständige Kontrolle darüber zu haben, wann neue Updates auf Ihren Clustern angewendet werden. Aktualisieren Sie stattdessen Agents nach Bedarf manuell.
- Für Multinode-Cluster:Konfigurieren Sie Cluster mit Edge Volumes , um die Fehlertoleranz während der Bereitstellung zu aktivieren.
Sicherheit
Beachten Sie die folgenden Maßnahmen, um sicherzustellen, dass das Clustersetup vor der Bereitstellung sicher ist.
- Validate images um sicherzustellen, dass sie von Microsoft signiert sind.
- Wenn Sie TLS-Verschlüsselung durchführen, verwenden Sie Ihren eigenen Aussteller, und integrieren Sie ihn in eine Unternehmens-PKI.
- Verwenden Sie geheime Schlüssel für die lokale Authentifizierung.
- Verwenden Sie vom Benutzer zugewiesene verwaltete Identitäten für Cloudverbindungen.
- Halten Sie Ihren Cluster und die Azure IoT Einsatz-Bereitstellung auf dem neuesten Stand mit den neuesten Patches und Nebenversionen, um alle verfügbaren Sicherheits- und Fehlerbehebungen zu erhalten.
Wenn Sie Azure IoT Einsatz mit sicheren Einstellungen auf AKS bereitstellen, empfiehlt Microsoft das Blockieren des Podzugriffs auf den Azure Instanzmetadatendienst-Endpunkt. Informationen zum Aktivieren dieser Funktion finden Sie unter Blockieren des Pod-Zugriffs auf den Endpunkt des Azure Instanzmetadatendienstes (IMDS).
Netzwerk
Wenn Sie Unternehmensfirewalls oder Proxys verwenden, fügen Sie die Azure IoT Einsatz-Endpunkte Ihrer Ausnahmeliste hinzu.
Einblick
Für Produktionsbereitstellungen bereitstellen Sie Beobachtbarkeitsressourcen in Ihrem Cluster, bevor Sie Azure IoT Einsatz bereitstellen. Außerdem wird empfohlen, Prometheus-Warnungen in Azure Monitor einzurichten.
Bereitstellung
Fügen Sie für eine produktionsbereite Bereitstellung die folgenden Konfigurationen während der Azure IoT Einsatz Bereitstellung ein.
MQTT-Broker
Im Azure-Portal-Bereitstellungsassistenten wird die Brokerressource auf der Registerkarte Konfiguration eingerichtet.
Konfigurieren Sie Kardinalitätseinstellungen basierend auf dem Speicherprofil und den Anforderungen für die Verarbeitung von Verbindungen und Nachrichten. Die folgenden Einstellungen können z. B. einen Einzelknoten- oder Multiknotencluster unterstützen:
Einstellung Einzelner Knoten Mehrere Knoten frontendReplicas 1 5 Frontend-Mitarbeiter 4 8 backendRedundancyFactor 2 2 Backend-Mitarbeiter 1 4 backendPartitions 1 5 Speicherprofil Niedrig High Hinweis
Der Back-End-Redundanzfaktor muss 2 oder höher sein. Der Broker erfordert mindestens zwei Backend-Replikas pro Partition für hohe Verfügbarkeit und Rolling Upgrade-Unterstützung.
Legen Sie den Datenträger-gesicherten Nachrichtenpuffer mit einer maximalen Größe fest, die den RAM-Überlauf verhindert.
Verwenden Sie zum direkten Angeben von Kardinalitätseinstellungen die Azure CLI Flags oder eine Broker-Konfigurationsdatei.
Verwenden von CLI-Flags
Wenn Sie IoT-Vorgänge mithilfe des az iot ops create Befehls bereitstellen, verwenden Sie die folgenden Parameter, um die Broker-Kardinalität direkt anzugeben:
az iot ops create ... --broker-frontend-replicas 3 --broker-frontend-workers 4 --broker-backend-part 3 --broker-backend-workers 4 --broker-backend-rf 2
Verwenden einer Konfigurationsdatei
Verwenden Sie alternativ das --broker-config-file Flag, um eine JSON-Datei anzugeben, die die Kardinalitätseinstellungen enthält:
{
"cardinality": {
"frontend": {
"replicas": 3,
"workers": 4
},
"backendChain": {
"partitions": 3,
"redundancyFactor": 2,
"workers": 4
}
}
}
Stellen Sie dann bereit (andere Parameter, die der Kürze halber weggelassen werden):
az iot ops create ... --broker-config-file <FILE>.json
Antiaffinität mit mehreren Knoten
Bei Bereitstellungen mit mehreren Knoten legt der MQTT-Broker automatisch Antiaffinitätsregeln für Back-End-Pods fest. Back-End-Pods derselben Partition weisen untereinander eine Anti-Affinität auf, wodurch die Last auf mehrere Knoten verteilt und Ausfallsicherheit gegenüber Knotenausfällen gewährleistet wird.
Diese Regeln sind vordefiniert und können nicht geändert werden.
Verwenden Sie den folgenden Befehl, um die Antiaffinitätseinstellungen für einen Back-End-Pod zu überprüfen:
kubectl get pod aio-broker-backend-1-0 -n azure-iot-operations -o yaml | grep affinity -A 15
Die Ausgabe zeigt die Antiaffinitätskonfiguration an, ähnlich wie:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: chain-number
operator: In
values:
- "1"
topologyKey: kubernetes.io/hostname
weight: 100
Schemaregistrierung und Speicher
Im Azure-Portal-Bereitstellungsassistenten werden die Schemaregistrierung und das erforderliche Speicherkonto im Tab Dependency Management eingerichtet.
- Für die Speicherkonten muss der hierarchische Namespace aktiviert sein.
- Die verwaltete Identität der Schemaregistrierung muss über Mitwirkendeberechtigungen für das Speicherkonto verfügen.
- Beschränken Sie für Produktionsbereitstellungen den Zugriff auf das öffentliche Netzwerk des Speicherkontos, um datenverkehr nur von vertrauenswürdigen Azure-Diensten zuzulassen. Beispiel:
- Navigieren Sie im Azure-Portal zu dem Von Ihrer Schemaregistrierung verwendeten Speicherkonto.
- Wählen Sie im Navigationsmenü "Sicherheit + Netzwerknetzwerke>" aus.
- Wählen Sie für die Einstellung für den Zugriff auf öffentliche Netzwerke die Option "Aus ausgewählten virtuellen Netzwerken und IP-Adressen aktiviert" aus.
- Stellen Sie im Abschnitt Ausnahmen der Netzwerkseite sicher, dass die option Allow trusted Microsoft-Dienste für den Zugriff auf diese Ressource ausgewählt ist.
- Klicken Sie auf Speichern, um die Änderungen zu übernehmen.
Weitere Informationen finden Sie unter Configure Azure Storage Firewalls und virtuellen Netzwerken > Gewähren des Zugriffs auf vertrauenswürdige Azure Dienste.
Fehlertoleranz
Cluster mit mehreren Knoten: Die Fehlertoleranz kann unter der Registerkarte Verwaltung von Abhängigkeiten des Bereitstellungs-Assistenten im Azure-Portal aktiviert werden. Sie wird nur für Cluster mit mehreren Knoten unterstützt und für die Produktionsbereitstellung empfohlen.
Sichere Einstellungen
Während der Bereitstellung haben Sie die Möglichkeit, Testeinstellungen oder sichere Einstellungen zu verwenden. Wählen Sie für Produktionsbereitstellungen sichere Einstellungen aus. Wenn Sie eine vorhandene Bereitstellung von Testeinstellungen für die Produktion aktualisieren, führen Sie die Schritte unter "Sichere Einstellungen aktivieren" aus.
Nach der Bereitstellung
Nach der Bereitstellung von Azure IoT Einsatz haben Sie die folgenden Konfigurationen für ein Produktionsszenario.
MQTT-Broker
Nach der Bereitstellung können Sie BrokerListener-Ressourcen bearbeiten:
Sie können auch BrokerAuthentication-Ressourcen bearbeiten.
- Verwenden Sie X.509-Zertifikate oder Kubernetes-Dienstkontotoken für die Authentifizierung.
- Es wird nicht empfohlen, „no-auth.“, d. h. keine Authentifizierung, zu verwenden.
Wenn Sie eine neue Ressource erstellen, verwalten Sie ihre Autorisierung:
- Erstellen Sie eine BrokerAuthorization-Ressource , und stellen Sie die geringsten Berechtigungen bereit, die für die Themenressource erforderlich sind.
Konnektor für OPC UA
Konfigurieren Sie die OPC UA-Authentifizierung, um eine Verbindung mit Ressourcen in der Produktion herzustellen:
- Es wird nicht empfohlen, „no-auth.“, d. h. keine Authentifizierung, zu verwenden. Die Konnektivität mit OPC UA-Servern wird ohne Authentifizierung nicht unterstützt.
- Richten Sie eine sichere Verbindung mit dem OPC UA-Server ein. Verwenden Sie eine Produktions-PKI, und konfigurieren Sie Anwendungszertifikate und Vertrauenslisten.
- Behalten Sie die Standardeinstellungen für die PKI-Sicherheitsüberprüfung für die Produktion (
minimumCertificateKeySize=2048,rejectSha1SignedCertificates=true). Entspannen Sie diese Einstellungen nur in Test- oder QA-Umgebungen.
Datenflüsse
Bei Verwendung von Datenflüssen in der Produktion:
- Verwenden Sie die SAT-Authentifizierung (Service Account Token) mit dem MQTT-Broker (Standard).
- Verwenden Sie immer die Authentifizierung mit verwalteten Identitäten. Verwenden Sie nach Möglichkeit die vom Benutzer zugewiesene verwaltete Identität in Datenflussendpunkten, um Flexibilität und Auditierbarkeit zu gewährleisten.
- Skalieren Sie Datenflussprofile , um den Durchsatz zu verbessern und hohe Verfügbarkeit zu haben.
- Gruppieren Sie mehrere Datenflüsse in Datenflussprofile, und passen Sie die Skalierung für jedes Profil entsprechend an.