Scénario : connexion directe à la base de données IoT
Ce scénario montre comment configurer l'accès pour établir une connexion directe à la base de données IoT. Chaque groupe de domaines IoT utilise une instance de base de données dédiée, partagée par tous les domaines IoT de ce groupe de domaines.
Le schéma de base de données de domaine IoT contient les métadonnées et les données des ressources de jumeau numérique associées à un domaine IoT.
Pour configurer l'accès aux données IoT afin de pouvoir interroger le schéma de base de données IoT pour afficher les tables et les files d'attente d'événements transactionnels directement dans la base de données, procédez comme suit :
Etape 1 : création d'un VCN pour autoriser la connectivité directe de la base de données à l'hôte de données
Configurez un VCN avec un sous-réseau et une passerelle de service pour accéder directement à la base de données à une connexion privée et sécurisée.
- Dans votre location Internet of Things, connectez-vous en tant qu'administrateur.
- Ouvrez le menu de navigation, sélectionnez Fonctions de réseau, puis Réseaux cloud virtuels.
- Sur la page de liste Réseaux cloud virtuels, sélectionnez Créer un VCN.
- Saisissez un nom descriptif pour le VCN. Il n'a pas besoin d'être unique et ne peut pas être modifié ultérieurement dans la console. Vous pouvez le modifier ultérieurement à l'aide de l'API ou de la CLI du domaine d'identité. Evitez de saisir des informations confidentielles.
- Vérifiez le compartiment dans lequel créer le VCN, puis sélectionnez un autre compartiment si nécessaire. Remarque
Votre VCN doit se trouver dans la même région que votre groupe de domaines IoT, votre domaine IoT et toutes les autres ressources IoT. Le nombre maximal de réseaux cloud virtuels que vous pouvez associer à un groupe de domaines IoT est de 5. - Dans la section Blocs CIDRIPv4 CIDR IPv4, entrez une plage d'adresses IP autorisée à accéder à la base de données, par exemple :
10.0.0.0/16
Pour obtenir la liste complète des paramètres, reportez-vous à Création d'un VCN.
- Sélectionnez Créer un VCN.
- La page de détails Réseau cloud virtuel s'ouvre et sélectionnez l'onglet Sous-réseaux. Sélectionnez Créer un sous-réseau.
Pour plus d'informations, reportez-vous à Création d'un sous-réseau et à Présentation des réseaux cloud virtuels et des sous-réseaux.
- Sur la page Créer un sous-réseau, procédez comme suit :
- Entrez un nom convivial pour le sous-réseau. Ce nom n'a pas besoin d'être unique et ne peut pas être modifié ultérieurement dans la console. Vous pouvez le modifier ultérieurement à l'aide de l'API de domaine d'identité. Evitez de saisir des informations confidentielles.
- Vérifiez le compartiment dans lequel créer le sous-réseau. Sélectionnez un autre compartiment si nécessaire.
- Sélectionnez le type de sous-réseau, Régional. Un sous-réseau régional signifie que le sous-réseau peut contenir des ressources dans n'importe quel domaine de disponibilité de la région.
- Entrez un bloc CIDRIPv4 CIDR IPv4, par exemple
10.0.0.0/16
. - Sélectionnez l'accès au sous-réseau privé afin d'interdire l'adresse IP publique pour les instances de ce sous-réseau.
- Cochez la case Utiliser les noms d'hôte DNS dans ce sous-réseau.
- Entrez le nom de domaine DNS avec le nom de libellé DNS du sous-réseau :
<subnet_DNS_label>.<VCN_DNS_label>.oraclevcn.com
- Pour le compartiment Options DHCP, sélectionnez le compartiment avec vos ressources IoT. Pour Dhcp Options, sélectionnez les options Dhcp par défaut.
- Pour le compartiment de liste de sécurité, sélectionnez le compartiment avec vos ressources IoT. Sélectionnez Liste de sécurité.
- Sélectionnez Créer un sous-réseau.
- La page Détails du réseau cloud virtuel s'ouvre et sélectionnez l'onglet Passerelles. Sous Passerelles de service, sélectionnez Créer une passerelle de service.
Pour plus d'informations, reportez-vous à Libellés CIDR de service disponibles sur la page Création d'une passerelle de service.
- Entrez le nom de la passerelle de service. Il ne doit pas nécessairement être unique. Evitez de saisir des informations confidentielles. Sélectionnez le compartiment où créer la passerelle. Sélectionnez un autre compartiment si nécessaire.
- Pour Services, sélectionnez l'option Tous les services <region> dans Oracle Services Network.
- Sélectionnez Options avancées, sous Association de table de routage, sélectionnez le compartiment de la table de routage. Utilisez le compartiment pour les ressources IoT associées. Les ressources IoT peuvent se trouver dans des compartiments différents et doivent se trouver dans la même région.
- Sélectionnez Créer une plate-forme de services.
- La page de détails des réseaux cloud virtuels s'ouvre et sélectionnez l'onglet Routage.
- Sous Tables de routage, sélectionnez la table de routage par défaut.
- Sélectionnez l'onglet Règles de routage, puis Ajouter des règles de routage.Pour plus d'informations, voir Ajouter une règle de routage.
- Pour Type de cible, sélectionnez Passerelle de service.
- Pour Service de destination, sélectionnez Tous les services <region> dans Oracle Services Network.
- Sélectionnez Compartiment de passerelle de service cible : sélectionnez le même compartiment que celui que vous avez sélectionné lors de la création de la passerelle de service à l'étape précédente.
- Sélectionnez la passerelle de service cible créée à l'étape précédente.
- Sélectionnez Ajouter des règles de routage.
- La page Détails du réseau cloud virtuel s'ouvre, puis sélectionnez l'onglet Sécurité. Sélectionnez Créer un groupe de sécurité réseau.
- Entrez un nom, sélectionnez le compartiment que vous avez sélectionné à l'étape précédente.
- Dans la section Règle, pour la direction, sélectionnez Sortie.
- Pour le type de destination, sélectionnez CIDR.
- Dans le champ CIDR de destination, entrez le CIDR de votre environnement, par exemple :
0.0.0.0/0
- Pour Protocoles IP, sélectionnez Tous les protocoles.
- Choisissez Créer. Pour plus d'informations, reportez-vous à Groupe de sécurité réseau.
- Affichez les détails du groupe de sécurité réseau.
- On the Virtual cloud network details page, copy the OCID for the VCN or VCNs. Utilisez cet OCID ou ces OCID de VCN à l'étape suivante.
Etape 2 : ajout de votre OCID VCN au groupe de domaines IoT
Pour effectuer les étapes suivantes, votre utilisateur doit disposer au moins d'un accès en lecture au VCN ou aux réseaux cloud virtuels à ajouter au groupe de domaines IoT. Pour vérifier si vous disposez d'un accès en lecture au VCN, reportez-vous à Obtention des détails d'un VCN pour visualiser les réseaux cloud virtuels auxquels vous avez accès.
Allow any-user to {VCN_READ} in compartment <compartment-name> where request.principal.type = 'iotdomain'
Utilisez la commande
oci iot domain-group configure-data-access
et les paramètres requis pour configurer l'accès aux données pour le groupe de domaines IoT. Remplacez<vcn-ocids>
par les OCID des réseaux cloud virtuels du groupe de domaines IoT. Selon votre configuration, vous pouvez inclure un OCID de VCN ou plusieurs OCID de VCN au format suivant :Pour obtenir des instructions sur l'utilisation de la console ou de l'API pour ajouter le VCN au groupe de domaines IoT, reportez-vous à Configuration de l'accès aux données pour un groupe de domaines 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>
Remarque
Le nombre maximal de réseaux cloud virtuels que vous pouvez associer à un groupe de domaines IoT est de 5.Au bout de quelques minutes, utilisez la commande
oci iot domain-group get
et les paramètres requis pour obtenir les détails du groupe de domaines IoT, y compris les détails de connexion à la base de données du groupe de domaines, afin de vérifier qu'il est configuré. Remplacez<iot-domain-group-OCID>
par l'OCID du groupe de domaines IoT :oci iot domain-group get --iot-domain-group-id <iot-domain-group-OCID>
Cet exemple de réponse montre que le groupe de domaines est actif,
"lifecycleState": "ACTIVE"
, et si elle est configurée, cette réponse inclut les détails de connexion à la base de données pour le groupe de domaines :db-allow-listed-vcn-ids
: notez que le VCN est affiché.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>" }
Etape 3 : création d'une instance de calcul pour l'accès SSH
La création d'une instance de calcul et d'un réseau cloud virtuel (VCN) dans Oracle Cloud Infrastructure fournit un accès SSH (Secure Shell) aux ressources de calcul et crée un environnement réseau isolé sécurisé pour votre machine virtuelle. Le VCN détermine le mode d'accès à votre instance, tandis que l'instance de calcul est le serveur virtuel auquel vous devez vous connecter.
Vous pouvez créer une instance de calcul pour héberger les applications, en fournissant une puissance de calcul pour votre charge de travail, et vous ciblez un réseau cloud virtuel (VCN) pour créer l'instance dans un réseau privé sécurisé dans le cloud, en contrôlant sa connectivité et son isolement par rapport aux autres réseaux et au réseau Internet public. L'utilisation d'un VCN est essentielle pour la sécurité et la connectivité du réseau, ce qui vous permet de définir des sous-réseaux, des passerelles et des règles pour gérer la façon dont les instances communiquent avec d'autres ressources. Pour plus d'informations, reportez-vous aux sections Présentation des réseaux cloud virtuels et des sous-réseaux et Présentation du service Compute.
- Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances. Sélectionnez Créer une instance.
- Saisissez un nom pour l'instance. Vous pouvez ajouter ou modifier le nom ultérieurement. Le nom n'a pas besoin d'être unique car un identificateur Oracle Cloud (OCID) identifie l'instance de façon unique. Evitez de saisir des informations confidentielles. Sélectionnez le compartiment dans lequel créer l'instance. Toutes les ressources IoT doivent se trouver dans la même région.
- Dans certains cas, les options par défaut peuvent s'appliquer. Pour configurer des options spécifiques pour votre instance de calcul, reportez-vous à Création d'une instance. Sélectionnez le domaine d'accès dans lequel créer l'instance. Sélectionnez Suivant.
- Sous Sécurité, activez/désactivez l'option Instance protégée. Sélectionnez Suivant.
- Vérifiez que l'option Sélectionner un réseau cloud virtuel existant est sélectionnée.
- Sélectionnez votre compartiment de réseau cloud virtuel et le réseau cloud virtuel créé à l'étape précédente.
- Sous Sous-réseau, vérifiez que l'option Sélectionner un sous-réseau existant est sélectionnée. Sélectionnez le sous-réseau régional créé à l'étape précédente.
- Sous Ajouter des clés SSH, confirmez l'option permettant de générer une paire de clés pour moi.
- Sélectionnez Télécharger la clé privée. Oracle Cloud Infrastructure génère une paire d'éléments clés RSA pour l'instance. La clé privée est téléchargée afin que vous puissiez vous connecter à l'instance à l'aide de SSH. Sélectionnez Suivant.
- Choisissez Créer.
Etape 4 : création d'un groupe dynamique de domaine d'identité
- Dans votre location IoT, connectez-vous en tant qu'administrateur à la console Oracle Cloud Infrastructure.
- Ouvrez le menu de navigation et sélectionnez Identité et sécurité. Sous Identité, sélectionnez Domaines.
- Sélectionnez l'onglet Groupes dynamiques, puis Créer un groupe dynamique.
- Entrez un nom et éventuellement une description. Sélectionnez Correspondre à l'une des règles définies ci-dessous.
- Pour la règle 1, remplacez
instance-OCID
par l'OCID de l'instance de calcul créée à l'étape précédente.any{instance.id='instance-OCID'}
L'OCID d'instance de calcul est disponible sur la page de détails de l'instance. Ouvrez le menu de navigation et sélectionnez Compute. Sous Compute, sélectionnez Instances. Sélectionnez l'instance à utiliser pour ouvrir la page Détails de l'instance.
L'instance doit se trouver dans la même région que toutes les ressources IoT.
- Choisissez Créer. Les informations sur le groupe dynamique s'affichent avec l'OCID du groupe dynamique.
Etape 5 : création d'un bastion
- Dans votre location IoT, connectez-vous en tant qu'administrateur à la console Oracle Cloud Infrastructure.
- Ouvrez le menu de navigation, sélectionnez Identité et sécurité, puis Bastion.
- Sous Configurer la mise en réseau, sélectionnez le compartiment de réseau cloud virtuel cible et le réseau cloud virtuel cible créé à l'étape précédente.
- Sélectionnez le compartiment de sous-réseau cible, puis le sous-réseau cible créé à l'étape précédente.
- Pour la liste d'autorisation de blocs CIDR, ajoutez des plages d'adresses de la notation CIDR que vous souhaitez autoriser à se connecter aux sessions hébergées par ce bastion, par exemple :
0.0.0.0/0
Entrez un bloc CIDR dans le champ d'entrée, puis sélectionnez la valeur ou appuyez sur Entrée pour ajouter la valeur à la liste. Le nombre maximal autorisé de blocs CIDR est 20. Pour obtenir la liste complète des options, reportez-vous à Création d'un bastion.
Une plage d'adresses plus limitée offre une meilleure sécurité.
- Sélectionnez Ajouter à la liste.
- Sélectionnez Créer un bastion.
- La page de détails du bastion s'ouvre avec l'OCID de ce bastion.
- Sélectionnez l'onglet Sessions, puis Créer une session.
- Dans Type de session, sélectionnez Session de transmission de ports SSH. Entrez un nom de session. Pour plus d'informations, reportez-vous à Création d'une session de transfert de port dans le bastion.
- Sous Connexion à l'hôte cible à l'aide de, sélectionnez Nom d'instance.
- Sélectionnez le compartiment d'instance de calcul et l'instance de calcul créés à l'étape précédente.
- Entrez le numéro de port auquel vous souhaitez vous connecter sur la ressource cible, par exemple : un serveur SSH sur une instance Linux :
22
(par défaut) - Sous Ajouter une clé SSH, sélectionnez Générer une paire de clés SSH. Sélectionnez Enregistrer la clé privée et Enregistrer la clé publique.
- Sous Options avancées, la configuration de session Durée de vie maximale de la session est de 180 et l'intervalle de minutes. Sélectionnez Créer une session. La page de liste des sessions s'ouvre.
- A la fin de la ligne de la session à utiliser, sélectionnez le menu Actions et sélectionnez Copier la commande SSH.
- Créez une session de transmission de ports SSH vers une machine virtuelle, un tunnel de transmission de ports SSH. Pour ce faire, ouvrez la ligne de commande ou le terminal local et exécutez la commande SSH personnalisée pour votre environnement.
Remplacez
<path-to-SSH-private-Key>
: par le chemin d'accès complet au fichier de clés privées correspondant à la clé publique que vous avez téléchargée lors de la création de la session de transfert de port à l'étape précédente. Remplacez<localPort>
: par un port local disponible sur l'ordinateur que vous souhaitez utiliser pour le tunnel. Il s'agit du port auquel vous allez vous connecter localement pour accéder au service transféré.
Par exemple :ssh -i <path-to-SSH-private-Key> -p <localPort>:<targetResourceIP>:<targetPort> <sessionOCID>@<bastionPublicIP> -N
Pour vous connecter, suivez les invites. Une fois que la commande SSH est en cours d'exécution et que le tunnel vers votre hôte Bastion est établi, vous pouvez accéder au service de la ressource cible en vous connectant à l'hôte Bastion configuré à l'étape précédente.ssh -i <privateKey> -p 1224:opc@127.0.0.1
[opc@compute-instance-name ~]$
- Installez l'interface de ligne de commande OCI.
L'exemple suivant concerne Oracle Linux 9.
Utilisez la commandednf
pour exécuter le script d'installation de l'interface de ligne de commande (CLI) Oracle Cloud Infrastructure (OCI). Pour plus d'informations, reportez-vous à Interface de ligne de commande (CLI). Pour installer l'interface de ligne de commande sur d'autres systèmes d'exploitation et environnements, reportez-vous à la section Installing the CLI.sudo dnf install -y python39-oci-cli
- Vous pouvez désormais utiliser les commandes de l'interface de ligne de commande
oci iot
.
Etape 6 : ajout du groupe dynamique de domaine d'identité OCI au domaine IoT
Si l'accès aux données pour le domaine IoT est déjà configuré, utilisez la commande oci iot domain get
pour confirmer les détails de connexion à la base de données pour un domaine IoT existant. Pour plus d'informations, reportez-vous à Obtention des détails d'un domaine IoT.
Vous pouvez également utiliser cette commande oci iot domain configure-direct-data-access
et les paramètres requis pour configurer l'accès d'un domaine IoT afin de vous connecter directement à la base de données.
Remplacez l'OCID de location par l'OCID de location IoT de votre environnement et remplacez-le par le nom du groupe d'identités par le groupe dynamique d'identités, conformément aux instructions ci-après.
Pour le paramètre <identity-group-name>
, vous pouvez faire référence au groupe d'identités des utilisateurs ou au groupe dynamique d'identités. Dans cet exemple, le groupe dynamique configuré à l'étape précédente est référencé :
oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID>:<identity-group-name>"]'
Si l'élément <identity-domain-name>
ne se trouve pas dans le domaine d'identité par défaut, vous devez indiquer l'élément <identity-domain-name>
. Par exemple : <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>"]'
Etape 7 : extraction du jeton de base de données à partir du service d'identité à l'aide de la portée de jeton de base de données pour la connexion à la base de données
L'utilisateur ou l'application s'exécutant sur la ou les machines virtuelles, qui se trouvent dans le VCN sur liste d'autorisation, peuvent extraire db-token
du service d'identité IAM à l'aide de db-token-scope
à l'aide du principal d'instance.
Utilisez la commande suivante : oci iam db-token get --scope --auth instance_principal
oci iam db-token get
pour obtenir le jeton d'instance. Remplacez urn:oracle:db::id::<database-compartment-OCID> par la portée de jeton de base de données pour le groupe de domaines IoT. oci iam db-token get --scope <urn:oracle:db::id::<database-compartment-OCID> --auth instance_principal
Par exemple :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
Etape 8 : Utilisation d'une chaîne de connexion TLS URL JDBC pour le pilote léger JDBC sans portefeuille pour la connexion à la base de données
L'utilisateur ou l'application peut établir une connexion à l'hôte de données à l'aide de db-connection-string
et du jeton OCI pour interroger les données de domaine IoT.
Le fichier db-token
extrait est ensuite utilisé par le client de base de données, par exemple : SQL*Plus, SQLcl ou un pilote JDBC pour authentifier la connexion à une base de données Oracle configurée pour l'authentification par jeton IAM.
Lors de la connexion à la base de données, l'application JDBC fournit un jeton à celle-ci. La base de données vérifie le jeton à l'aide d'une clé publique qu'elle demande au service d'authentification et extrait les informations d'appartenance au groupe d'utilisateurs correspondant pour rechercher les mappages de schéma et de rôle de base de données afin de terminer l'autorisation utilisateur sur la base de données.
./sql /@"jdbc:oracle:thin:@tcps:adb.<region>.oraclecloud.com:<port>/<database-host-name>.adb.<region>.oraclecloud.com?TOKEN_AUTH=OCI_TOKEN"
En outre, l'application envoie un en-tête signé, ce qui prouve qu'elle possède une clé privée associée à une clé publique intégrée au jeton. Si le jeton et la signature sont valides et qu'il existe une correspondance entre l'utilisateur IAM et un utilisateur de base de données, l'accès à la base de données est accordé à l'application JDBC.
Pour plus d'informations sur l'utilisation de SQLcl, reportez-vous à la documentation Oracle SQLcl.
Vous pouvez maintenant interroger les données de domaine IoT directement dans la base de données.