HUAWEI CLOUD KMS + CSMS → STACKIT · TUTORIAL

Huawei KMS und CSMS zu STACKIT KMS und Secrets Manager

Schlüssel und Secrets sind der Teil einer Umgebung, der sich nicht einfach mitkopieren lässt und nicht verloren gehen darf. Ein Huawei-Cloud-KMS-Schlüssel wird zu einem STACKIT-KMS-Schlüssel, aber ohne sein Schlüsselmaterial; die damit geschützten Daten werden deshalb neu verschlüsselt. Ein CSMS-Secret wird zu einem Secret im STACKIT Secrets Manager, dessen Werte ein Operator schreibt und dessen Clients über eine Vault-artige Schnittstelle lesen. Dieses Tutorial bewertet zwei Schlüssel und zwei Secrets und begleitet sie durch die Migration.

Zwei Schlüssel und ein Secret, bewertet

Eine kleine Huawei-Cloud-Umgebung, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links ein symmetrischer Schlüssel, ein Signaturschlüssel und ein Secret, das den ersten Schlüssel nennt. Rechts das Ergebnis für Schlüssel und Secret, Auszüge aus assessment.json, die Werte so, wie der Lauf sie geschrieben hat.

Beispieleingabemain.tf
resource "huaweicloud_kms_key" "data" {
  key_alias        = "payments-data"
  key_algorithm    = "AES_256"
  key_description  = "Encrypts payment exports"
  pending_days     = "30"
  rotation_enabled = true
}

resource "huaweicloud_kms_key" "signing" {
  key_alias     = "payments-signing"
  key_algorithm = "RSA_2048"
  key_usage     = "SIGN_VERIFY"
  pending_days  = "30"
}

resource "huaweicloud_csms_secret" "db" {
  name        = "payments-db"
  secret_text = jsonencode({ username = "app", password = var.db_password })
  kms_key_id  = huaweicloud_kms_key.data.id
}
StackToIT-Bewertungassessment.json
{
  "id": "huaweicloud_kms_key.data",
  "result": {
    "class": "RECONFIGURE",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT KMS"
    },
    "reason": "A KMS key becomes a STACKIT KMS key. Key material of the source does not move, so data encrypted with it is re-encrypted."
  }
}

{
  "id": "huaweicloud_csms_secret.db",
  "result": {
    "class": "RECONFIGURE",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT Secrets Manager"
    },
    "reason": "A CSMS secret becomes a secret in STACKIT Secrets Manager. Values are moved by an operator, and applications change how they read them."
  }
}
  • Schlüsselmaterial bleibt zurück

    Der Schlüssel ist RECONFIGURE mit Konfidenz MEDIUM. Der Lauf hält fest, dass das Schlüsselmaterial der Quelle nicht umzieht und die damit verschlüsselten Daten daher im Ziel neu verschlüsselt werden.

  • Werte überträgt eine Person

    Auch das Secret ist RECONFIGURE. Seinen Wert schreibt ein Operator, und Anwendungen ändern, wie sie ihn lesen. Die Bewertung fragt nie nach einem Secret-Wert und übernimmt keinen.

  • Benannt, nicht entschieden

    Für den ersten Schlüssel nennt der Lauf key_algorithm, key_alias, key_description, pending_days und rotation_enabled als Einstellungen, die Ihre Architekten übernehmen. Für das Secret sind es kms_key_id, name und secret_text.

Die vorgeschlagene Reihenfolge und wer sie verantwortet

Weil das Datenbank-Secret den Datenschlüssel nennt, wartet es auf ihn. Die anderen drei Einheiten starten gemeinsam. Der zweite Ausschnitt zeigt eine Lücke, die Sie früh schließen sollten.

Wellenmigration/technical-sequencing.md
## Wave 1 — 3 unit(s)

| Unit | Class | Target |
|---|---|---|
| `huaweicloud_csms_secret.api` | RECONFIGURE / MEDIUM | STACKIT Secrets Manager |
| `huaweicloud_kms_key.data` | RECONFIGURE / MEDIUM | STACKIT KMS |
| `huaweicloud_kms_key.signing` | RECONFIGURE / MEDIUM | STACKIT KMS |

