Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zabezpieczenia i skalowalność są priorytetem wdrażania Operacje Azure IoT. W tym artykule opisano wytyczne, które należy wziąć pod uwagę podczas konfigurowania Operacje Azure IoT dla środowiska produkcyjnego.
Przed rozważeniem odpowiedniej konfiguracji zdecyduj, czy wdrażasz Operacje Azure IoT w klastrze z jednym węzłem lub z wieloma węzłami. Wiele wytycznych opisanych w tym artykule ma zastosowanie niezależnie od typu klastra, ale gdy wystąpi różnica, zostanie ona wywołana specjalnie.
Platforma
Użyj środowiska obsługiwanego do wdrażania Operacje Azure IoT w środowisku produkcyjnym.
Konfiguracja klastra
Upewnij się, że konfiguracja sprzętu jest wystarczająca dla danego scenariusza i że rozpoczynasz od bezpiecznego środowiska.
Konfiguracja systemu
Utwórz klaster z obsługą usługi Arc spełniający wymagania systemowe.
- Użyj środowiska obsługiwanego dla Operacje Azure IoT.
- Skonfiguruj klaster zgodnie z dokumentacją.
- Jeśli spodziewasz się sporadycznej łączności dla klastra, upewnij się, że przydzielono wystarczającą ilość miejsca na dysku do danych i komunikatów pamięci podręcznej klastra, gdy klaster jest w trybie offline. Operacje Azure IoT może działać w trybie offline przez maksymalnie 72 godziny.
- Jeśli to możliwe, drugi klaster jest obszarem przejściowym do testowania nowych zmian przed wdrożeniem w podstawowym klastrze produkcyjnym.
- Wyłącz automatyczną gradację dla Azure Arc aby mieć pełną kontrolę nad tym, kiedy nowe aktualizacje są stosowane do klastra. Zamiast tego ręcznie uaktualnij agentów zgodnie z potrzebami.
- W przypadku klastrów wielowęzłowych: Konfiguruj klastry z woluminami Edge , aby przygotować się do włączenia odporności na błędy podczas wdrożenia.
- W przypadku klastrów w środowiskach regulowanych lub odizolowanych: postępuj zgodnie z instrukcjami w sekcji Odbicie obrazów wdrożeniowych do prywatnego rejestru, aby upewnić się, że wszystkie wymagane obrazy są dostępne w danym środowisku.
Zabezpieczenia
Rozważ następujące środki, aby upewnić się, że konfiguracja klastra jest bezpieczna przed wdrożeniem.
- Validate images aby upewnić się, że są podpisane przez Microsoft.
- W przypadku szyfrowania TLS przynieś własnego wystawcę i zintegruj się z infrastrukturą kluczy publicznych przedsiębiorstwa.
- Użyj sekretów na potrzeby uwierzytelniania lokalnego.
- Użyj tożsamości zarządzanych przypisanych przez użytkownika na potrzeby połączeń w chmurze.
- Zachowaj aktualność wdrożenia klastra i Operacje Azure IoT z najnowszymi poprawkami i wersjami pomocniczymi, aby uzyskać wszystkie dostępne poprawki zabezpieczeń i usterek.
Podczas wdrażania operacji Azure IoT z bezpiecznymi ustawieniami na AKS firma Microsoft zaleca blokowanie dostępu zasobnika do punktu końcowego usługi Azure Instance Metadata Service. Aby dowiedzieć się, jak włączyć tę funkcję, zobacz Zablokuj dostęp zasobnika do punktu końcowego usługi Azure Instance Metadata Service (IMDS).
Sieć
Jeśli używasz zapór lub serwerów proxy przedsiębiorstwa, dodaj punkty końcowe Operacje Azure IoT do listy dozwolonych.
Obserwowalność
W przypadku wdrożeń produkcyjnych wdodaj zasoby do obserwowania w klastrze przed wdrożeniem Operacje Azure IoT. Zalecamy również skonfigurowanie alertów Prometheus w Azure Monitor.
Wdrożenie
W przypadku wdrożenia gotowego do produkcji uwzględnij następujące konfiguracje podczas wdrażania Operacje Azure IoT.
broker MQTT
W kreatorze wdrażania portalu Azure zasób brokera jest konfigurowany na karcie Configuration.
Skonfiguruj ustawienia kardynalności na podstawie profilu pamięci i potrzeby obsługi połączeń i komunikatów.
Ustaw bufor komunikatów oparty na dysku z maksymalnym rozmiarem, który uniemożliwia przepełnienie pamięci RAM.
Aby bezpośrednio określić ustawienia kardynalności, użyj flag Azure CLI lub pliku konfiguracji brokera.
Używanie flag interfejsu wiersza polecenia
Podczas wdrażania IoT Operations za pomocą polecenia az iot ops create użyj następujących parametrów, aby bezpośrednio określić liczbę brokerów:
az iot ops create ... --broker-frontend-replicas 3 --broker-frontend-workers 4 --broker-backend-part 3 --broker-backend-workers 4 --broker-backend-rf 2
Korzystanie z pliku konfiguracji
Alternatywnie użyj flagi --broker-config-file , aby określić plik JSON zawierający ustawienia kardynalności:
{
"cardinality": {
"frontend": {
"replicas": 3,
"workers": 4
},
"backendChain": {
"partitions": 3,
"redundancyFactor": 2,
"workers": 4
}
}
}
Następnie wdróż (inne parametry pominięte dla zwięzłości):
az iot ops create ... --broker-config-file <FILE>.json
Antyafiniczność wielowęzłowa
W przypadku wdrożeń obejmujących wiele węzłów broker MQTT automatycznie ustawia reguły antykolokacji dla podów backendu. Pody zaplecza z tej samej partycji mają względem siebie antyafiniczność, co rozkłada obciążenie między węzłami i zapewnia odporność na awarie węzłów.
Te reguły są wstępnie zdefiniowane i nie można ich modyfikować.
Aby sprawdzić ustawienia ochrony przed koligacją dla zasobnika zaplecza, użyj następującego polecenia:
kubectl get pod aio-broker-backend-1-0 -n azure-iot-operations -o yaml | grep affinity -A 15
Dane wyjściowe pokazują konfigurację anti-affinity, podobną do:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: chain-number
operator: In
values:
- "1"
topologyKey: kubernetes.io/hostname
weight: 100
Rejestr schematów i magazyn
W kreatorze wdrażania w portalu Azure rejestr schematów i wymagane konto magazynu są konfigurowane na karcie Zarządzania zależnościami.
- Konto przechowywania musi mieć aktywowaną hierarchiczną przestrzeń nazw.
- Tożsamość zarządzana rejestru schematów musi mieć uprawnienia współtwórcy do konta magazynowego.
- W przypadku wdrożeń produkcyjnych określ zakres dostępu do sieci publicznej konta magazynu, aby zezwolić na ruch tylko z zaufanych usług Azure. Przykład:
- W portalu Azure przejdź do konta magazynowego używanego przez rejestr schematów.
- W menu nawigacji wybierz pozycję Zabezpieczenia i sieć sieciowa>.
- Dla ustawienia dostępu do sieci publicznej wybierz pozycję Włączone z wybranych sieci wirtualnych i adresów IP.
- W sekcji Exceptions na stronie sieciowej należy się upewnić, że zaznaczono opcję Zezwól zaufanym usługom Microsoft na dostęp do tego zasobu.
- Wybierz Zapisz, aby zastosować zmiany.
Aby uzyskać więcej informacji, zobacz Konfigurowanie zapór Azure Storage i sieci wirtualnych > Przyznawanie dostępu zaufanym usługom Azure.
Odporność na uszkodzenia
Klastry wielowęzłowe: Odporność na uszkodzenia można włączyć na karcie Zarządzanie zależnościami kreatora wdrażania portalu Azure. Jest obsługiwana tylko w klastrach z wieloma węzłami i jest zalecana do wdrożenia produkcyjnego.
Ustawienia zabezpieczeń
Podczas wdrażania można używać ustawień testu lub bezpiecznych ustawień. W przypadku wdrożeń produkcyjnych wybierz pozycję Bezpieczne ustawienia. Jeśli uaktualniasz istniejące wdrożenie ustawień testowych dla środowiska produkcyjnego, wykonaj kroki opisane w artykule Włączanie bezpiecznych ustawień.
Po wdrożeniu
Po wdrożeniu Operacje Azure IoT należy wykonać następujące konfiguracje dla scenariusza produkcyjnego.
broker MQTT
Po wdrożeniu można edytować zasoby BrokerListener:
- Skonfiguruj protokół TLS z automatycznym zarządzaniem certyfikatami dla odbiorników.
Możesz również edytować zasoby BrokerAuthentication.
- Użyj certyfikatów X.509 lub tokenów konta usługi Kubernetes na potrzeby uwierzytelniania.
- Nie używaj bez uwierzytelniania.
Podczas tworzenia nowego zasobu zarządzaj jego autoryzacją:
- Utwórz zasób BrokerAuthorization i podaj najmniejsze uprawnienia wymagane dla zasobu tematycznego.
Łącznik dla OPC UA
Aby nawiązać połączenie z elementami zawartości w środowisku produkcyjnym, skonfiguruj uwierzytelnianie OPC UA:
- Nie używaj opcji "bez uwierzytelniania". Łączność z serwerami OPC UA nie jest obsługiwana bez uwierzytelniania.
- Skonfiguruj bezpieczne połączenie z serwerem OPC UA. Użyj produkcyjnej infrastruktury kluczy publicznych i skonfiguruj certyfikaty aplikacji oraz listę zaufania.
- Zachowaj domyślne ustawienia weryfikacji zabezpieczeń infrastruktury kluczy publicznych dla środowiska produkcyjnego (
minimumCertificateKeySize=2048,rejectSha1SignedCertificates=true). Zrelaksuj te ustawienia tylko w środowiskach testowych lub QA.
Przepływy danych
W przypadku korzystania z przepływów danych w środowisku produkcyjnym:
- Użyj uwierzytelniania tokenu konta usługi (SAT) z brokerem MQTT (domyślnie).
- Zawsze używaj uwierzytelniania tożsamości zarządzanej. Kiedy to możliwe, używaj tożsamości zarządzanej przypisanej przez użytkownika w punktach końcowych przepływu danych dla elastyczności i możliwości audytu.
- Skalowanie profilów przepływu danych w celu zwiększenia przepływności i wysokiej dostępności.
- Grupowanie wielu przepływów danych do profilów przepływu danych i dostosowywanie skalowania dla każdego profilu.