Secrets für eine digitale Zwillingsinstanz erstellen und verwalten
Wenn Sie Daten von einem Gerät erhalten, müssen Sie die Authentifizierung mit Ihrer digitalen Zwillingsinstanz verwenden. In diesem Szenario wird erläutert, wie Sie ein Secret zur Authentifizierung einer digitalen Zwillingsinstanz für ein Gerät verwenden.
Das Secret ist das Gerätekennwort. Die Verwendung eines Secrets wird für die Produktion nicht empfohlen. Verwenden Sie zum Testen der Konfiguration nur Vault Secrets. Verwenden Sie für die Produktion ein mTLS-Zertifikat zur Authentifizierung bei digitalen Zwillingsinstanzen.
Aufgaben
- Secret erstellen
- Authentifizierungs-ID für digitale Zwillingsinstanzen erstellen oder aktualisieren
- Daten senden
- Secrets aktualisieren und verwalten
- Fehlerbehebung
- Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen verfügen. Ein Administrator erteilt Zugriff, indem er die erforderlichen Policys erstellt. Weitere Informationen finden Sie unter Voraussetzungen für die Policys, die für Secrets erforderlich sind, und unter Policy-Details für die Internet of Things-(IoT-)Plattform für Policys, die für IoT-Ressourcen erforderlich sind.
- Fügen Sie diese Policys zum Compartment hinzu, um den Zugriff zuzulassen.IoT Domain Vault Secret-Policy
Wenn Sie eine digitale Zwillingsinstanz erstellen, wenn Sie ein Secret zur Authentifizierung verwenden, benötigen Sie die folgende Policy, damit eine IoT-Domain das Secret in einem bestimmten Vault lesen kann.
Lesen von Secrets in einem bestimmten Compartment und Vault für eine IoT-Domain durch einen IoT-Benutzer zulassen:
Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'}
- Bestätigen Sie, dass Sie einen Vault haben. Informationen hierzu finden Sie unter Vaults auflisten oder Vault erstellen. Weitere Informationen finden Sie unter Vaults verwalten.Vault-Policy
Um einen Vault zu erstellen, muss der Benutzer dem Compartment, in dem Sie einen Vault und Schlüssel erstellen möchten, Policys hinzufügen.
Beispiel: Eine Gruppe von Benutzern verwaltet Vaults für ein bestimmtes Compartment.
Allow group <group-name> to manage vaults in compartment <compartment-name> - Nachdem Sie einen Vault erstellt haben, muss in Oracle Cloud Infrastructure (OCI) ein hardwaregeschützter, symmetrischer (HSM-)Verschlüsselungsschlüssel vorhanden sein. Informationen zum Prüfen, ob ein Masterverschlüsselungsschlüssel vorhanden ist, finden Sie unter Schlüssel auflisten. Um einen neuen Schlüssel zu erstellen, der den HSM-Schutzmodus verwendet, lesen Sie Masterverschlüsselungsschlüssel erstellen.
Weitere Informationen finden Sie unter Überblick über Vaults und Key Management und Schlüssel rotieren.
Schlüssel-PolicyLassen Sie uns von einer Benutzergruppe Schlüssel für ein bestimmtes Compartment verwalten.
Allow group <group-name> to manage keys in compartment <compartment-name>
Schritt 1: Secret erstellen
Das Klartext-Secret ist das Gerätekennwort. Die Verwendung eines Secrets wird für die Produktion nicht empfohlen. Verwenden Sie zum Testen der Konfiguration nur Vault Secrets.
Wenn Sie eine Verbindung zum Gerät herstellen, verwenden Sie den einfachen Secret-Inhalt. Weitere Informationen finden Sie unter Secrets verwalten.
Schritt 2: Erstellen einer digitalen Zwillingsinstanz mit einer geheimen Authentifizierungs-ID
Um ein Gerät zu authentifizieren, um Daten zu senden, erstellen Sie mit dem Parameter --auth-id eine digitale Zwillingsinstanz mit dem im vorherigen Schritt erstellten <secret-OCID>. Verwenden Sie diesen Befehl und diese Parameter, um eine digitale Zwillingsinstanz zu erstellen, die ein Secret zur Authentifizierung verwendet.
- Ersetzen Sie für den Parameterwert
--external-key<device-username-or-generated>durch den Gerätenamen. Wenn Sie den externen Schlüssel nicht einschließen, wird er generiert und in der Antwort angezeigt. - Ersetzen Sie
<secret-OCID>durch die Secret-OCID für das zu verwendende Secret.
oci iot digital-twin-instance create --iot-domain-id <iot-domain-OCID> --auth-id <secret-OCID> --external-key <device-username-or-generated>Eine vollständige Liste der CLI-Parameter finden Sie unter oci iot digital-twin-instance create. Weitere Informationen finden Sie unter Digital Twin Instance erstellen.
Alternativ können Sie den Parameter --auth-id einer vorhandenen digitalen Zwillingsinstanz mit der OCID eines Secrets aktualisieren.
Schritt 3: Daten senden
Senden Sie Daten, um Ihre Konfiguration zu testen.
- Gerätebenutzername: Verwenden Sie
external-keyaus der digitalen Zwillingsinstanz als Gerätebenutzernamen. - Gerätekennwort: Ist mit der Authentifizierungs-ID für die Instanz des digitalen Zwillings verknüpft. Wenn die Instanz des digitalen Zwillings eine Vault-Secret-OCID zur Authentifizierung verwendet, verwenden Sie den Secret-Inhalt im Klartext als Gerätekennwort.
Informationen zu den Details des Secrets finden Sie unter Inhalt eines Secrets abrufen, Details eines Secrets anzeigen oder Inhalt und Eigenschaften eines Secrets und der Secret-Versionen (Secret-Bundles) anzeigen.
Die Verwendung eines Vault Secrets als Gerätekennwort wird nur zum Testen und nicht zur Produktion empfohlen. Für die Produktion sollte die Instanz des digitalen Zwillings ein mTLS-Zertifikat zur Authentifizierung verwenden.
Curl verwenden
Shells im POSIX-Stil: Verwenden Sie diesen Befehl
curl, wenn Sie bash, zsh, macOS-Terminal, Linux oder Git Bash unter Windows verwenden.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: Verwenden Sie diesen Befehl
curl.exe, um eine POST-Anforderung mit einem Anforderungsbody mit-dzu senden.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"Wenn Sie Schritt 4: Digitale Zwillingsinstanz erstellen abgeschlossen haben und den Wert des externen Schlüsselparameters mit Anführungszeichen definiert haben, müssen Sie die Anführungszeichen beim Senden der Daten angeben:
"external-key". Best Practices für die Angebotserstellung finden Sie unter Fehlerbehebung.Verwenden Sie einen beliebigen MQTT-Client. In diesem Beispiel wird MQTTX mit den folgenden Einstellungen verwendet.
- Laden Sie MQTTX herunter, und richten Sie es ein. Befolgen Sie diese Anweisungen unter Erste Schritte mit MQTTX. Öffnen Sie MQTTX.
- Wählen Sie + Neue Verbindung aus, um eine neue Verbindung zu erstellen.
- Geben Sie den Wert Externer Schlüssel
<unique-id>als Benutzername ein. Den externen Schlüssel finden Sie in der Antwortoci iot digital-twin-instance createaus dem vorherigen Schritt 4: Digitale Zwillingsinstanz erstellen:"external-key": "<unique-id>" - Geben Sie das Passwort für das Gerät ein. Wenn Sie mit einem Vault Secret testen, verwenden Sie den Secret-Inhalt im Klartext. Verwenden Sie für eine sichere Produktionsumgebung ein mTLS-Zertifikat.
- Geben Sie den Host ein. Wählen Sie das Protokoll
mqtts://aus der Host-Dropdown-Liste, und geben Sie den Gerätehost<domain-short-id>.device.iot.<region>.oci.oraclecloud.comaus der Domain IoT ein. - Geben Sie den Port ein. Beispiel:
8883Hinweis
Derzeit wird MQTT Secure (MQTTS) nur über Port8883unterstützt. - Schalten Sie SSL/TLS ein.
- Aktivieren Sie SSL Secure umschalten.
- Wählen Sie für das Zertifikat die Option CA-signiertes Serverzertifikat.
- Wenn Sie die MQTTX-Verbindung konfigurieren, wählen Sie das Sessionverhalten absichtlich aus. Verwenden Sie
clean sessionfür eine zustandslose Neuverbindung, oder deaktivieren Sie eine saubere Session mit einer stabilen Client-ID für eine persistente Session, die vorhandene Abonnements wiederaufnimmt. Die EinstellungLast-Will-Retainsteuert nur, ob die Nachricht "Letzter Wille" beibehalten wird, und kontrolliert nicht die Abonnementpersistenz. - Setzen Sie Last Will QoS auf 1.
- Wählen Sie Verbinden aus.
Nachdem Sie diese Schritte abgeschlossen haben, befindet sich eine digitale Zwillingsinstanz in der IoT-Plattform, die Daten von einem Gerät empfangen kann.
Secret aktualisieren oder neues Secret erstellen
Best Practices für geheime Rotationen
Verwenden Sie einen definierten Lebenszyklus zum Rotieren von Gerätezugangsdaten, die in OCI Vault Secrets gespeichert sind. Drehen Sie Secret-Inhalte regelmäßig, um das Vorhandensein von Zugangsdaten zu reduzieren und Audit-/Complianceanforderungen zu unterstützen.
Empfohlene Baseline-Policy: Rotieren Sie Secret-Inhalte alle 90 bis 180 Tage, prüfen Sie die Rotationsfrequenz jährlich, und rotieren Sie sofort, wenn ein Sicherheitsereignis eintritt.
Secret-Inhalte sofort rotieren, wenn sich das Risiko ändert, wie:
- Verdacht auf geheime Kompromisse oder unbefugten Zugriff.
- Ein Geräte- oder Integrationssicherheitsvorfall.
- Richtlinien- oder Complianceänderungen, die eine kürzere Lebensdauer der Zugangsdaten erfordern.
Wenn möglich, verwenden Sie Automatisierung für vorhersehbare Rotationsfenster und manuelle Rotation für Notfälle.
Vorhandenes Secret aktualisieren (Identische Secret-OCID)
Mit der Option "Vorhandenes Secret für Rotation aktualisieren" behält diese Option dieselbe Secret-OCID bei und verwaltet den Lebenszyklus:
- Konsole verwenden: Erstellen Sie eine neue Version des Secrets, und bearbeiten Sie gegebenenfalls die Secret-Eigenschaften.
- CLI oder API verwenden: Secret-Inhalte aktualisieren. OCI erstellt automatisch eine neue Secret-Version.
- Verhalten ohne Ausfallzeit: Die Secret-OCID bleibt unverändert, sodass die Instanz des digitalen Zwillings die vorhandene
--auth-idweiterhin verwenden kann. - Rollback-Bereitschaft: Frühere Versionen bleiben verfügbar (es sei denn, sie werden gelöscht), falls erforderlich, für ein Rollback.
Neues Geheimnis erstellen (neue Secret-OCID)
Verwenden Sie ein neues Secret, wenn Sie eine neue Secret-OCID mit einem unabhängigen Lebenszyklus benötigen. Typische Anwendungsfälle sind:
- Eindeutige Zugangsdaten: Ein Secret pro Gerät oder pro Instanz eines digitalen Zwillings.
- Umgebungstrennung: Verschiedene Policys, Compartments, Vaults oder Governance-Grenzen.
- Neue Eigentümer- oder Benennungsanforderungen: Bereinigte Trennung für Vorgänge und Auditing.
Nachdem Sie ein neues Secret erstellt haben, aktualisieren Sie die Instanz des digitalen Zwillings mit der neuen --auth-id.
Validierungscheckliste nach Secret-Rotation
- Stellen Sie sicher, dass die neue Secret-Version aktiv ist und abgerufen werden kann.
- Stellen Sie sicher, dass die Instanz des digitalen Zwillings weiterhin die konfigurierte
--auth-idauflöst. - Geräteauthentifizierung und Datenfluss über HTTPS oder MQTTS validieren.
- Auf dieser Seite erfassen Sie Rotationsdatum, Secret-Version und Testergebnisse für Nachweise zu Audits.
Weitere Lebenszykluskontrollen finden Sie unter Secret-Regeln aktualisieren, Secret-Regeln und Secret-FAQs.
Fehler bei der Autorisierung beheben
404-Fehler - Servicefehler: NotAuthorizedOrNotFound
Wenn Sie eine mit der Autorisierung verknüpfte Fehlermeldung des IoT-Service erhalten, könnte sie sich auf ein Secret oder den Parameter --auth-id der Authentifizierungs-ID in der Instanz des digitalen Zwillings beziehen. Bestätigen Sie, dass die folgenden Werte korrekt sind:
- Stellen Sie sicher, dass der Parameter
--auth-idder digitalen Zwillingsinstanz die korrekte Secret-OCID enthält. - Vergewissern Sie sich, dass die Policy im entsprechenden Compartment für die verknüpfte Vault-, Secret- oder IoT-Ressource vorhanden ist.
- Bestätigen Sie im Secret Management-Service, dass das Secret aktiv ist, Secrets auflisten oder Inhalt eines Secrets anzeigen.
Wenn Sie eine Instanz mit digitalem Zwilling erstellen mit dieser 404-Antwort:
...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...In der Regel ist dies einer der folgenden Gründe:
- Ressource ist nicht vorhanden. Um die Secrets zu bestätigen, auf die Sie Zugriff haben, verwenden Sie den Befehl
oci secrets secret-bundle get. Weitere Informationen finden Sie unter "Beheben".
oci secrets secret-bundle get --secret-id ocid1.vaultsecret.oc1.iad.unique-id - Sie verfügen nicht über die richtige Policy für die Domain IoT, um die Vault-Secret-Zugangsdaten zu lesen. Fügen Sie diese Policy zum Compartment für den Vault hinzu, damit die IoT-Domain Secrets in einem bestimmten Vault lesen kann.
Allow any-user to {SECRET_BUNDLE_READ, SECRET_READ} in compartment <compartment-name> where ALL {request.principal.type = 'iotdomain', target.vault.id = '<vault-OCID>'}- Das Secret ist möglicherweise nicht aktiv.