## Wave 2 — 1 unit(s)

| Unit | Class | Target |
|---|---|---|
| `huaweicloud_csms_secret.db` | RECONFIGURE / MEDIUM | STACKIT Secrets Manager |
Verantwortlicheexecution/manual/actions.md
4 manual steps have no owner role: no role follows from the plan for it, so nobody is named to carry it out. Assign an owner to each; until then the migration is not ready (each shows "Owner assignment required" under Who below).

- the owner table has no role for the category "security" of the unit (4 manual steps): the manual migration of huaweicloud_csms_secret.api, the manual migration of huaweicloud_csms_secret.db, the manual migration of huaweicloud_kms_key.data, the manual migration of huaweicloud_kms_key.signing

## Manual steps
  • Welle 1 und Welle 2

    Beide Schlüssel und das eigenständige Secret liegen in Welle 1. Das Secret, das huaweicloud_kms_key.data referenziert, liegt in Welle 2. Wellen sind ein Ausgangspunkt für Ihren Zeitplan, kein Zeitplan.

  • Für Sicherheit ist niemand benannt

    Die Zuständigkeitstabelle dieses Builds kennt keine Rolle für die Kategorie „security“; deshalb steht bei allen vier manuellen Schritten „Owner assignment required“. Benennen Sie eine verantwortliche Person für Schlüssel und Secrets, bevor der erste Schritt beginnt.

Die Migration in acht Schritten

  1. 1. Erfassen, was jeder Schlüssel schützt

    Das Terraform zeigt die Schlüssel und die Secrets, die auf sie verweisen. Es zeigt nicht jeden Dienst, der mit einem Schlüssel verschlüsselt. Listen Sie diese Verbraucher aus dem Quellkonto auf; jeder ist eine Aufgabe zum Neuverschlüsseln.

  2. 2. Jeden Schlüssel einem STACKIT-Algorithmus zuordnen

    Die KMS-Konzeptseite von STACKIT nennt AES 256 GCM für symmetrische Verschlüsselung, RSA OAEP mit 2048, 3072 und 4096 Bit (sowie 4096 Bit mit SHA-512) für asymmetrische Verschlüsselung, HMAC SHA256, SHA384 und SHA512 für Message Authentication Codes und ECDSA auf P-256, P-384 und P-521 für Signaturen. Der Signaturschlüssel der Demo ist RSA_2048 mit SIGN_VERIFY: Einen RSA-Signaturalgorithmus führt STACKIT nicht; der Schlüssel wird also zu einem ECDSA-Schlüssel, und jede prüfende Stelle ändert sich mit. SM4- und SM2-Schlüssel haben gar keinen Eintrag; entscheiden Sie den Ersatz, bevor Sie etwas bauen.

  3. 3. Key Ring und Schlüssel anlegen

    Bei STACKIT wird eine Schlüsselversion entweder vom System erzeugt oder über einen Wrapping Key importiert. Erzeugen Sie standardmäßig neue Schlüssel. Importieren Sie nur Schlüsselmaterial, das Sie selbst außerhalb von Huawei Cloud erzeugt haben: Laut Huaweis FAQ lässt sich ein CMK nicht aus dem KMS exportieren, und auch der Lauf geht davon aus, dass das Material nicht umzieht.

  4. 4. Daten neu verschlüsseln

    Stellen Sie jeden Verbraucher auf den neuen Schlüssel um und verschlüsseln Sie die Daten neu, die er hält. Das ist der lange Schritt, und deshalb muss der alte Schlüssel den Cutover überleben.

  5. 5. Secrets-Manager-Instanz und Benutzer anlegen

    Clients melden sich mit der Methode userpass am regionalen Endpunkt an. Planen Sie einen Benutzer pro Anwendung, nicht einen gemeinsamen.

  6. 6. Secrets in Wellenreihenfolge schreiben

    Schreiben Sie jeden Wert selbst, aus der führenden Quelle und nicht aus dem Terraform. Ein JSON-Secret wie die Datenbank-Zugangsdaten lässt sich ganz natürlich den Schlüssel-Wert-Paaren eines Secrets-Manager-Secrets zuordnen.

  7. 7. Lesezugriff der Anwendungen ändern

    Secrets Manager ist kompatibel mit Vault KV Version 2. Anwendungen tauschen den Huawei-SDK-Aufruf gegen einen Vault-Client-Aufruf und erneuern ihr Token, das standardmäßig 15 Minuten gilt.

  8. 8. Alte Schlüssel zuletzt stilllegen

    Huawei plant die Löschung eines Schlüssels nach einer Wartezeit von 7 bis 1096 Tagen. Planen Sie sie erst ein, wenn der letzte Verbraucher neu verschlüsselt und geprüft ist, und behandeln Sie einen gelöschten Schlüssel als unwiederbringlich.

