Scenario: connessione diretta al database IoT
Questo scenario mostra come configurare l'accesso per stabilire una connessione diretta al database IoT. Ogni gruppo di domini IoT utilizza un'istanza di database dedicata, condivisa da tutti i domini IoT in tale gruppo di domini.
Lo schema di database del dominio IoT contiene i metadati e i dati delle risorse digital twin associate a un dominio IoT.
Completare i passi riportati di seguito per configurare l'accesso ai dati IoT in modo da poter eseguire una query sullo schema di database IoT per visualizzare le tabelle e le code di eventi transazionali direttamente nel database.
Passo 1: creare una VCN per consentire la connettività diretta del database all'host dati nella lista di inclusione
Configura una VCN con una subnet e un gateway di servizi per accedere a una connessione privata e sicura direttamente al database.
- Nella tenancy Internet of Things, eseguire il login come amministratore.
- Aprire il menu di navigazione, selezionare Networking e quindi Reti cloud virtuali.
- Nella pagina della lista Reti cloud virtuali selezionare Crea VCN.
- Immettere un nome descrittivo per la VCN. Non deve essere univoco e non può essere modificato in un secondo momento nella console, puoi modificarlo in un secondo momento con l'API o l'interfaccia CLI del dominio di Identity. Evitare di fornire informazioni riservate.
- Verificare il compartimento in cui si desidera creare la VCN, selezionare un altro compartimento, se necessario. Nota
La tua VCN deve trovarsi nella stessa area del gruppo di domini IoT, del dominio IoT e di qualsiasi altra risorsa IoT. Il numero massimo di VCN che è possibile associare a un gruppo di domini IoT è 5. - Nella sezione Blocchi IPv4 CIDR, immettere un intervallo IP consentito per accedere al database, ad esempio:
10.0.0.0/16
Per un elenco completo delle impostazioni, vedere Creazione di una VCN.
- Selezionare Crea una VCN.
- Viene visualizzata la pagina dei dettagli della rete cloud virtuale, quindi selezionare la scheda Sottoreti. Selezionare Crea subnet.
Per ulteriori informazioni, vedere Creazione di una subnet e Panoramica delle reti VCN e subnet.
- Nella pagina Crea subnet, effettuare le operazioni riportate di seguito.
- Immettere un nome descrittivo per la subnet. Non deve essere univoco e non può essere modificato in un secondo momento nella console. È possibile modificarlo in un secondo momento con l'API del dominio di Identity. Evitare di fornire informazioni riservate.
- Verificare il compartimento in cui si desidera creare la subnet. Selezionare un altro compartimento, se necessario.
- Selezionare il tipo di subnet, Regionale. Una subnet regionale indica che la subnet può contenere risorse in qualsiasi dominio di disponibilità dell'area.
- Immettere un blocco IPv4 CIDR, ad esempio
10.0.0.0/16
. - Selezionare l'accesso alla subnet privata per vietare l'indirizzo IP pubblico per le istanze in questa subnet.
- Selezionare la casella di controllo Usa nomi host DNS in questa subnet.
- Immettere il nome del dominio DNS con il nome dell'etichetta DNS della subnet:
<subnet_DNS_label>.<VCN_DNS_label>.oraclevcn.com
- Per il compartimento Opzioni DHcp selezionare il compartimento con le risorse IoT. Per Opzioni DHCP, selezionare le Opzioni DHCP predefinite.
- Per il compartimento Lista di sicurezza, selezionare il compartimento con le risorse IoT. Selezionare Elenco sicurezza.
- Selezionare Crea subnet.
- Viene visualizzata la pagina dei dettagli della rete cloud virtuale, quindi selezionare la scheda Gateway. In Gateway di servizi selezionare Crea gateway di servizi.
Per ulteriori informazioni, vedere Etichette CIDR del servizio disponibili nella pagina Creazione di un gateway del servizio.
- Immettere un nome per il gateway del servizio. Non deve essere unico. Evitare di fornire informazioni riservate. Selezionare il compartimento in cui si desidera creare il gateway. Selezionare un altro compartimento, se necessario.
- Per Servizi, selezionare l'opzione Tutti i servizi <region> in Oracle Services Network.
- Selezionare Opzioni avanzate, in Associazione tabella instradamento selezionare il compartimento tabella instradamento. Utilizzare il compartimento per le risorse IoT associate. Le risorse IoT possono trovarsi in compartimenti diversi e devono trovarsi nella stessa area.
- Selezionare Crea gateway del servizio.
- Viene visualizzata la pagina dei dettagli delle reti cloud virtuali, quindi selezionare la scheda Ciclo.
- In Tabelle instradamento, selezionare la Tabella di instradamento predefinita.
- Selezionare la scheda Regole di instradamento e selezionare Aggiungi regole di instradamento.Per ulteriori informazioni, vedere Aggiungere una regola di instradamento.
- Per Tipo di destinazione, selezionare Gateway di servizi.
- Per Servizio di destinazione selezionare Tutti i servizi <region> in Oracle Services Network.
- Selezionare Compartimento Gateway servizi di destinazione: selezionare lo stesso compartimento selezionato quando è stato creato il gateway servizi nel passo precedente.
- Selezionare il Gateway del servizio di destinazione creato nel passo precedente.
- Selezionare Aggiungi regole di instradamento.
- Viene visualizzata la pagina dei dettagli della rete cloud virtuale, quindi selezionare la scheda Sicurezza. Selezionare Crea gruppo di sicurezza di rete.
- Immettere un nome, selezionare lo stesso compartimento selezionato nel passo precedente.
- Nella sezione Regola, per la direzione, selezionare Escludi.
- Per Tipo di destinazione, selezionare CIDR.
- Nel campo CIDR destinazione immettere il CIDR per l'ambiente, ad esempio:
0.0.0.0/0
- Per Protocolli IP selezionare Tutti i protocolli.
- Selezionare Crea. Per ulteriori informazioni, vedere Gruppo di sicurezza di rete.
- Visualizzare i dettagli per il gruppo di sicurezza di rete.
- Nella pagina dei dettagli della rete cloud virtuale copiare l'OCID per la VCN o le VCN. Usare questo OCID o OCID VCN nel passo successivo.
Passo 2: aggiungere l'OCID VCN al gruppo di domini IoT
Per completare i passi riportati di seguito, l'utente deve disporre almeno dell'accesso in lettura alle reti VCN o VCN che si desidera aggiungere al gruppo di domini IoT. Per verificare se hai accesso in lettura alla VCN, consulta la sezione relativa alla acquisizione dei dettagli di una VCN per visualizzare le VCN a cui hai accesso.
Allow any-user to {VCN_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'
Utilizzare il comando
oci iot domain-group configure-data-access
e i parametri richiesti per configurare l'accesso ai dati per il gruppo di domini IoT. Sostituire<vcn-ocids>
con gli OCID per le reti VCN per il gruppo di domini IoT. A seconda della configurazione, puoi includere un OCID VCN o più OCID VCN utilizzando il seguente formato:Per istruzioni sull'uso della console o dell'API per aggiungere la VCN al gruppo di domini IoT, vedere Configurazione dell'accesso ai dati per un gruppo di domini IoT.oci iot domain-group configure-data-access --db-allow-listed-vcn-ids '["ocid1.vcn.OCID","ocid2.vcn.OCID"]' --iot-domain-group-id <domain-group-OCID>
Nota
Il numero massimo di VCN che è possibile associare a un gruppo di domini IoT è 5.Dopo alcuni minuti, utilizzare il comando
oci iot domain-group get
e i parametri necessari per ottenere i dettagli del gruppo di domini IoT, inclusi i dettagli di connessione al database del gruppo di domini, per confermare la configurazione. Sostituire<iot-domain-group-OCID>
con OCID per il gruppo di domini IoT:oci iot domain-group get --iot-domain-group-id <iot-domain-group-OCID>
Questa risposta di esempio mostra che il gruppo di domini è attivo,
"lifecycleState": "ACTIVE"
e se è configurato questa risposta include i dettagli di connessione al database per il gruppo di domini:db-allow-listed-vcn-ids
: viene visualizzata la VCN.db-connection-string
db-token-scope
{ "data": { "compartment-id": "<compartment-OCID>", "data-host": "
<domain-group-short-id>.iot-data.<region>.oci.oraclecloud.com
", "db-allow-listed-vcn-ids": '["<vcn-OCID>"]', "db-connection-string": null, "db-token-scope": null, "defined-tags": { "Oracle-Tags": { "CreatedBy": "default/user", "CreatedOn": "2025-08-05T18:15:41.260Z" } }, "description": null, "display-name": "<your-iot-domain-group-name>", "freeform-tags": {}, "id": "<domain-group-OCID>", "lifecycle-state": "ACTIVE", "system-tags": {}, "time-created": "2025-08-05T18:15:43.054000+00:00", "time-updated": "2025-08-05T18:27:53.655000+00:00" }, "etag": "<unique-id>" }
Passo 3: creare un'istanza di computazione per l'accesso SSH
La creazione di un'istanza di computazione e di una rete cloud virtuale (VCN) in Oracle Cloud Infrastructure fornisce l'accesso Secure Shell (SSH) alle risorse di computazione e crea un ambiente di rete isolato e sicuro per la virtual machine. La VCN determina la modalità di accesso all'istanza, mentre l'istanza di computazione è il server virtuale a cui è necessario connettersi.
Puoi creare un'istanza di computazione per ospitare le applicazioni, fornendo potenza di computazione per il tuo carico di lavoro e targettizzare una rete cloud virtuale (VCN) per creare l'istanza in una rete privata e sicura nel cloud, controllandone la connettività e l'isolamento da altre reti e dalla rete Internet pubblica. L'uso di una VCN è essenziale per la sicurezza e la connettività della rete, consentendoti di definire subnet, gateway e regole per gestire il modo in cui le istanze comunicano con altre risorse. Per ulteriori informazioni, vedere Panoramica delle reti VCN e subnet e Panoramica del servizio di computazione.
- Aprire il menu di navigazione e selezionare Compute. In Computazione, selezionare Istanze. Selezionare Crea istanza.
- Immettere un nome per l'istanza. È possibile aggiungere o modificare il nome in un secondo momento. Il nome non deve essere univoco perché un OCID (Oracle Cloud Identifier) identifica in modo univoco l'istanza. Evitare di fornire informazioni riservate. Selezionare il compartimento in cui creare l'istanza. Tutte le risorse IoT devono trovarsi nella stessa area.
- In alcuni casi, possono essere applicate le opzioni predefinite. Se si desidera configurare opzioni specifiche per l'istanza di computazione, vedere Creazione di un'istanza. Selezionare il dominio di disponibilità in cui si desidera creare l'istanza. Selezionare Next.
- In Sicurezza, attivare o disattivare lo switch per attivare l'istanza schermata. Selezionare Next.
- Confermare che l'opzione Seleziona rete cloud virtuale esistente sia selezionata.
- Selezionare il compartimento di rete cloud virtuale e la rete cloud virtuale creata nel passo precedente.
- In Subnet, confermare che l'opzione Seleziona subnet esistente sia selezionata. Selezionare la subnet regionale creata nel passo precedente.
- In Aggiungi chiavi SSH confermare l'opzione per generare una coppia di chiavi.
- Selezionare Scarica chiave privata. Oracle Cloud Infrastructure genera una coppia di chiavi RSA per l'istanza. La chiave privata viene scaricata in modo da poter connettersi all'istanza utilizzando la shell SSH. Selezionare Next.
- Selezionare Crea.
Passo 4: creare un gruppo dinamico del dominio di Identity
- Nella tenancy IoT, connettersi come amministratore alla console di Oracle Cloud Infrastructure.
- Aprire il menu di navigazione e selezionare Identità e sicurezza. In Identità selezionare Domini.
- Selezionare la scheda Gruppi dinamici, quindi selezionare Crea gruppo dinamico.
- Immettere un nome e, facoltativamente, una descrizione. Selezionare Corrispondenza con qualsiasi regola definita di seguito.
- Per la Regola 1, immettere il valore
instance-OCID
di sostituzione seguente con l'OCID dell'istanza di computazione creata nel passo precedente.any{instance.id='instance-OCID'}
È possibile trovare l'OCID istanza di computazione nella pagina dei dettagli dell'istanza. Aprire il menu di navigazione e selezionare Compute. In Computazione, selezionare Istanze. Selezionare l'istanza che si desidera utilizzare per aprire la pagina Dettagli istanza.
L'istanza deve trovarsi nella stessa area di tutte le risorse IoT.
- Selezionare Crea. Le informazioni sul gruppo dinamico vengono visualizzate con l'OCID del gruppo dinamico.
Passo 5: creare un bastione
- Nella tenancy IoT, connettersi come amministratore alla console di Oracle Cloud Infrastructure.
- Aprire il menu di navigazione, selezionare Identità e sicurezza, quindi selezionare Bastion.
- In Configura networking selezionare il compartimento di rete cloud virtuale di destinazione e selezionare la rete cloud virtuale di destinazione creata nel passo precedente.
- Selezionare il compartimento subnet di destinazione e selezionare la subnet di destinazione creata nel passo precedente.
- Per la lista di inclusione dei blocchi CIDR aggiungere uno o più intervalli di indirizzi nella notazione CIDR che si desidera consentire di connettersi alle sessioni ospitate da questo bastion, ad esempio:
0.0.0.0/0
Immettere un blocco CIDR nel campo di input, quindi selezionare il valore o premere Invio per aggiungere il valore all'elenco. Il numero massimo consentito di blocchi CIDR è 20. Per un elenco completo delle opzioni, vedere Creazione di un bastion.
Una gamma di indirizzi più limitata offre una maggiore sicurezza.
- Selezionare Aggiungi a elenco.
- Selezionare Crea bastion.
- Viene visualizzata la pagina dei dettagli del bastion con l'OCID per questo bastion.
- Selezionare la scheda Sessioni, quindi selezionare Crea sessione.
- Per Tipo di sessione selezionare Sessione di inoltro porta SSH. Immettere un nome sessione. Per ulteriori informazioni, vedere Creazione di una sessione di inoltro porta nel bastion.
- In Connetti all'host di destinazione utilizzando, selezionare Nome istanza.
- Selezionare il compartimento dell'istanza di computazione e l'istanza di computazione creata nel passo precedente.
- Immettere il numero di porta a cui si desidera connettersi nella risorsa di destinazione, ad esempio un server SSH su un'istanza Linux:
22
(impostazione predefinita) - In Aggiungi chiave SSH selezionare Genera coppia di chiavi SSH. Selezionare Salva chiave privata e Salva chiave pubblica.
- In Opzioni avanzate, la configurazione della sessione Massimo time-to-live della sessione è 180 e l'intervallo minuti. Selezionare Crea sessione. Viene visualizzata la pagina dell'elenco delle sessioni.
- Alla fine della riga della sessione che si desidera utilizzare, selezionare il menu Azioni e selezionare Copia comando SSH.
- Creare una sessione di inoltro della porta SSH a una virtual machine, un tunnel di inoltro della porta SSH. A tale scopo, aprire la riga di comando o il terminale locale ed eseguire il comando SSH personalizzato per l'ambiente in uso.
Sostituire
<path-to-SSH-private-Key>
: con il percorso completo del file di chiave privata corrispondente alla chiave pubblica scaricata durante la creazione della sessione di inoltro della porta nel passo precedente. Sostituire<localPort>
: con una porta locale disponibile sul computer che si desidera utilizzare per il tunnel. Questa è la porta a cui ci si connetterà localmente per accedere al servizio inoltrato.
Ad esempio:ssh -i <path-to-SSH-private-Key> -p <localPort>:<targetResourceIP>:<targetPort> <sessionOCID>@<bastionPublicIP> -N
Seguire i prompt per eseguire la connessione. Una volta eseguito il comando SSH e stabilito il tunnel per l'host bastion, è possibile accedere al servizio della risorsa di destinazione mediante la connessione all'host bastion impostato nel passo precedente.ssh -i <privateKey> -p 1224:opc@127.0.0.1
[opc@compute-instance-name ~]$
- Installare l'interfaccia CLI OCI.
L'esempio seguente è per Oracle Linux 9.
Utilizzare il comandodnf
per eseguire lo script del programma di installazione dell'interfaccia a riga di comando (CLI) di Oracle Cloud Infrastructure (OCI). Per ulteriori informazioni, vedere Command Line Interface (CLI). Per installare CLI su altri sistemi operativi e ambienti, vedere Installazione dell'interfaccia CLI.sudo dnf install -y python39-oci-cli
- A questo punto è possibile utilizzare i comandi CLI
oci iot
.
Passo 6: aggiungere il gruppo dinamico del dominio di Identity OCI al dominio IoT
Se l'accesso ai dati per il dominio IoT è già configurato, utilizzare il comando oci iot domain get
per confermare i dettagli di connessione al database per un dominio IoT esistente. Per ulteriori informazioni, vedere Ottenere i dettagli di un dominio IoT.
In alternativa, utilizzare questo comando oci iot domain configure-direct-data-access
e i parametri richiesti per configurare l'accesso di un dominio IoT per connettersi direttamente al database.
Sostituire l'OCID tenancy con l'OCID tenancy IoT per l'ambiente in uso e sostituirlo con il nome del gruppo di identità con il gruppo dinamico Identità, seguendo queste linee guida.
Per il parametro <identity-group-name>
è possibile fare riferimento al gruppo di identità degli utenti o al gruppo dinamico di identità. In questo esempio viene fatto riferimento al gruppo dinamico impostato nel passo precedente:
oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID>:<identity-group-name>"]'
Se <identity-domain-name>
non si trova nel dominio di Identity predefinito, è necessario specificare <identity-domain-name>
. Ad esempio: <tenancy-OCID>:<identity-domain-name>/<identity-group-name>
oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID>:<identity-domain-name>/<identity-group-name>"]'
Passo 7: recuperare il token db dal servizio di identità utilizzando l'ambito db-token per connettersi al database
L'utente o l'applicazione in esecuzione nella virtual machine o nelle virtual machine, che si trovano nella VCN inclusa nella lista di inclusione, e possono recuperare db-token
dal servizio IAM Identity utilizzando db-token-scope
utilizzando il principal dell'istanza.
Utilizzare questo comando: oci iam db-token get --scope --auth instance_principal
oci iam db-token get
per ottenere il token dell'istanza. Sostituire urn:oracle:db::id::<database-compartment-OCID> con l'ambito del token di database per il gruppo di domini IoT. oci iam db-token get --scope <urn:oracle:db::id::<database-compartment-OCID> --auth instance_principal
Ad esempio:iam db-token get --auth instance_principal --scope urn:oracle:db::id::<database-compartment-OCID>
Private key written at /home/opc/.oci/db-token/oci_db_key.pem
db-token written at: /home/opc/.oci/db-token/token
db-token is valid until 2025-08-30 21:09:45
Passo 8: utilizzo di una stringa di connessione TLS URL JDBC per il driver Thin JDBC senza un wallet per la connessione al database
Sia l'utente che l'applicazione possono stabilire una connessione all'host dati utilizzando db-connection-string
e il token OCI per eseguire una query sui dati del dominio IoT.
Il file db-token
recuperato viene quindi utilizzato dal client di database, ad esempio SQL*Plus, SQLcl o un driver JDBC per autenticare la connessione a un database Oracle configurato per l'autenticazione del token IAM.
Durante la connessione al database, l'applicazione JDBC fornisce un token al database. Il database verifica il token con una chiave pubblica richiesta dal servizio di autenticazione e recupera le informazioni di appartenenza al gruppo di utenti corrispondenti per trovare lo schema di database e i mapping dei ruoli per completare l'autorizzazione utente al database.
./sql /@"jdbc:oracle:thin:@tcps:adb.<region>.oraclecloud.com:<port>/<database-host-name>.adb.<region>.oraclecloud.com?TOKEN_AUTH=OCI_TOKEN"
Inoltre, l'applicazione invia un'intestazione firmata, che dimostra di possedere una chiave privata associata a una chiave pubblica incorporata nel token. Se il token e la firma sono validi e esiste un mapping tra l'utente IAM e un utente del database, l'accesso al database viene concesso all'applicazione JDBC.
Per ulteriori informazioni sull'uso di SQLcl, consultare la documentazione di Oracle SQLcl.
Ora è possibile eseguire una query sui dati del dominio IoT direttamente nel database.