Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Prerequisites
- Een Azure IoT-bewerkingen-exemplaar dat is geïmplementeerd met testinstellingen.
De Azure CLI geïnstalleerd op uw ontwikkelcomputer. Controleer Beschikbare Azure CLI-extensies voor de minimaal vereiste versie om de azure-iot-ops-extensie te gebruiken. Gebruik
az --versionom uw versie te controleren enaz upgradeom indien nodig bij te werken. Zie De Azure CLI installeren voor meer informatie.De Azure IoT-bewerkingen-extensie voor de 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
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 CLI voorbeelden in dit artikel gebruiken omgevingsvariabelen zodat je elke waarde één keer kunt instellen en vervolgens de commando's kunt kopiëren en plakken as-is. Als je de Azure IoT-bewerkingen Codespaces-omgeving vanuit de quickstart gebruikt, zijn deze variabelen al voor je ingesteld en kun je deze stap overslaan. Anders stel je de volgende omgevingsvariabelen in je shell voordat je de commando's uitvoert.
De volgende scripts stellen de meest gebruikte omgevingsvariabelen in:
| Omgevingsvariabele | Description |
|---|---|
SUBSCRIPTION_ID |
De ID van het abonnement dat je Azure IoT-bewerkingen-instantie bevat. |
RESOURCE_GROUP |
De naam van de resourcegroep die je Azure IoT-bewerkingen-instantie bevat. |
AIO_INSTANCE_NAME |
De naam van je Azure IoT-bewerkingen instance. Om je instanties op te sommen, voer az iot ops list -o tableje . |
CLUSTER_NAME |
De naam van de Azure Arc-enabled Kubernetes-cluster die jouw instantie host. |
LOCATION |
De Azure-regio om te gebruiken voor nieuwe bronnen, bijvoorbeeld eastus. |
SUBSCRIPTION_ID=<subscription-id>
RESOURCE_GROUP=<resource-group-name>
AIO_INSTANCE_NAME=<instance-name>
CLUSTER_NAME=<cluster-name>
LOCATION=<region>
Je hoeft alleen de variabelen in te stellen die dit artikel gebruikt. Dit artikel kan extra omgevingsvariabelen gebruiken voor de bronnamen die je kiest. Het artikel legt uit hoe je ze op de plek kunt plaatsen waar ze worden geïntroduceerd.
Het cluster inschakelen voor beveiligde instellingen
Als u geheimensynchronisatie wilt inschakelen voor uw Azure IoT-bewerkingen-exemplaar, moeten de functies OIDC issuer en workload identity federation zijn ingeschakeld op uw cluster. Deze configuratie is vereist voor de Azure Key Vault Secret Store-extensie om de geheimen te synchroniseren vanuit een Azure Key Vault en deze op te slaan aan de rand als Kubernetes-geheimen.
Voor Azure Kubernetes Service (AKS) clusters kun je de OIDC-uitgever- en workload-identiteitsfuncties inschakelen wanneer je de cluster aanmaakt of op een bestaand cluster. Voor meer informatie, zie Deploy en configureer Microsoft Entra Workload-id op een AKS-cluster. Voor clusters in AKS Edge Essentials schakelt het geautomatiseerde script deze functies standaard in. Voor AKS-clusters in Azure Lokaal 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-uitgever en workload-identiteit in te schakelen.
az connectedk8s update -n $CLUSTER_NAME -g $RESOURCE_GROUP --enable-oidc-issuer --enable-workload-identityAls 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-uitgever en functies voor werklastidentiteit 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 uitgever van het cluster op.
az connectedk8s show -g $RESOURCE_GROUP -n $CLUSTER_NAME --query oidcIssuerProfile.issuerUrl --output tsvNoteer de uitvoer van deze opdracht die u in de volgende stappen wilt gebruiken.
Maak het k3s-configuratiebestand op de computer waarop u uw Kubernetes-cluster hebt geïmplementeerd:
sudo nano /etc/rancher/k3s/config.yamlVoeg de volgende inhoud toe aan het
config.yamlbestand, 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=24hSla het bestand op en sluit de nano-editor af.
Start de k3s-service opnieuw:
sudo systemctl restart k3s
Geheimenbeheer instellen
Geheimenbeheer voor Azure IoT-bewerkingen maakt gebruik van de extensie Secret Store om de geheimen van een Azure Key Vault 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 Key Vault waar geheimen worden opgeslagen. Voor meer informatie, zie Wat zijn beheerde identiteiten voor Azure-bronnen?
Instellen van geheimenbeheer:
Maak een Azure Key Vault aan om geheimen op te slaan en geef je gebruikersaccount rechten om geheimen te beheren door de
Key Vault Secrets Officerrol toe te wijzen. Zorg ervoor dat je sleutelkluis Azure rolgebaseerde toegangscontrole gebruikt als toestemmingsmodel. Om deze instelling in het Azure-portaal te controleren, selecteer je je sleutelkluis en selecteer je vervolgens instellingen>Toegangsconfiguratie.Maak een door de gebruiker toegewezen beheerde identiteit voor de Secret Store-extensie die moet worden gebruikt voor toegang tot de sleutelkluis.
Gebruik de opdracht az iot ops secretsync enable om het Azure IoT-bewerkingen-exemplaar in te stellen voor geheime synchronisatie. Deze opdracht:
- 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 Azure Key Vault.
- Voegt een minimale geheime providerklasse toe die is gekoppeld aan het Azure IoT-bewerkingen-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-bewerkingen-implementatie voor informatie over het gebruik van geheimen met Azure IoT-bewerkingen.
Een door de gebruiker toegewezen beheerde identiteit instellen voor cloudverbindingen
Sommige Azure IoT-bewerkingen-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.
Note
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-bewerkingen-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-bewerkingen-serviceaccount.
Important
Met de standaardversie van deze opdracht wordt een identiteit toegewezen voor gegevensstromen. Als u van plan bent om gegevensstroomgrafieken te gebruiken, neemt u de
--usageparameter op met de waardewasm-graph.# 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_IDStart de pods van het schemaregister opnieuw om de nieuwe identiteit toe te passen.
kubectl rollout restart statefulset adr-schema-registry -n azure-iot-operations
U kunt deze beheerde identiteit nu gebruiken in eindpunten voor gegevensstromen voor cloudverbindingen.
Podtoegang tot de Azure Instance Metadata Service blokkeren
Wanneer u Azure IoT-bewerkingen implementeert met beveiligde instellingen in AKS, raadt Microsoft aan podtoegang tot het eindpunt van de Azure Instance Metadata Service te blokkeren. Zie Blokkering van podtoegang tot het Azure IMDS-eindpunt (Instance Metadata Service) voor meer informatie over het inschakelen van deze functie.