Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ustawienia zabezpieczeń dla operacji usługi Azure IoT obejmują konfigurację zarządzania tajemnicami i tożsamość zarządzaną przypisaną przez użytkownika na potrzeby połączeń chmurowych; na przykład serwer OPC UA lub punkty końcowe przepływu danych.
Ten artykuł zawiera instrukcje dotyczące włączania ustawień zabezpieczeń, jeśli nie zrobiłeś tego podczas początkowego wdrożenia.
Wymagania wstępne
Wystąpienie operacji usługi Azure IoT wdrożone z ustawieniami testowymi.
Azure CLI zainstalowany na komputerze deweloperskim. Ten scenariusz wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.53.0 lub nowszej. Użyj
az --versiondo sprawdzenia swojej wersji iaz upgradedo aktualizacji, jeśli to konieczne. Aby uzyskać więcej informacji, zobacz Jak zainstalować interfejs wiersza polecenia platformy Azure.Najnowsza wersja rozszerzenia connectedk8s dla interfejsu wiersza polecenia platformy Azure. Użyj następującego polecenia, aby dodać rozszerzenie lub zaktualizować je do najnowszej wersji:
az extension add --upgrade --name connectedk8sRozszerzenie Azure IoT Operations dla Azure CLI. Użyj następującego polecenia, aby dodać rozszerzenie lub zaktualizować je do najnowszej wersji:
az extension add --upgrade --name azure-iot-ops
Włącz klaster dla bezpiecznych ustawień
Aby włączyć synchronizację wpisów tajnych dla wystąpienia operacji usługi Azure IoT, w klastrze muszą być włączone funkcje wystawca OIDC i federacja tożsamości obciążenia. Ta konfiguracja jest wymagana, aby rozszerzenie magazynu sekretów usługi Azure Key Vault synchronizowało sekrety z usługi Azure Key Vault i przechowywało je na brzegu jako sekrety Kubernetes.
W przypadku klastrów usługi Azure Kubernetes Service (AKS) funkcje wystawcy OIDC i tożsamości zadania można włączyć wyłącznie podczas tworzenia klastra. W przypadku klastrów w usłudze AKS Edge Essentials zautomatyzowany skrypt domyślnie włącza te funkcje. W przypadku klastrów usługi AKS na lokalnej platformie Azure wykonaj kroki wdrażania i konfigurowania tożsamości obciążenia na klastrze usługi AKS włączonym przez Azure Arc, aby stworzyć nowy klaster, jeśli nie masz takiego z wymaganymi funkcjonalnościami.
W przypadku klastrów k3s na platformie Kubernetes można zaktualizować istniejący klaster. Aby włączyć i skonfigurować te funkcje, wykonaj następujące czynności:
Zaktualizuj klaster, aby włączyć wydawcę OIDC i tożsamość zadania.
az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identityJeśli podczas tworzenia klastra włączono funkcje wystawcy OIDC i tożsamości obciążenia, nie trzeba ponownie uruchamiać poprzedniego polecenia. Użyj następującego polecenia, aby sprawdzić stan funkcji systemu wystawcy OIDC oraz tożsamości obciążenia dla klastra:
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"Pobierz adres URL wystawcy klastra.
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsvZanotuj dane wyjściowe z tego polecenia, które mają być używane w następnych krokach.
Utwórz plik konfiguracji k3s na maszynie, na której wdrożono klaster Kubernetes:
sudo nano /etc/rancher/k3s/config.yamlDodaj do pliku
config.yamlnastępującą zawartość, zastępując<SERVICE_ACCOUNT_ISSUER>symbol zastępczy adresem URL wystawcy klastra, który zanotowałeś wcześniej.kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24hZapisz plik i zamknij edytor nano.
Uruchom ponownie usługę k3s:
sudo systemctl restart k3s
Konfigurowanie zarządzania tajnymi danymi
Zarządzanie tajemnicami dla operacji Azure IoT wykorzystuje rozszerzenie Secret Store do synchronizacji tajemnic z Azure Key Vault i przechowywania ich na urządzeniach brzegowych jako tajemnic Kubernetes. Rozszerzenie Secret Store wymaga przypisanej przez użytkownika tożsamości zarządzanej z dostępem do Azure Key Vault, w którym są przechowywane sekrety. Aby dowiedzieć się więcej, zobacz Co to są tożsamości zarządzane dla zasobów platformy Azure?.
Aby skonfigurować zarządzanie sekretami:
Utwórz usługę Azure Key Vault używaną do przechowywania wpisów tajnych i nadaj kontu użytkownika uprawnienia do zarządzania wpisami tajnymi za
Key Vault Secrets Officerpomocą roli.Utwórz tożsamość zarządzaną przypisaną przez użytkownika dla rozszerzenia magazynu tajemnic do uzyskania dostępu do magazynu kluczy.
Użyj polecenia az iot ops secretsync enable, aby skonfigurować instancję Azure IoT Operations do synchronizacji tajnych danych. To polecenie:
- Tworzy poświadczenia tożsamości federacyjnej, wykorzystując zarządzaną tożsamość przypisaną przez użytkownika.
- Dodaje przypisanie roli do tożsamości zarządzanej przypisanej przez użytkownika w celu uzyskania dostępu do usługi Azure Key Vault.
- Dodaje minimalną klasę dostawcy wpisów tajnych skojarzonych z wystąpieniem operacji usługi Azure IoT.
# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME>" KEYVAULT_NAME="<KEYVAULT_NAME>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Get the resource ID of the key vault KEYVAULT_RESOURCE_ID=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Enable secret synchronization az iot ops secretsync enable --instance $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \ --kv-resource-id $KEYVAULT_RESOURCE_ID
Po zakończeniu konfigurowania synchronizacji wpisów tajnych możesz zapoznać się z tematem Zarządzanie wpisami tajnymi dla wdrożenia operacji usługi Azure IoT , aby dowiedzieć się, jak używać wpisów tajnych w operacjach usługi Azure IoT.
Konfigurowanie tożsamości zarządzanej przypisanej przez użytkownika dla połączeń w chmurze
Niektóre składniki operacji usługi Azure IoT, takie jak punkty końcowe przepływu danych, używają tożsamości zarządzanej przypisanej przez użytkownika do połączeń w chmurze. Zalecamy użycie oddzielnej tożsamości od tej użytej do skonfigurowania zarządzania danymi poufnymi.
Utwórz tożsamość zarządzaną przypisaną przez użytkownika , która jest używana na potrzeby połączeń w chmurze.
Uwaga / Notatka
Musisz przyznać tożsamości uprawnienia do zasobu w chmurze, z którego zamierzasz korzystać z tożsamością zarządzaną.
Użyj polecenia az iot ops identity assign, aby przypisać tożsamość do instancji Azure IoT Operations. To polecenie tworzy również poświadczenie tożsamości federacyjnej przy użyciu wystawcy OIDC połączonego klastra i konta usługi Azure IoT Operations.
# Variable block AIO_INSTANCE_NAME="<AIO_INSTANCE_NAME>" RESOURCE_GROUP="<RESOURCE_GROUP>" USER_ASSIGNED_MI_NAME="<USER_ASSIGNED_MI_NAME FOR CLOUD CONNECTIONS>" #Get the resource ID of the user-assigned managed identity USER_ASSIGNED_MI_RESOURCE_ID=$(az identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query id --output tsv) #Assign the identity to the Azure IoT Operations instance az iot ops identity assign --name $AIO_INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_IDUruchom ponownie zasobniki rejestru schematów, aby zastosować nową tożsamość.
kubectl delete pods adr-schema-registry-0 adr-schema-registry-1 -n azure-iot-operations
Teraz możesz użyć tej tożsamości zarządzanej w punktach końcowych przepływu danych na potrzeby połączeń w chmurze.