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.
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
}{
"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.
## 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 |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 stepsWelle 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. 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. 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. 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. 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. 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. 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. 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. 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 Beispiel | Wert | Bei STACKIT |
|---|---|---|
| key_algorithm | AES_256 und RSA_2048 | AES_256 entspricht bei STACKIT aes_256_gcm. RSA_2048 steht in der Liste nur als OAEP-Verschlüsselungsschlüssel. |
| key_usage | SIGN_VERIFY beim Signaturschlüssel | STACKIT 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_enabled | true beim Datenschlüssel | Die 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_days | 30 | Eine 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_text | JSON mit Benutzername und Passwort | Ein Secret ist eine Menge von Schlüssel-Wert-Paaren mit Versionen. Schreiben Sie jedes Feld als Paar. |
| kms_key_id | Der Datenschlüssel | Die Secrets-Manager-FAQ nennt keine Schlüsseleinstellung pro Secret. Behandeln Sie sie als nicht übernommen und klären Sie das Verschlüsselungsverhalten mit STACKIT. |
| name | payments-db und payments-api-token | Ein 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.
export VAULT_ADDR=https://prod.sm.eu01.stackit.cloud
vault login -method=userpass username=<username> password="<password>"vault kv put -mount=<secrets-manager-id> app1/mysecret foo=bar
vault kv get -mount=<secrets-manager-id> app1/mysecretVersionen 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.