Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive come configurare la connettività privata per Operazioni di Azure IoT. Seguire le sezioni nell'ordine:
| Passo | Sezione | Funzionamento |
|---|---|---|
| 1 | Configurare Arc Gateway | Creare la risorsa di Arc Gateway e recuperare l'OID delle posizioni personalizzate |
| 2 | Creare endpoint privati e zone DNS | Creare endpoint privati e zone DNS per le risorse del piano dati (archiviazione, Key Vault, Griglia di eventi) create nei prerequisiti |
| 3 | Connettere il cluster a Azure Arc | Abilitare Arc per il cluster. Scegliere tra Arc Gateway solo o Arc Gateway + Proxy esplicito |
| 4 | Implementare operazioni Azure IoT | Distribuire Operazioni di Azure IoT. Il traffico è già instradato privatamente tramite DNS |
| 5 | Disabilita l'accesso pubblico nell'archiviazione e nel Key Vault | Bloccare l'account di archiviazione e Key Vault una volta che le operazioni di Azure IoT sono in condizioni ottimali. |
| 6 | Configurare le destinazioni del flusso di dati con endpoint privati | Instradare il traffico del dataflow verso destinazioni cloud come Event Grid tramite collegamento privato |
Questi scenari si applicano agli ambienti con un singolo cluster Kubernetes abilitato per Arc. Non esiste alcuna segmentazione di rete in stile Purdue, nessun concatenamento proxy tra livelli e nessuna distribuzione di Envoy. Se si dispone di una topologia di rete a più livelli, vedere Tutorial: Distribuire Operazioni di Azure IoT in una rete a più livelli con connettività privata.
Prerequisiti
- Una sottoscrizione Azure con autorizzazioni sufficienti per creare endpoint privati, zone DNS private, e assegnazioni di ruolo (in genere Owner o Contributor + User Access Administrator). Se non si ha una sottoscrizione, creare un account gratuito prima di iniziare.
- interfaccia della riga di comando di Azure e kubectl installato nell'amministratore o nella jump machine.
- Un cluster Kubernetes distribuito e pronto per abilitare Arc. Vedere Preparare il cluster per le configurazioni supportate e i passaggi di installazione.
- Una rete virtuale di Azure con connettività di rete dal cluster (ExpressRoute, Gateway VPN, peering di reti virtuali, o altra pianificazione percorso privato). Se il cluster viene eseguito su macchine virtuali Azure all'interno della stessa rete virtuale o in una rete virtuale con peering, questa connessione è già attiva.
- Un account Archiviazione di Azure nello stesso gruppo di risorse, usato dal Registro schemi per l'archiviazione dello schema. Se si verifica un errore RequestDisallowedByPolicy durante la creazione, aggiungere
--allow-shared-key-access falsealaz storage account createcomando . - Un Azure Key Vault nello stesso gruppo di risorse, usato per la sincronizzazione dei segreti con il cluster.
- (Facoltativo) Un namespace di Griglia di eventi di Azure con MQTT abilitato. Necessario solo se si instrada il traffico del flusso di dati a Griglia di eventi in Configurare le destinazioni del flusso di dati con endpoint privati.
- (Facoltativo) Un Firewall di Azure con explicit proxy abilitato nella tua VNet, raggiungibile dal tuo cluster. Obbligatorio solo se si segue la scheda Gateway Arc + Proxy esplicito per una connettività completamente privata senza esposizione all'Internet pubblico.
Configurare Arc Gateway
Azure Arc Gateway consolida gli endpoint di circa 200 Azure necessari per gli agenti e le estensioni Arc in un singolo URL del gateway. Ciò semplifica notevolmente l'elenco di indirizzi consentiti del firewall, invece di consentire 200 FQDN singoli, è possibile consentire circa 9.
Passaggio 1: Creare una risorsa gateway Arc
Se non si ha già una risorsa di Arc Gateway, crearne una. È necessario l'ID risorsa del gateway quando si connette il cluster nella sezione successiva. Per la procedura di creazione, vedere Creare la risorsa gateway Arc.
Annotazioni
Sono supportate al massimo cinque risorse di Arc Gateway per ogni sottoscrizione.
Per l'elenco di FQDN che devono essere consentiti tramite il firewall quando si usa Arc Gateway, vedere Endpoint consentiti con Arc Gateway.
Passaggio 2: recuperare l'ID dell'oggetto dei percorsi personalizzati
Il parametro --custom-locations-oid usato per la connessione del cluster richiede l'ID dell'oggetto (OID) del principale del servizio di percorsi personalizzati di Azure Arc.
Per trovarlo:
- Passare a Microsoft Entra ID nel portale di Azure.
- Selezionare Applicazioni aziendali.
- Cercare Percorsi personalizzati su Kubernetes con Azure Arc.
- Aprire l'applicazione, passare a Proprietà e copiare l'ID oggetto.
Creare endpoint privati e zone DNS
L'account di archiviazione, Insieme di credenziali delle chiavi e lo spazio dei nomi di Griglia eventi creati nei prerequisiti sono le risorse del piano dati usate da Operazioni di Azure IoT durante l'esecuzione. Creare endpoint privati e zone DNS per queste risorse in modo che tutto il traffico venga indirizzato in modo privato fin dall'inizio, prima di connettere il cluster o implementare Operazioni di Azure IoT.
Passaggio 1: Creare endpoint privati
Creare endpoint privati per l'account di archiviazione, Key Vault ed Event Grid affinché tutto il traffico verso questi servizi passi privatamente.
Archiviazione BLOB di Azure
az network private-endpoint create \
--name pe-storage-blob \
--resource-group <resource-group> \
--location <region-of-vnet> \
--subnet "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>/subnets/<subnet>" \
--private-connection-resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<account>" \
--group-id blob \
--connection-name pe-conn-storage-blob
Azure Key Vault
az network private-endpoint create \
--name pe-keyvault \
--resource-group <resource-group> \
--location <region-of-vnet> \
--subnet "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>/subnets/<subnet>" \
--private-connection-resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<keyvault-name>" \
--group-id vault \
--connection-name pe-conn-keyvault
Annotazioni
L'endpoint privato di Event Grid viene creato qui per essere pronto per Configurare le destinazioni del flusso di dati con endpoint privati, che instrada il traffico del flusso di dati a Event Grid su collegamento privato.
Namespace di Event Grid
az network private-endpoint create \
--name pe-eventgrid \
--resource-group <resource-group> \
--location <region-of-vnet> \
--subnet "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>/subnets/<subnet>" \
--private-connection-resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.EventGrid/namespaces/<namespace>" \
--group-id topicspace \
--connection-name pe-conn-eventgrid
Passaggio 2: Configurare DNS privato zone
Creare zone del DNS privato in modo che i FQDN del servizio Azure vengano risolti agli indirizzi IP degli endpoint privati. Collegare ogni zona alla rete virtuale e creare gruppi di zone DNS in modo che i record A dell'endpoint privato vengano registrati automaticamente.
Archiviazione BLOB di Azure
az network private-dns zone create \
--resource-group <resource-group> \
--name privatelink.blob.core.windows.net
az network private-dns link vnet create \
--resource-group <resource-group> \
--zone-name privatelink.blob.core.windows.net \
--name storage-dns-link \
--virtual-network "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>" \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group <resource-group> \
--endpoint-name pe-storage-blob \
--name storage-zone-group \
--private-dns-zone "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Network/privateDnsZones/privatelink.blob.core.windows.net" \
--zone-name blob
Azure Key Vault
az network private-dns zone create \
--resource-group <resource-group> \
--name privatelink.vaultcore.azure.net
az network private-dns link vnet create \
--resource-group <resource-group> \
--zone-name privatelink.vaultcore.azure.net \
--name keyvault-dns-link \
--virtual-network "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>" \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group <resource-group> \
--endpoint-name pe-keyvault \
--name keyvault-zone-group \
--private-dns-zone "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Network/privateDnsZones/privatelink.vaultcore.azure.net" \
--zone-name vault
Griglia di eventi
az network private-dns zone create \
--resource-group <resource-group> \
--name privatelink.ts.eventgrid.azure.net
az network private-dns link vnet create \
--resource-group <resource-group> \
--zone-name privatelink.ts.eventgrid.azure.net \
--name eventgrid-dns-link \
--virtual-network "/subscriptions/<subscription-id>/resourceGroups/<rg-vnet>/providers/Microsoft.Network/virtualNetworks/<vnet>" \
--registration-enabled false
az network private-endpoint dns-zone-group create \
--resource-group <resource-group> \
--endpoint-name pe-eventgrid \
--name eventgrid-zone-group \
--private-dns-zone "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Network/privateDnsZones/privatelink.ts.eventgrid.azure.net" \
--zone-name eventgrid
Per l'elenco completo dei nomi delle zone DNS private, vedere Valori delle zone DNS private di Azure.
Connettere il cluster a Azure Arc
Con i Private Endpoint e DNS in atto, connetti il cluster ad Azure Arc. Scegli la scheda corrispondente all'approccio di connettività.
- Arc Gateway only — il cluster si connette tramite Arc Gateway con una lista di autorizzazioni firewall semplificata (~9 FQDN), ma il traffico in uscita usa ancora percorsi internet pubblici.
- Arc Gateway + Proxy esplicito — Tutto il traffico in uscita viene instradato attraverso Proxy Esplicito Firewall di Azure sulla rete privata senza esposizione a Internet pubblico.
Entrambe le schede si basano su Configura Arc Gateway. Completare prima questa sezione per creare la risorsa Arc Gateway e recuperare l'OID delle posizioni personalizzate.
Passaggio 1: Connettere il cluster con Arc Gateway
Connettere il cluster e associarlo a Arc Gateway:
az connectedk8s connect \
--name <cluster-name> \
--resource-group <resource-group> \
--location <region> \
--custom-locations-oid <OID> \
--enable-oidc-issuer \
--enable-workload-identity \
--disable-auto-upgrade \
--gateway-resource-id <gateway-resource-id>
Suggerimento
Per i cluster abilitati per Arc esistenti: Se il cluster è già connesso a Azure Arc, usare az connectedk8s update anziché az connectedk8s connect:
az connectedk8s update \
--name <cluster-name> \
--resource-group <resource-group> \
--gateway-resource-id <gateway-resource-id>
Passaggio 2: Verificare la connettività
Verificare che gli agenti Arc e il pod Arc Proxy siano in esecuzione:
kubectl get pods -n azure-arcVerificare che il DNS risolva in IP privati:
nslookup <storage-account>.blob.core.windows.net nslookup <keyvault-name>.vault.azure.net nslookup <eventgrid-namespace>.ts.eventgrid.azure.netOgni risultato deve restituire un indirizzo IP nell'intervallo di indirizzi privati (ad esempio,
10.x.x.x), non un indirizzo IP pubblico.Verificare che il cluster venga visualizzato come Connected nel portale di Azure in Azure Arc > cluster Kubernetes.
Se un FQDN viene risolto in un indirizzo IP pubblico, vedere DNS viene risolto in un indirizzo IP pubblico anziché in un indirizzo IP privato.
Distribuire Operazioni di Azure IoT
Distribuire Operazioni di Azure IoT nel cluster con gli endpoint privati, le zone DNS e la connettività Arc già configurati. Le risorse del piano dati (Archiviazione, Insieme di credenziali delle chiavi) si risolvono già in indirizzi IP privati grazie alla configurazione DNS effettuata tramite Creare endpoint privati e zone DNS.
Per istruzioni sulla distribuzione, vedere Deploy Operazioni di Azure IoT. Durante la distribuzione, il traffico dell'agente Arc viene instradato attraverso le opzioni di connettività configurate (Arc Gateway, Proxy esplicito o entrambi).
Avvertimento
L'account di archiviazione e Key Vault devono avere l'accesso pubblico abilitato durante la distribuzione. Il Registro schemi richiede accesso pubblico all'account di archiviazione in fase di creazione e l'estensione dell'archivio segreti (sincronizzazione dei segreti) deve raggiungere il deposito chiavi. Ciò significa che queste risorse sono raggiungibili pubblicamente fino a quando non si completa Disable public access on storage and Key Vault. Completare quella sezione non appena i pod di Operazioni di Azure IoT sono operativi per ridurre al minimo il periodo di esposizione.
Per ridurre ulteriormente l'esposizione, è possibile limitare l'accesso pubblico solo all'indirizzo IP del computer amministratore:
Facoltativo: limitare l'accesso all'indirizzo IP durante la distribuzione
az storage account network-rule add \
--account-name <storage-account> \
--ip-address <your-public-ip>
az storage account update \
--name <storage-account> \
--resource-group <resource-group> \
--default-action Deny
az keyvault network-rule add \
--name <keyvault-name> \
--ip-address <your-public-ip>/32
az keyvault update \
--name <keyvault-name> \
--resource-group <resource-group> \
--default-action Deny
Una volta che Operazioni di Azure IoT è funzionante, passare a --public-network-access Disabled come indicato nella sezione successiva.
Disabilitare l'accesso pubblico nell'archiviazione e Key Vault
Dopo aver distribuito Operazioni di Azure IoT, disabilitare l'accesso pubblico nell'account di archiviazione e Key Vault per completare il blocco.
Prerequisiti
Prima di disabilitare l'accesso pubblico, verificare quanto segue:
- Operazioni di Azure IoT è stato distribuito ed è funzionante. Esegui
az iot ops checke verifica che tutti i pod nel namespaceazure-iot-operationssiano in esecuzione. Vedere Deploy Operazioni di Azure IoT. - La sincronizzazione dei segreti è configurata e funzionante. Verificare che le risorse SecretSync e SecretProviderClass esistano e che i segreti vengano sincronizzati da Azure Key Vault. Consulta la gestione dei segreti per la distribuzione di Operazioni di Azure IoT.
- Il Registro schemi è funzionale. Verificare che i pod del registro schema (
adr-schema-registry-*) siano in esecuzione e possano accedere all'account di archiviazione. Per altre informazioni, vedere Informazioni sugli schemi dei messaggi. - I nodi del cluster possono risolvere DNS di Azure. Se il cluster utilizza DNS personalizzato, configurare l'inoltro del DNS per DNS di Azure (
168.63.129.16) affinché i record delle zone DNS private vengano risolti correttamente. Per ulteriori informazioni, vedere Integrazione DNS di Azure Private Endpoint.
Passaggio 1: Disabilitare l'accesso pubblico e assegnare RBAC
Disabilitare l'accesso alla rete pubblica nell'account di archiviazione e Key Vault. Per l'account di archiviazione, abilitare il bypass dei servizi di Azure attendibili in modo che il Schema Registry (Microsoft.DeviceRegistry/schemaRegistries) possa comunque accedervi.
az storage account update \
--name <storage-account> \
--resource-group <resource-group> \
--public-network-access Disabled \
--bypass AzureServices
Verificare che l'accesso pubblico sia disabilitato:
az storage account show --name <storage-account> --resource-group <resource-group> --query "publicNetworkAccess"
az keyvault update \
--name <keyvault-name> \
--resource-group <resource-group> \
--public-network-access Disabled
Verificare che l'accesso pubblico sia disabilitato:
az keyvault show --name <keyvault-name> --resource-group <resource-group> --query "properties.publicNetworkAccess"
Annotazioni
Il registro schema continua a funzionare correttamente tramite il bypass del servizio attendibile (AzureServices). Usare il flag --skip-ra durante la creazione dello Schema Registry se non si dispone delle autorizzazioni a livello di proprietario.
Assegnare all'identità gestita del registro schema l'accesso all'account di archiviazione.
az role assignment create \
--assignee <identity-client-id> \
--role "Storage Blob Data Contributor" \
--scope <storage-account-resource-id>
Passaggio 2: Verificare la connettività privata
Dal nodo del cluster, verificare che l'FQDN di archiviazione sia risolto in un indirizzo IP privato.
nslookup <storage-account>.blob.core.windows.netVerificare che l'FQDN del Key Vault si risolva in un indirizzo IP privato.
nslookup <keyvault-name>.vault.azure.netEntrambi devono restituire indirizzi IP nell'intervallo di indirizzi privati (ad esempio,
10.x.x.x), non indirizzi IP pubblici.Verificare che la sincronizzazione dei segreti funzioni ancora dopo la disabilitazione dell'accesso pubblico:
kubectl get secretsync -n azure-iot-operationsTutte le risorse SecretSync devono mostrare lo stato
Synced. Se vengono visualizzati errori, vedere Risolvere i problemi di connettività privata.
Configurare le destinazioni del flusso di dati con endpoint privati
Operazioni di Azure IoT flussi di dati inviare dati di telemetria a destinazioni cloud come Griglia di eventi di Azure, Hub eventi di Azure, Esplora dati di Azure, Data Lake Storage Gen2 e Microsoft Fabric OneLake. Per impostazione predefinita, i flussi di dati si connettono a questi servizi tramite gli endpoint pubblici. Per mantenere privato il traffico, crea un endpoint privato per ogni destinazione e assicurati che il DNS risolva sugli indirizzi IP privati.
Annotazioni
Se è stato creato un endpoint privato di Griglia di eventi e una zona DNS in Creare endpoint privati e zone DNS, Griglia di eventi è già configurata per l'accesso privato. Saltare avanti al Passaggio 2: assegnare il controllo degli accessi in base al ruolo per Griglia eventi per quella destinazione.
La tabella seguente illustra le destinazioni del flusso di dati supportate e la DNS privato Zona, ID gruppo e porta per ognuno di essi:
| Destinazione | zona DNS privato | ID del Gruppo | Porto |
|---|---|---|---|
| Griglia di eventi di Azure (MQTT) | privatelink.ts.eventgrid.azure.net |
topicspace |
8883 |
| Hub eventi di Azure | privatelink.servicebus.windows.net |
namespace |
9093 (Kafka) |
| Esplora dati di Azure | privatelink.<region>.kusto.windows.net |
cluster |
443 |
| Data Lake Storage Gen2 |
privatelink.blob.core.windows.net oppure privatelink.dfs.core.windows.net |
blob oppure dfs |
443 |
| Microsoft Fabric OneLake | privatelink.dfs.fabric.microsoft.com |
onelake |
443 |
Annotazioni
-
Event Hub usa la porta del protocollo Kafka
9093(non la porta AMQP standard5671) perché Operazioni di Azure IoT flussi di dati si connettono a Hub eventi tramite Kafka. -
Data Lake Storage Gen2 supporta due ID di gruppo: usare
blobper l'accesso a spazi dei nomi flat edfsper gli account dello spazio dei nomi gerarchici (abilitati per HNS). Scegliere quello che corrisponde alla configurazione dell'account di archiviazione.
La procedura seguente usa Griglia di eventi di Azure come esempio. Lo stesso modello si applica a ogni destinazione, sostituire i valori della tabella.
Passaggio 1: creare uno spazio dei nomi Griglia di eventi
Se non è già disponibile, creare uno spazio dei nomi di Griglia di eventi con MQTT (spazi di argomento) abilitato:
az eventgrid namespace create \
--name <namespace> \
--resource-group <resource-group> \
--location <region> \
--topic-spaces-configuration state=Enabled \
--sku name=Standard capacity=1
Quindi crea uno spazio tematico. Per i test, è possibile usare il carattere jolly # come modello di argomento:
az eventgrid namespace topic-space create \
--name <topic-space-name> \
--resource-group <resource-group> \
--namespace-name <namespace> \
--topic-templates "#"
Annotazioni
Nello spazio dei nomi di Event Grid, impostare Numero massimo di sessioni client per nome di autenticazione su 3 o più per consentire ai flussi di dati di scalare adeguatamente. Vedere Supporto multisessione MQTT di Event Grid.
Passaggio 2: Assegnare l'RBAC per Event Grid
Concedere all'identità gestita di Operazioni di Azure IoT il ruolo Event Grid che corrisponde alla direzione del flusso di dati:
-
Unidirezionale (sorgente → Griglia eventi): Assegnare
EventGrid TopicSpaces Publisher. -
A senso unico (Griglia di eventi → destinazione): Assegnare
EventGrid TopicSpaces Subscriber. -
Bridge bidirezionale: Assegnare sia
EventGrid TopicSpaces PublishercheEventGrid TopicSpaces Subscriber.
Per un flusso di dati tipico che pubblica i dati di telemetria in Griglia di eventi:
az role assignment create \
--assignee <aio-managed-identity-principal-id> \
--role "EventGrid TopicSpaces Publisher" \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.EventGrid/namespaces/<namespace>"
Annotazioni
Se si crea un bridge MQTT bidirezionale (sia l'origine che la destinazione usano Event Grid), è necessario entrambi i ruoli di Publisher e Subscriber. Per un esempio, vedere Tutorial: Configurare il bridge MQTT tra Operazioni di Azure IoT e Griglia di eventi.
Importante
Assegnare RBAC (controllo degli accessi in base al ruolo) all'identità corretta. Il metodo di autenticazione dell'endpoint del flusso di dati determina l'identità a cui è necessario concedere il ruolo Griglia di eventi:
Identità gestita assegnata dal sistema (impostazione predefinita): Assegnare il ruolo all'entità servizio dell'estensione AIO Arc . Per trovarla, passare al portale di Azure → cluster abilitato per Arc → Extensions → azure-iot-operations → Properties e copiare l'ID Principal. In alternativa, usare l'interfaccia della riga di comando:
az rest --method get \ --url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Kubernetes/connectedClusters/<cluster-name>/extensions/azure-iot-operations?api-version=2024-11-01-preview" \ --query "identity.principalId" -o tsvIdentità gestita assegnata dall'utente: Assegnare il ruolo all'ID principale dell'identità.
Se si assegna il ruolo all'identità sbagliata (ad esempio, un MI assegnato dall'utente usato per SecretSync invece dell'MI assegnato dal sistema dell'estensione AIO), il flusso di dati riceve un errore NotAuthorized dopo CONNACK ed entra in un ciclo di riconnessione.
Passaggio 3: Disabilitare l'accesso pubblico nello spazio dei nomi di Event Grid
L'endpoint privato e la zona DNS di Griglia di eventi sono già stati creati in Creare endpoint privati e zone DNS. Disabilitare ora l'accesso pubblico:
az eventgrid namespace update \
--name <namespace> \
--resource-group <resource-group> \
--public-network-access Disabled
Verificare che l'accesso pubblico sia disabilitato:
az eventgrid namespace show --name <namespace> --resource-group <resource-group> --query "publicNetworkAccess"
Passaggio 4: Verificare che il DNS venga risolto in un indirizzo IP privato
Dal nodo del cluster (o da una macchina virtuale nella stessa rete virtuale), verificare che il nome di dominio completo sia risolto nell'indirizzo IP dell'endpoint privato:
nslookup <namespace>.<region>-1.ts.eventgrid.azure.net
Il risultato deve restituire un indirizzo IP nell'intervallo di indirizzi privati ,ad esempio 10.x.x.x, non un indirizzo IP pubblico. Se restituisce un indirizzo IP pubblico, controlla il collegamento zona DNS privata.
Passaggio 5: Creare l'endpoint del flusso di dati per Griglia di eventi
Creare un endpoint del flusso di dati MQTT di Event Grid. In questo modo viene creato un endpoint usando l'autenticazione dell'identità gestita assegnata dal sistema. L'host utilizza il nome host MQTT del namespace Event Grid sulla porta 8883. Non è necessaria alcuna configurazione speciale per collegamento privato: il flusso di dati risolve il nome di dominio completo tramite DNS, che restituisce l'ip dell'endpoint privato se le zone DNS sono configurate correttamente.
- Passare all'esperienza Operazioni di Azure IoT.
- Creare un endpoint del flusso di dati di Event Grid per MQTT, con l'host impostato su
<namespace>.<region>-1.ts.eventgrid.azure.net.
Per altre informazioni, vedere Configurare gli endpoint del flusso di dati MQTT per Griglia di eventi.
Passaggio 6: Creare un flusso di dati da testare
Creare un flusso di dati che instrada i messaggi broker MQTT alla destinazione griglia di eventi.
- Passare all'esperienza Operazioni di Azure IoT.
- Selezionare Flussi di dati>Crea flusso di dati.
- Impostare l'origine sull'endpoint predefinito del broker MQTT.
- Impostare la destinazione sull'oggetto
eventgrid-private-endpointcreato. - Impostare l'argomento di destinazione su un argomento corrispondente al modello di spazio degli argomenti.
- Applicare il dataflow.
Passaggio 7: Convalidare che i dati di telemetria arrivino in Event Grid
Pubblicare un messaggio di test nel broker MQTT usando qualsiasi client MQTT. Ad esempio, con mosquitto_pub:
mosquitto_pub -h <cluster-host-ip> -p 1883 -t "test/eventgrid" -m '{"temperature": 25.5}'
Annotazioni
Questo esempio usa la porta 1883 (non TLS) per la convalida rapida. Se il listener del broker MQTT è configurato con TLS, usare la porta 8883 e fornire gli argomenti --cafile, --cert e --key appropriati. Per la produzione, usare sempre listener abilitati per TLS.
Verificare quindi che il flusso di dati funzioni:
Accedi al namespace Event Grid nel portale di Azure.
Controllare le metriche per i messaggi MQTT in ingresso.
Verificare che i log del pod del flusso di dati mostrino la consegna riuscita dei messaggi:
kubectl logs -n azure-iot-operations -l app=dataflow --tail=50
Se i messaggi vengono trasmessi, il flusso di dati viene eseguito correttamente tramite l'endpoint privato con l'autenticazione dell'identità gestita. Se i messaggi non arrivano, vedere Messaggi del flusso di dati non arrivano in Griglia di eventi.
Dopo aver disabilitato l'accesso pubblico su qualsiasi risorsa Azure, verificare che Operazioni di Azure IoT sia ancora integro. Vedere Verifica l'integrità di Operazioni di Azure IoT dopo il lockdown.
Limitazioni note
- Convalida della piattaforma: I modelli di connettività privata descritti di seguito sono basati su K3 convalidati in scenari Ubuntu Server 24.04. Altre distribuzioni o sistemi operativi Kubernetes non sono state convalidate in modo indipendente.
-
Creazione del Registro schemi: Il Registro schemi potrebbe richiedere l'accesso pubblico abilitato in fase di creazione. Dopo la creazione, l'accesso pubblico può essere disabilitato e ci si può affidare a endpoint privati più il bypass di servizi attendibili. Usare il flag
--skip-raquando si crea il Registro Schemi per evitare di richiedere autorizzazioni a livello di proprietario. - Ispezione TLS: Arc Gateway non supporta la terminazione o l'ispezione TLS. Se il firewall esegue l'ispezione TLS, è necessario escludere l'endpoint di Arc Gateway dall'ispezione. Vedere Il gateway Arc e l'ispezione TLS.
- Limiti di Arc Gateway: Sono supportate al massimo cinque risorse di Arc Gateway per ogni sottoscrizione.
- Explicit Proxy: È stato convalidato solo Firewall di Azure proxy esplicito. I proxy di terze parti (ad esempio Palo Alto) o proxy trasparenti non sono supportati in scenari convalidati. Operazioni di Azure IoT non supporta i server proxy che richiedono un certificato attendibile.
Contenuti correlati
- Simplificare i requisiti di configurazione di rete con Azure Arc Gateway
- Accedere ai servizi di Azure tramite Firewall di Azure Explicit Proxy
- Configurare un endpoint del flusso di dati
- Registro schemi
- Tutorial: distribuire Operazioni di Azure IoT in una rete a più livelli con connettività privata
- Rete operativa di Azure IoT
- Implementare operazioni Azure IoT
- Valori della zona DNS privata di Azure
- Risoluzione dei problemi di connettività privata per le operazioni di Azure IoT