Aktivera säkra inställningar i Azure IoT Operations
Artikel
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.
Azure CLI installerat på utvecklingsdatorn. Det här scenariot kräver Azure CLI version 2.53.0 eller senare. Använd az --version för att kontrollera din version och az 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:
Bash
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:
Azure CLI
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.
Azure CLI
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:
Azure CLI
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.
Azure CLI
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:
Bash
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:
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?.
# 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 synchronizationaz 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
Azure CLI
# 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 synchronizationaz 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
Konfigurera en användartilldelad hanterad identitet för molnanslutningar
Vissa Azure IoT Operations-komponenter, till exempel slutpunkter för dataflöde, 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.
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 instanceaz iot ops identity assign --name$AIO_INSTANCE_NAME \
--resource-group$RESOURCE_GROUP \
--mi-user-assigned$USER_ASSIGNED_MI_RESOURCE_ID
Azure CLI
# 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 instanceaz 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.
Lär dig mer om säkerhetsöverväganden för olika sätt att autentisera till Azure OpenAI och hur du tilldelar rollbaserade åtkomstkontrollbehörigheter till hanterade identiteter
Demonstrera funktionerna i Microsoft Entra ID för att modernisera identitetslösningar, implementera hybridlösningar och implementera identitetsstyrning.