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

  1. Secret erstellen
  2. Authentifizierungs-ID für digitale Zwillingsinstanzen erstellen oder aktualisieren
  3. Daten senden
  4. Secrets aktualisieren und verwalten
  5. Fehlerbehebung
Bevor Sie beginnen
  • 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>'}
Um ein Secret zu erstellen, benötigen Sie einen Vault und einen Schlüssel:
  • 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-Policy

    Lassen 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.

  1. Wählen Sie auf der Listenseite Secrets die Option Secret erstellen aus. Wenn Sie Hilfe beim Suchen der Listenseite benötigen, finden Sie weitere Informationen unter Secrets auflisten.
  2. Wählen Sie das Compartment aus, in dem Sie das Secret erstellen möchten. Als Best Practice wird empfohlen, das Compartment mit den zugehörigen IoT-Ressourcen zu verwenden.
  3. Geben Sie einen Namen ein, um das Secret zu kennzeichnen. Geben Sie keine vertraulichen Informationen ein.
  4. Optional können Sie eine Beschreibung eingeben, um das Secret zu identifizieren.
  5. Wählen Sie den Vault aus, der den Verschlüsselungsschlüssel enthält. Wenn sich der Vault in einem anderen Compartment befindet, geben Sie mit dem Selektor Vault Compartment das Compartment des Vaults an.
  6. Wählen Sie den Master-Verschlüsselungsschlüssel aus, den Sie zum Verschlüsseln der Secret-Inhalte verwenden möchten, während sie in den Vault importiert werden. Wenn sich der Schlüssel in einem anderen Compartment befindet, geben Sie mit dem Selektor Verschlüsselungsschlüssel-Compartment das Compartment des Verschlüsselungsschlüssels an.
    • Der Schlüssel muss sich im selben Vault wie das Secret befinden.
    • Sie müssen einen symmetrischen Schlüssel auswählen, um das Secret zu erstellen. Asymmetrische Schlüssel werden für die Secret-Erstellung nicht unterstützt.
  7. Wählen Sie Manuelle Secret-Generierung aus, um den Secret-Inhalt manuell anzugeben. Machen Sie folgende Angaben:
    • Geben Sie in der Secret-Type-Vorlage das Format der Secret-Inhalte an, die Sie bereitstellen, indem Sie eine Vorlage auswählen. Sie können Secret-Inhalte im Klartext angeben, wenn Sie ein Vault Secret oder ein Vault Secret-Version mit der Konsole erstellen. Secret-Inhalte sind jedoch vor dem Senden an den Service base64 codiert. Die Konsole codiert automatisch Secret-Inhalte für Sie, die im Klartext angegeben sind.
    • Geben Sie unter Secret-Inhalt den Inhalt des Secrets ein. Die maximal zulässige Größe eines Secret Bundles beträgt 25 KB. Wenn Sie später Daten an und von einem Gerät senden, verwenden Sie dieses Klartext-Secret als Gerätekennwort.
  8. Geben Sie im Abschnitt Secret-Rotation die folgenden Details an:
    • Zielsystemtyp: Wählen Sie den Zielsystemtyp als autonome KI-Datenbank oder -Funktion aus, und geben Sie die entsprechende Zielsystem-ID an.
    • Zielsystem-ID: Die System-ID wird automatisch für den ausgewählten Zielsystemtyp aufgefüllt.
    • Automatische Rotation aktivieren: Aktivieren Sie das Kontrollkästchen, um die automatische Rotation zu aktivieren.
    • Rotationsintervall: Wählen Sie optional das Rotationsintervall aus, um das Secret regelmäßig zu aktualisieren.
    Hinweis

    Wenn Sie keinen Zielsystemtyp und keine Zielsystem-ID angeben, ist das Kontrollkästchen nicht für die automatische Rotation aktiviert.
  9. Um eine Regel zum Verwalten der Verwendung von Vault Secrets anzuwenden, wählen Sie im Abschnitt "Regeln" die Option "Weitere Regel" aus. Sie können entweder eine Regel zur Wiederverwendung von Secret-Inhalten in den verschiedenen Versionen eines Secrets erstellen oder mit einer Regel angeben, wann die Secret-Inhalte ablaufen. Weitere Informationen zu Regeln finden Sie unter Secret-Regeln.
    Hinweis

    Das häufige Aktualisieren eines Secrets mit neuen Secret-Inhalten trägt zur Sicherheit von Zugangsdaten vor Benutzern mit böswilligen Absichten bei. Zumindest verkürzen Sie damit den Zeitraum, in dem kompromittierte Zugangsdaten unwissentlich verwendet oder verbreitet werden können.
  10. Um Tags auf das Secret anzuwenden, wählen Sie optional Tag hinzufügen aus. Wenn Sie über Berechtigungen zum Erstellen einer Ressource verfügen, sind Sie auch berechtigt, Freiformtags auf diese Ressource anzuwenden. Um ein definiertes Tag zuzuweisen, benötigen Sie die Berechtigungen zum Verwenden des Tag-Namespace. Weitere Informationen zum Tagging finden Sie unter Ressourcentags. Wenn du nicht sicher bist, ob du Tags anwenden solltest, überspringen sie diese Option, oder fragen Sie den Administrator. Sie können die Tags auch später auch noch anwenden.
  11. Wählen Sie Secret erstellen aus.

    Eine vollständige Liste der Einstellungen finden Sie unter Secret erstellen. Best Practices 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.

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 -d zu 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.

    1. Laden Sie MQTTX herunter, und richten Sie es ein. Befolgen Sie diese Anweisungen unter Erste Schritte mit MQTTX. Öffnen Sie MQTTX.
    2. Wählen Sie + Neue Verbindung aus, um eine neue Verbindung zu erstellen.
    3. Geben Sie den Wert Externer Schlüssel <unique-id> als Benutzername ein. Den externen Schlüssel finden Sie in der Antwort oci iot digital-twin-instance create aus dem vorherigen Schritt 4: Digitale Zwillingsinstanz erstellen:
      "external-key": "<unique-id>"
    4. 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.
    5. 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.com aus der Domain IoT ein.
    6. Geben Sie den Port ein. Beispiel: 8883
      Hinweis

      Derzeit wird MQTT Secure (MQTTS) nur über Port 8883 unterstützt.
    7. Schalten Sie SSL/TLS ein.
    8. Aktivieren Sie SSL Secure umschalten.
    9. Wählen Sie für das Zertifikat die Option CA-signiertes Serverzertifikat.
    10. Wenn Sie die MQTTX-Verbindung konfigurieren, wählen Sie das Sessionverhalten absichtlich aus. Verwenden Sie clean session fü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 Einstellung Last-Will-Retain steuert nur, ob die Nachricht "Letzter Wille" beibehalten wird, und kontrolliert nicht die Abonnementpersistenz.
    11. Setzen Sie Last Will QoS auf 1.
    12. 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:

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

  1. Stellen Sie sicher, dass die neue Secret-Version aktiv ist und abgerufen werden kann.
  2. Stellen Sie sicher, dass die Instanz des digitalen Zwillings weiterhin die konfigurierte --auth-id auflöst.
  3. Geräteauthentifizierung und Datenfluss über HTTPS oder MQTTS validieren.
  4. 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-id der 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".
Mit diesem Befehl können Sie die Secrets bestätigen, auf die Sie Zugriff haben. Informationen zum Zugriff auf Ihre Secrets über die Konsole oder API finden Sie unter Secrets auflisten.
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.