Was aus jeder Einstellung wird

Huawei-Einstellung im BeispielWertBei STACKIT
key_algorithmAES_256 und RSA_2048AES_256 entspricht bei STACKIT aes_256_gcm. RSA_2048 steht in der Liste nur als OAEP-Verschlüsselungsschlüssel.
key_usageSIGN_VERIFY beim SignaturschlüsselSTACKIT KMS kennt einen Zweck zum Signieren und Prüfen, allerdings nur mit ECDSA (P-256, P-384, P-521). Ein RSA-Signaturschlüssel braucht einen neuen ECDSA-Schlüssel und angepasste Prüfstellen, oder die Entscheidung, weiter anderswo zu signieren.
rotation_enabledtrue beim DatenschlüsselDie STACKIT-Anleitung rotiert einen Schlüssel, indem sie eine neue Version anlegt („Rotate key“ im Portal); weder sie noch die Konzeptseite beschreibt einen automatischen Zeitplan. Planen Sie die Rotation als Betriebsaufgabe mit einer verantwortlichen Person.
pending_days30Eine Huawei-Einstellung für die Lösch-Wartezeit, 7 bis 1096 Tage. Am neuen Schlüssel gibt es sie nicht; nutzen Sie sie am Ende am alten Schlüssel.
secret_textJSON mit Benutzername und PasswortEin Secret ist eine Menge von Schlüssel-Wert-Paaren mit Versionen. Schreiben Sie jedes Feld als Paar.
kms_key_idDer DatenschlüsselDie Secrets-Manager-FAQ nennt keine Schlüsseleinstellung pro Secret. Behandeln Sie sie als nicht übernommen und klären Sie das Verschlüsselungsverhalten mit STACKIT.
namepayments-db und payments-api-tokenEin Pfad unter der Secrets-Manager-ID, die als Mount dient.

Die Zeilen folgen der Beispieleingabe. Huawei-CSMS-Secrets ohne gewählten Schlüssel nutzen den Standardschlüssel csms/default.

Ein Secret bei STACKIT schreiben und lesen

Die Befehle unten stammen wörtlich von der STACKIT-Seite zur Vault-CLI, in der dort gezeigten Reihenfolge. Ersetzen Sie die Platzhalter sowie den Beispielpfad app1/mysecret und das Paar foo=bar durch Ihre eigenen Werte (etwa payments/db mit Benutzername und Passwort); die Secrets-Manager-ID steht anstelle des üblichen Mount-Namens.

Anmeldenterminal
export VAULT_ADDR=https://prod.sm.eu01.stackit.cloud
vault login -method=userpass username=<username> password="<password>"
Schreiben und lesenterminal
vault kv put -mount=<secrets-manager-id> app1/mysecret foo=bar
vault kv get -mount=<secrets-manager-id> app1/mysecret
  • Versionen kosten Geld

    STACKIT berechnet pro Secret-Version, und ein Secret darf beliebig viele Versionen haben. Setzen Sie ein Versionslimit an der Instanz oder am Secret.

  • Gelöscht heißt weg

    STACKIT erklärt, einzelne Secrets oder Secrets Engines nicht wiederherstellen zu können. Behalten Sie das Quell-Secret, bis das neue echten Verkehr bedient hat.

