Beveiligde instellingen inschakelen in Azure IoT-bewerkingen
De beveiligde instellingen voor Azure IoT-bewerkingen omvatten de installatie van geheimenbeheer en een door de gebruiker toegewezen beheerde identiteit voor cloudverbindingen; Bijvoorbeeld een OPC UA-server of gegevensstroomeindpunten.
Dit artikel bevat instructies voor het inschakelen van beveiligde instellingen als u dit niet hebt gedaan tijdens de eerste implementatie.
Vereisten
Een Azure IoT Operations-exemplaar dat is geïmplementeerd met testinstellingen. U hebt bijvoorbeeld Testinstellingen gekozen bij het volgen van de instructies in Azure IoT-bewerkingen implementeren in een Kubernetes-cluster met Arc.
Azure CLI is geïnstalleerd op uw ontwikkelcomputer. Voor dit scenario is Azure CLI versie 2.64.0 of hoger vereist. Gebruik
az --version
deze optie om uw versie te controleren enaz upgrade
zo nodig bij te werken. Zie De Azure CLI installeren voor meer informatie.De nieuwste versie van de connectedk8s-extensie voor Azure CLI. Gebruik de volgende opdracht om de extensie toe te voegen of bij te werken naar de nieuwste versie:
az extension add --upgrade --name connectedk8s
De Azure IoT Operations-extensie voor Azure CLI. Gebruik de volgende opdracht om de extensie toe te voegen of bij te werken naar de nieuwste versie:
az extension add --upgrade --name azure-iot-ops
Het cluster inschakelen voor beveiligde instellingen
Als u geheimensynchronisatie wilt inschakelen voor uw Azure IoT Operations-exemplaar, moet uw cluster zijn ingeschakeld als OIDC-verlener en voor federatie van workloadidentiteit. Deze configuratie is vereist voor de extensie Secret Store om de geheimen te synchroniseren vanuit een Azure-sleutelkluis en deze op te slaan aan de rand als Kubernetes-geheimen.
Voor AKS-clusters (Azure Kubernetes Service) kunnen de OIDC-verlener- en workloadidentiteitsfuncties alleen worden ingeschakeld op het moment dat het cluster wordt gemaakt. Voor clusters in AKS Edge Essentials schakelt het geautomatiseerde script deze functies standaard in. Voor AKS-clusters in Azure Local volgt u de stappen voor het implementeren en configureren van de workloadidentiteit op een AKS-cluster dat door Azure Arc is ingeschakeld om een nieuw cluster te maken als u er geen hebt met de vereiste functies.
Voor k3s-clusters in Kubernetes kunt u een bestaand cluster bijwerken. Gebruik de volgende stappen om deze functies in te schakelen en te configureren:
Werk het cluster bij om OIDC-verlener en workloadidentiteit in te schakelen.
az connectedk8s update -n <CLUSTER_NAME> -g <RESOURCE_GROUP> --enable-oidc-issuer --enable-workload-identity
Als u de OIDC-verlener en workloadidentiteitsfuncties hebt ingeschakeld bij het maken van het cluster, hoeft u de vorige opdracht niet opnieuw uit te voeren. Gebruik de volgende opdracht om de status van de OIDC-verlener en workloadidentiteitsfuncties voor uw cluster te controleren:
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query "{ClusterName:name, OIDCIssuerEnabled:oidcIssuerProfile.enabled, WorkloadIdentityEnabled:securityProfile.workloadIdentity.enabled}"
Haal de URL van de verlener van het cluster op.
az connectedk8s show -g <RESOURCE_GROUP> -n <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
Noteer de uitvoer van deze opdracht die u in de volgende stappen wilt gebruiken.
Maak het configuratiebestand k3s:
sudo nano /etc/rancher/k3s/config.yaml
Voeg de volgende inhoud toe aan het
config.yaml
bestand, waarbij u de<SERVICE_ACCOUNT_ISSUER>
tijdelijke aanduiding vervangt door de URL van de clusteruitgever die u eerder hebt genoteerd:kube-apiserver-arg: - service-account-issuer=<SERVICE_ACCOUNT_ISSUER> - service-account-max-token-expiration=24h
Sla het bestand op en sluit de nano-editor af.
Start de k3s-service opnieuw:
sudo systemctl restart k3s
Geheimenbeheer instellen
Geheimenbeheer voor Azure IoT Operations maakt gebruik van de extensie Secret Store om de geheimen van een Azure-sleutelkluis te synchroniseren en op te slaan op de rand als Kubernetes-geheimen. De Secret Store-extensie vereist een door de gebruiker toegewezen beheerde identiteit met toegang tot de Azure-sleutelkluis waar geheimen worden opgeslagen. Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie.
Geheimenbeheer instellen:
Maak een Azure-sleutelkluis die wordt gebruikt voor het opslaan van geheimen en geef uw gebruikersaccount machtigingen voor het beheren van geheimen met de
Key Vault Secrets Officer
rol.Maak een door de gebruiker toegewezen beheerde identiteit voor de extensie Secret Store.
Gebruik de opdracht az iot ops secretsync enable om het Azure IoT Operations-exemplaar in te stellen voor geheime synchronisatie. Met deze opdracht gebeurt het volgende:
- Hiermee maakt u een federatieve identiteitsreferentie met behulp van de door de gebruiker toegewezen beheerde identiteit.
- Voegt een roltoewijzing toe aan de door de gebruiker toegewezen beheerde identiteit voor toegang tot de Azure-sleutelkluis.
- Voegt een minimale geheime providerklasse toe die is gekoppeld aan het Azure IoT Operations-exemplaar.
# 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 het instellen van geheimsynchronisatie is voltooid, kunt u verwijzen naar Geheimen beheren voor uw Azure IoT Operations-implementatie voor informatie over het gebruik van geheimen met Azure IoT Operations.
Een door de gebruiker toegewezen beheerde identiteit instellen voor cloudverbindingen
Sommige Azure IoT Operations-onderdelen, zoals gegevensstroomeindpunten, gebruiken een door de gebruiker toegewezen beheerde identiteit voor cloudverbindingen. U wordt aangeraden een afzonderlijke identiteit te gebruiken van de identiteit die u hebt gebruikt voor het instellen van geheimenbeheer.
Maak een door de gebruiker toegewezen beheerde identiteit die wordt gebruikt voor cloudverbindingen.
Notitie
U moet de identiteit machtigen voor de cloudresource waarvoor u de beheerde identiteit gebruikt.
Gebruik de opdracht az iot ops identity assign om de identiteit toe te wijzen aan het Azure IoT Operations-exemplaar. Met deze opdracht maakt u ook een federatieve identiteitsreferentie met behulp van de OIDC-verlener van het aangegeven verbonden cluster en het Azure IoT Operations-serviceaccount.
# 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
U kunt deze beheerde identiteit nu gebruiken in gegevensstroomeindpunten voor cloudverbindingen.