Créer et gérer des clés secrètes pour une instance de jumeau numérique
Si vous recevez des données d'un appareil, vous devez utiliser l'authentification avec votre instance de jumeau numérique. Ce scénario explique comment utiliser une clé secrète pour authentifier une instance de jumeau numérique pour un appareil.
La clé secrète est le mot de passe du périphérique. L'utilisation d'une clé secrète n'est pas recommandée pour la production, utilisez uniquement les clés secrètes de chambre forte pour tester la configuration. Pour la production, utilisez un certificat mTLS pour l'authentification d'instance de jumeau numérique.
Tâches
- Créer une clé secrète
- Créer ou mettre à jour un ID d'authentification d'instance de jumeau numérique
- Envoyer les données
- Mettre à jour et gérer les clés secrètes
- Dépannage
- Assurez-vous d'avoir les autorisations requises. Un administrateur accorde l'accès en créant les politiques requises. Pour plus d'informations, voir Préalables pour les politiques requises pour les clés secrètes et Informations détaillées sur les politiques pour la plate-forme Internet of Things (IoT) pour les politiques requises pour les ressources IoT.
- Ajoutez ces politiques au compartiment pour autoriser l'accès.Politique de clé secrète de la chambre forte de domaines IoT
Lorsque vous créez une instance de jumeau numérique si vous utilisez une clé secrète pour l'authentification, vous avez besoin de la politique suivante pour qu'un domaine IoT puisse lire la clé secrète dans une chambre forte spécifique.
Permettre à tout utilisateur IoT de lire les clés secrètes dans un compartiment et une chambre forte spécifiques pour un domaine IoT :
Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'}
- Vérifiez que vous disposez d'une chambre forte, voir Liste des chambres fortes ou créez une chambre forte. Pour plus d'informations, voir Gestion des chambres fortes.Politique de chambre forte
Pour créer une chambre forte, votre utilisateur doit ajouter des politiques au compartiment dans lequel vous voulez créer une chambre forte et une clé.
Un groupe d'utilisateurs gère les chambres fortes pour un compartiment spécifique.
Allow group <group-name> to manage vaults in compartment <compartment-name> - Après avoir créé une chambre forte, vous devez disposer d'une clé de chiffrement symétrique (HSM) protégée par matériel existante dans Oracle Cloud Infrastructure (OCI). Pour vérifier si vous disposez d'une clé de chiffrement principale, voir Liste des clés. Ou pour créer une nouvelle clé qui utilise le mode de protection HSM, voir Création d'une clé de chiffrement principale.
Pour plus d'informations, voir Aperçu des chambres fortes et du service de gestion des clés et Rotation d'une clé.
Politique cléUn groupe d'utilisateurs gère les clés pour un compartiment spécifique.
Allow group <group-name> to manage keys in compartment <compartment-name>
Étape 1 : Créer une clé secrète
Le secret en texte brut est le mot de passe de l'appareil. L'utilisation d'une clé secrète n'est pas recommandée pour la production, utilisez uniquement les clés secrètes de chambre forte pour tester la configuration.
Lorsque vous êtes connecté à l'appareil, utilisez le contenu secret en texte brut. Pour plus d'informations, voir Gestion des clés secrètes.
Étape 2 : Créer une instance de jumeau numérique avec un ID d'authentification secrète
Pour authentifier un appareil pour envoyer des données, créez une instance de jumeau numérique à l'aide du paramètre --auth-id avec le paramètre <secret-OCID> créé à l'étape précédente. Utilisez cette commande et ces paramètres pour créer une instance de jumeau numérique qui utilise une clé secrète pour l'authentification.
- Pour la valeur du paramètre
--external-key, remplacez<device-username-or-generated>par le nom d'utilisateur de l'appareil ou, si vous n'incluez pas la clé externe, elle est générée et apparaît dans la réponse. - Remplacez
<secret-OCID>par l'OCID de la clé secrète à utiliser.
oci iot digital-twin-instance create --iot-domain-id <iot-domain-OCID> --auth-id <secret-OCID> --external-key <device-username-or-generated>Pour obtenir la liste complète des paramètres de l'interface de ligne de commande, voir oci iot digital-twin-instance create et voir Création d'une instance de jumeau numérique pour plus d'informations.
Vous pouvez également mettre à jour le paramètre --auth-id d'une instance de jumeau numérique existante avec l'OCID d'une clé secrète.
Étape 3 : Envoyer les données
Envoyez des données pour tester votre configuration.
- Nom d'utilisateur de l'appareil : Utilisez
external-keyde l'instance jumeau numérique comme nom d'utilisateur de l'appareil. - Mot de passe de l'appareil : Est associé à l'ID authentification de l'instance de jumeau numérique. Si l'instance de jumeau numérique utilise un OCID de clé secrète de chambre forte pour l'authentification, utilisez le contenu de clé secrète en texte brut comme mot de passe de l'appareil.
Voir Obtention du contenu d'une clé secrète, Voir les détails d'une clé secrète ou Voir le contenu et les propriétés d'une clé secrète et les versions de celle-ci (ensembles de clés secrètes) pour trouver les détails de la clé secrète.
L'utilisation d'une clé secrète de chambre forte comme mot de passe de périphérique est recommandée uniquement pour les tests et non pour la production. Pour l'environnement de production, l'instance de jumeau numérique doit utiliser un certificat mTLS pour l'authentification.
Utilisation de Curl
Composants de style POSIX : Utilisez cette commande
curllors de l'utilisation de bash, zsh, terminal macOS, Linux ou Git Bash sous Windows.curl -u '<digital-twin-instance-external-key>:<device-password>' \ -H 'Content-Type: text/plain' \ -d 'sample data 1' \ 'https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic'Windows PowerShell : Utilisez cette commande
curl.exepour envoyer une demande POST avec un corps de demande à l'aide de-d.curl.exe -u "<digital-twin-instance-external-key>:<device-password>" ` -H "Content-Type: text/plain" ` -d "sample data 1" ` "https://<iot-domain-short-id>.device.iot.<region>.oci.oraclecloud.com/sampletopic"Lorsque vous avez terminé l'étape 4 : Créer une instance de jumeau numérique, si vous avez défini la valeur du paramètre de clé externe avec des guillemets, vous devez inclure les guillemets lorsque vous envoyez des données :
"external-key". Pour citer les meilleures pratiques, voir Dépannage.Utilisez n'importe quel client MQTT, cet exemple utilise MQTTX avec les paramètres suivants.
- Pour télécharger et configurer MQTTX, suivez ces instructions, voir Introduction à MQTTX. Ouvrez MQTTX.
- Sélectionnez + Nouvelle connexion pour créer une nouvelle connexion.
- Entrez la valeur
<unique-id>de la clé externe comme nom d'utilisateur. Vous pouvez trouver la clé externe dans la réponseoci iot digital-twin-instance create, à l'étape 4 précédente : Créer une instance de jumeau numérique :"external-key": "<unique-id>" - Entrez le mot de passe de l'appareil. Si vous effectuez un test avec une clé secrète de chambre forte, utilisez le contenu de clé secrète en texte brut. Pour un environnement de production sécurisé, utilisez un certificat mTLS.
- Entrez l'hôte. Sélectionnez le protocole
mqtts://dans la liste déroulante des hôtes et entrez l'hôte de l'appareil :<domain-short-id>.device.iot.<region>.oci.oraclecloud.comdans le domaine IoT. - Entrez le port, par exemple :
8883Note
Actuellement, MQTT Secure (MQTTS) n'est pris en charge qu'avec le port8883. - Activez l'option SSL/TLS.
- Activez l'option SSL Secure.
- Pour le certificat, sélectionnez l'option Certificat de serveur signé par une autorité de certification.
- Lorsque vous configurez la connexion MQTTX, choisissez intentionnellement le comportement de la session. Utilisez
clean sessionpour une reconnexion sans état ou désactivez une session propre avec un ID client stable pour une session persistante qui reprend des abonnements existants. Le paramètreLast-Will-Retaincontrôle uniquement si le message Dernière volonté est conservé et ne contrôle pas la persistance de l'abonnement. - Réglez la valeur de Dernière volonté QoS à 1.
- Sélectionnez Connexion.
Une fois ces étapes terminées, vous disposez d'une instance de jumeau numérique dans la plate-forme IoT qui peut recevoir des données à partir d'un appareil.
Mettre à jour une clé secrète ou en créer une nouvelle
Meilleures pratiques de rotation des clés secrètes
Utilisez un cycle de vie défini pour les données d'identification de l'appareil rotatif stockées dans les clés secrètes du service de chambre forte OCI. Effectuez une rotation régulière du contenu des clés secrètes afin de réduire l'exposition aux données d'identification et de prendre en charge les exigences de vérification/conformité.
Politique de référence recommandée : Effectuer une rotation du contenu des clés secrètes tous les 90 à 180 jours, vérifier la fréquence de rotation chaque année et effectuer une rotation immédiate lorsqu'un événement de sécurité se produit.
Effectuer une rotation immédiate du contenu de clé secrète lorsque le risque change, par exemple :
- compromission secrète présumée ou accès non autorisé.
- Incident de sécurité de l'appareil ou de l'intégration.
- Modifications de la politique ou de la conformité qui nécessitent une durée de vie des données d'identification plus courte.
Dans la mesure du possible, utilisez l'automatisation pour des fenêtres de rotation prévisibles et une rotation manuelle pour les événements d'urgence.
Mettre à jour une clé secrète existante (OCID de la même clé secrète)
Utilisez la mise à jour d'une clé secrète existante pour la rotation. Cette option conserve le même OCID de clé secrète et tient à jour le cycle de vie :
- Utilisation de la console : Créez une nouvelle version de la clé secrète, puis modifiez les propriétés de la clé secrète si nécessaire.
- Utilisation de l'interface de ligne de commande ou de l'API : Mettez à jour le contenu de la clé secrète; OCI crée automatiquement une nouvelle version de clé secrète.
- Comportement en cas de temps d'arrêt nul : L'OCID de la clé secrète reste le même, de sorte que l'instance de jumeau numérique peut continuer à utiliser
--auth-idexistante. - Disponibilité pour le repositionnement : Les versions précédentes restent disponibles (à moins d'être supprimées) pour un repositionnement, si nécessaire.
Créer une nouvelle clé secrète (nouvel OCID de clé secrète)
Utilisez une nouvelle clé secrète lorsque vous avez besoin d'un nouvel OCID de clé secrète avec un cycle de vie indépendant. Voici quelques exemples d'utilisation :
- Données d'identification uniques : Une clé secrète par appareil ou par instance de jumeau numérique.
- Séparation de l'environnement : Différentes politiques, compartiments, chambres fortes ou limites de gouvernance.
- Nouvelles exigences de responsabilité ou d'attribution de nom : Nettoyez la séparation pour les opérations et la vérification.
Après avoir créé une nouvelle clé secrète, mettez à jour l'instance de jumeau numérique avec la nouvelle clé --auth-id.
Liste de vérification de validation après rotation de clé secrète
- Vérifiez que la nouvelle version de clé secrète est active et récupérable.
- Vérifiez que l'instance de jumeau numérique résout toujours le
--auth-idconfiguré. - Valider l'authentification de l'appareil et le flux de données sur HTTPS ou MQTTS.
- Enregistrer la date de rotation, la version de clé secrète et les résultats de test pour les preuves de vérification.
Pour des contrôles de cycle de vie supplémentaires, voir Mise à jour des règles d'une clé secrète, Règles de clé secrète et FAQ sur la clé secrète.
Dépannage des erreurs d'autorisation
Erreur 404 - Erreur de service : NotAuthorizedOrNotFound
Si vous recevez un message d'erreur du service IoT lié à l'autorisation, il peut s'agir d'une clé secrète ou du paramètre d'ID authentification --auth-id sur l'instance de jumeau numérique. Vérifiez que ces valeurs sont correctes :
- Vérifiez que le paramètre
--auth-idde l'instance de jumeau numérique contient l'OCID de clé secrète correct. - Confirmez que vous disposez de la politique dans le compartiment correspondant pour la chambre forte, la clé secrète ou la ressource IoT associée.
- Dans le service de gestion des clés secrètes, vérifiez que la clé secrète est active, listez les clés secrètes ou consultez le contenu d'une clé secrète.
Si vous créez une instance de jumeau numérique avec cette réponse 404 :
...ServiceError:
{
"client_version": "Oracle-PythonSDK/2.161.0, Oracle-PythonCLI/3.68.0",
"code": "NotAuthorizedOrNotFound",
"logging_tips": "Please run the OCI CLI command using --debug flag to find more debug information.",
"message": "Resource Auth id with OCID [ocid1.vaultsecret.oc1.iad.unique-id] not found",
"opc-request-id": "unique-id",
"operation_name": "create_digital_twin_instance",
"request_endpoint": "POST https://iot.region.oci.oraclecloud.com/20250531/digitalTwinInstances",
"status": 404...En général, c'est pour l'une de ces raisons :
- La ressource n'existe pas. Pour confirmer les clés secrètes auxquelles vous avez accès, utilisez la commande
oci secrets secret-bundle get, voir la mesure corrective ci-dessous.
oci secrets secret-bundle get --secret-id ocid1.vaultsecret.oc1.iad.unique-id - Vous n'avez pas la politique appropriée pour le domaine IoT pour lire les données d'identification de la clé secrète de la chambre forte. Ajoutez cette politique au compartiment pour la chambre forte afin que le domaine IoT puisse lire les clés secrètes dans une chambre forte spécifique.
Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'}- La clé secrète peut ne pas être active.