Wo Huawei und STACKIT abweichen

  • Rotierte Secrets

    Huawei unterscheidet geteilte von rotierten Secrets, und rotierte decken Dienste wie RDS, GaussDB und DCS Redis ab. Die FAQ zum STACKIT Secrets Manager beschreibt versionierte Ablage und erwähnt keine automatische Rotation; wenn Sie sich heute darauf verlassen, planen Sie ihren Neuaufbau ein.

  • Größe und Format

    Ein CSMS-Secret darf bis zu 64 KB groß sein. Die für dieses Tutorial gelesenen STACKIT-Seiten nennen kein Größenlimit; klären Sie das Limit Ihrer Instanz, bevor Sie große Werte umziehen.

  • Schlüssellöschung ist endgültig

    Huaweis Provider akzeptiert für pending_days 7 bis 1.096 Tage. Behandeln Sie die Löschung als endgültig und planen Sie sie nicht vor geprüfter Neuverschlüsselung.

  • Kleinere Algorithmenauswahl

    Huaweis Provider akzeptiert AES_256, SM4, RSA_2048, RSA_3072, RSA_4096, EC_P256, EC_P384 und SM2. Die STACKIT-Auswahl unterscheidet sich: RSA dient nur der Verschlüsselung, EC den ECDSA-Signaturen, SM4 und SM2 fehlen. Für manche Schlüssel braucht es deshalb eine Designentscheidung statt einer bloßen Zuordnung.

Was Sie ändern, bevor Sie etwas anwenden

  • Verantwortliche zuweisen

    Ergänzen Sie für die vier Sicherheitsschritte eine verantwortliche Person, wie es die Datei der manuellen Schritte fordert.

  • Region beantworten

    Der Lauf fragt nach target.region (eu01 oder eu02) und zählt sie als die Anfrage, die den Entwurf blockiert. Übernehmen Sie sie aus inputs-template.yaml in Ihre Eingabedatei und übergeben Sie diese mit --inputs.

  • Secret-Werte aus dem Repository halten

    Das Beispiel enthält Platzhalter in einer Variablendatei nur, damit die Bewertung vollständig läuft. Echte Werte gehören in Ihren Secret-Speicher, nie in Terraform-Dateien.

  • Provider festschreiben

    Der Lauf warnt, dass keine Lock-Datei den huaweicloud-Provider festschreibt. Committen Sie .terraform.lock.hcl.

Fragen von Sicherheitsteams

Können wir einen Huawei-KMS-Schlüssel exportieren und bei STACKIT importieren?

Nein. Huaweis DEW-FAQ beantwortet die Frage, ob sich ein CMK aus dem KMS exportieren lässt, mit Nein, und der Lauf hält fest, dass das Schlüsselmaterial der Quelle nicht umzieht. STACKIT kann Schlüsselmaterial über einen Wrapping Key importieren, passend für Material, das Sie selbst anderswo erzeugt haben. Bei einem in Huawei KMS erzeugten Schlüssel planen Sie einen neuen Schlüssel und Neuverschlüsselung.

Schreibt StackToIT das Terraform für STACKIT KMS oder Secrets Manager?

Für eine Huawei-Cloud-Quelle in diesem Build nicht. Der Lauf benennt die Zielressourcen – Key Ring und Schlüssel sowie Secrets-Manager-Instanz und Benutzer – und führt die vier Einheiten als manuelle Schritte.

Brauchen unsere Anwendungen Codeänderungen?

Bei Secrets ja: Sie lesen über eine zu Vault KV Version 2 kompatible Schnittstelle statt über den Huawei-Aufruf und erneuern ein Token. Bei Schlüsseln wechselt der Aufruf zum Ver- oder Entschlüsseln auf die STACKIT-KMS-API.

Was liest die Bewertung aus unseren Secrets?

Nur die Terraform-Struktur. Sie fragt nie nach einem Secret-Wert und verbindet sich nicht mit Ihrem Huawei-Cloud-Konto.

Quellen

Ihr nächster Schritt: STACKIT.

Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.