Aktivera säkra inställningar i azure IoT Operations Preview-distribution
Viktigt!
Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc är för närvarande i förhandsversion. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.
Du måste distribuera en ny Azure IoT Operations-installation när en allmänt tillgänglig version görs tillgänglig. Du kommer inte att kunna uppgradera en förhandsgranskningsinstallation.
Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.
De säkra inställningarna för Azure IoT Operations omfattar konfigurationen av Secrets Management och användartilldelad hanterad identitet för molnanslutningar, till exempel en OPC UA-server eller dataflödesslutpunkter.
Den här artikeln innehåller instruktioner för att aktivera säkra inställningar om du inte gjorde det under den första distributionen.
Förutsättningar
En Azure IoT Operations-instans som distribuerats med testinställningar. Om du till exempel följde anvisningarna i Snabbstart: Kör Azure IoT-åtgärder i Codespaces.
Azure CLI installerat på utvecklingsdatorn. Det här scenariot kräver Azure CLI version 2.64.0 eller senare. Använd
az --version
för att kontrollera din version ochaz upgrade
uppdatera om det behövs. Mer information finns i Installera Azure CLI.De senaste versionerna av följande tillägg för Azure CLI:
az extension add --upgrade --name azure-iot-ops az extension add --upgrade --name connectedk8s
Konfigurera kluster för arbetsbelastningsidentitet
En arbetsbelastningsidentitet är en identitet som du tilldelar till en programvaruarbetsbelastning (till exempel ett program, en tjänst, ett skript eller en container) för att autentisera och komma åt andra tjänster och resurser. Arbetsbelastningsidentitetsfunktionen måste vara aktiverad i klustret, så att Azure Key Vault Secret Store-tillägget för Kubernetes och Azure IoT Operations kan komma åt Microsoft Entra ID-skyddade resurser. Mer information finns i Vad är arbetsbelastningsidentiteter?.
Kommentar
Det här steget gäller endast för Ubuntu + K3s-kluster. Snabbstartsskriptet för Azure Kubernetes Service (AKS) Edge Essentials som används i Förbereda ditt Azure Arc-aktiverade Kubernetes-kluster möjliggör arbetsbelastningsidentitet som standard. Om du har ett AKS Edge Essentials-kluster fortsätter du till nästa avsnitt.
Om du inte är säker på om K3s-klustret redan har arbetsbelastningsidentiteten aktiverad eller inte kör du kommandot az connectedk8s show för att kontrollera:
az connectedk8s show --name <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --query "{oidcIssuerEnabled:oidcIssuerProfile.enabled, workloadIdentityEnabled: securityProfile.workloadIdentity.enabled}"
Om du inte redan har konfigurerat kan du använda följande steg för att aktivera arbetsbelastningsidentitet i ett befintligt anslutet K3s-kluster:
Använd kommandot az connectedk8s update för att aktivera funktionen för arbetsbelastningsidentitet i klustret.
#!/bin/bash # Variable block RESOURCE_GROUP="<RESOURCE_GROUP>" CLUSTER_NAME="<CLUSTER_NAME>" # Enable workload identity az connectedk8s update --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --enable-oidc-issuer --enable-workload-identity
Använd kommandot az connectedk8s show för att hämta klustrets utfärdar-URL. Anteckna om du vill lägga till den senare i K3s-konfigurationsfilen.
#!/bin/bash # Variable block RESOURCE_GROUP="<RESOURCE_GROUP>" CLUSTER_NAME="<CLUSTER_NAME>" # Get the cluster's issuer url SERVICE_ACCOUNT_ISSUER=$(az connectedk8s show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsv) echo "SERVICE_ACCOUNT_ISSUER = $SERVICE_ACCOUNT_ISSUER"
Skapa en K3s-konfigurationsfil.
sudo nano /etc/rancher/k3s/config.yaml
Lägg till följande innehåll i filen config.yaml:
kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Spara och avsluta filredigeraren.
Starta om k3s.
systemctl restart k3s
Konfigurera hantering av hemligheter
Secrets Management för Azure IoT Operations använder Secret Store-tillägget för att synkronisera hemligheterna från ett Azure Key Vault och lagra dem på gränsen som Kubernetes-hemligheter. Secret Store-tillägget kräver en användartilldelad hanterad identitet med åtkomst till Azure Key Vault där hemligheter lagras. Mer information finns i Vad är hanterade identiteter för Azure-resurser?.
Följ de här stegen för att konfigurera Secrets Management:
Skapa ett Azure Key Vault som används för att lagra hemligheter och ge ditt användarkonto behörighet att hantera hemligheter med
Key Vaults Secrets Officer
rollen.Skapa en användartilldelad hanterad identitet för Secret Store-tillägget.
Använd kommandot az iot ops secretsync enable för att konfigurera Azure IoT Operations-instansen för hemlig synkronisering. Det här kommandot:
- Skapar en federerad identitetsautentiseringsuppgift med hjälp av den användartilldelade hanterade identiteten.
- Lägger till en rolltilldelning till den användartilldelade hanterade identiteten för åtkomst till Azure Key Vault.
- Lägger till en lägsta hemlighetsproviderklass som är associerad med Azure IoT Operations-instansen.
# Variable block INSTANCE_NAME="<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 --name $INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID \ --kv-resource-id $KEYVAULT_RESOURCE_ID
Nu när installationen av hemlig synkronisering är klar kan du läsa Hantera hemligheter för att lära dig hur du använder hemligheter med Azure IoT Operations.
Konfigurera användartilldelad hanterad identitet för molnanslutningar
Vissa Azure IoT Operations-komponenter som dataflödesslutpunkter använder användartilldelad hanterad identitet för molnanslutningar. Vi rekommenderar att du använder en separat identitet från den som används för att konfigurera Secrets Management.
Skapa en användartilldelad hanterad identitet som används för molnanslutningar.
Kommentar
Du måste ge identiteten behörighet till den molnresurs som detta ska användas för.
Använd kommandot az iot ops identity assign för att tilldela identiteten till Azure IoT Operations-instansen. Det här kommandot skapar också en federerad identitetsautentiseringsuppgift med OIDC-utfärdaren för det angivna anslutna klustret och Azure IoT Operations-tjänstkontot.
# Variable block INSTANCE_NAME="<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 $INSTANCE_NAME \ --resource-group $RESOURCE_GROUP \ --mi-user-assigned $USER_ASSIGNED_MI_RESOURCE_ID
Nu kan du använda den här hanterade identiteten i dataflödesslutpunkter för molnanslutningar.