Aktivera säkra inställningar i Azure IoT Operations
De säkra inställningarna för Azure IoT Operations omfattar konfiguration av hantering av hemligheter och en 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. Du väljer till exempel Testinställningar när du följer anvisningarna i Distribuera Azure IoT-åtgärder till ett Arc-aktiverat Kubernetes-kluster.
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.Den senaste versionen av connectedk8s-tillägget för Azure CLI. Använd följande kommando för att lägga till tillägget eller uppdatera det till den senaste versionen:
az extension add --upgrade --name connectedk8s
Azure IoT Operations-tillägget för Azure CLI. Använd följande kommando för att lägga till tillägget eller uppdatera det till den senaste versionen:
az extension add --upgrade --name azure-iot-ops
Aktivera klustret för säkra inställningar
Om du vill aktivera synkronisering av hemligheter för din Azure IoT Operations-instans måste klustret aktiveras som en OIDC-utfärdare och för arbetsbelastningsidentitetsfederation. Den här konfigurationen krävs för att Secret Store-tillägget ska synkronisera hemligheterna från ett Azure-nyckelvalv och lagra dem på gränsen som Kubernetes-hemligheter.
För AkS-kluster (Azure Kubernetes Service) kan OIDC-utfärdaren och arbetsbelastningsidentitetsfunktionerna endast aktiveras när klustret skapas. För kluster på AKS Edge Essentials aktiverar det automatiserade skriptet dessa funktioner som standard. För AKS-kluster i Azure Local följer du stegen för att distribuera och konfigurera arbetsbelastningsidentitet på en AKS som aktiveras av Azure Arc-kluster för att skapa ett nytt kluster om du inte har någon med de funktioner som krävs.
För k3s-kluster på Kubernetes kan du uppdatera ett befintligt kluster. Använd följande steg för att aktivera och konfigurera dessa funktioner:
Uppdatera klustret för att aktivera OIDC-utfärdare och arbetsbelastningsidentitet.
az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
Om du aktiverade OIDC-utfärdaren och arbetsbelastningsidentitetsfunktionerna när du skapade klustret behöver du inte köra föregående kommando igen. Använd följande kommando för att kontrollera statusen för OIDC-utfärdaren och arbetsbelastningsidentitetsfunktionerna för klustret:
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
Hämta klustrets utfärdar-URL.
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Anteckna utdata från det här kommandot som ska användas i nästa steg.
Skapa konfigurationsfilen k3s:
sudo nano /etc/rancher/k3s/config.yaml
Lägg till följande innehåll i
config.yaml
filen och ersätt<SERVICE_ACCOUNT_ISSUER>
platshållaren med den url för kluster utfärdare som du antecknade tidigare:kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Spara filen och avsluta Nano-redigeraren.
Starta om k3s-tjänsten:
sudo systemctl restart k3s
Konfigurera hantering av hemligheter
Hemlighetshantering för Azure IoT Operations använder Secret Store-tillägget för att synkronisera hemligheterna från ett Azure-nyckelvalv och lagra dem på gränsen som Kubernetes-hemligheter. Secret Store-tillägget kräver en användartilldelad hanterad identitet med åtkomst till Azure-nyckelvalvet där hemligheter lagras. Mer information finns i Vad är hanterade identiteter för Azure-resurser?.
Så här konfigurerar du hantering av hemligheter:
Skapa ett Azure-nyckelvalv som används för att lagra hemligheter och ge ditt användarkonto behörighet att hantera hemligheter med
Key Vault 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-nyckelvalvet.
- Lägger till en lägsta hemlighetsproviderklass som är associerad med Azure IoT Operations-instansen.
# 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
Nu när installationen av hemlig synkronisering är klar kan du läsa Hantera hemligheter för din Azure IoT Operations-distribution för att lära dig hur du använder hemligheter med Azure IoT Operations.
Konfigurera en användartilldelad hanterad identitet för molnanslutningar
Vissa Azure IoT Operations-komponenter, till exempel dataflödesslutpunkter, använder en användartilldelad hanterad identitet för molnanslutningar. Vi rekommenderar att du använder en separat identitet från den som du använde för att konfigurera hantering av hemligheter.
Skapa en användartilldelad hanterad identitet som används för molnanslutningar.
Kommentar
Du måste ge identiteten behörighet till den molnresurs som du ska använda den hanterade identiteten 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 hjälp av OIDC-utfärdaren av det angivna anslutna klustret och Azure IoT Operations-tjänstkontot.
# 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_ID
Nu kan du använda den här hanterade identiteten i dataflödesslutpunkter för molnanslutningar.