HUAWEI CLOUD IAM → STACKIT · LEITFADEN
Huawei Cloud IAM: Migration und Zugriffssteuerung auf STACKIT
Einen Konverter von Huawei Cloud IAM zur STACKIT-Zugriffssteuerung gibt es nicht, und der Lauf sagt das offen: Alle acht Identitätsressourcen des Beispiels sind MANUAL_REVIEW mit LOW-Konfidenz. Für Nutzer, Gruppen und die Custom Role lautet die Begründung, dass IAM-Policies auf STACKIT kein Gegenstück auf Dokumentenebene haben; Agency, Identity Provider und Gruppenmitgliedschaft sind Ressourcentypen, die dieser Build gar nicht katalogisiert. Menschen werden zu Benutzerkonten, die sich über Ihren Identity Provider anmelden, Pipelines und Server werden zu Service Accounts, Policies werden zu Rollenbindungen und Custom Roles auf Organisation, Ordner oder Projekt, und eine Agency wird zur Designentscheidung. Der Leitfaden zeigt, was StackToIT aus Ihrem IAM-Terraform liest und wie Sie daraus die STACKIT-Seite aufbauen.
Die Zugriffsmigration in acht Schritten
1. Identitäten über das Terraform hinaus erfassen
StackToIT liest das Terraform und verbindet sich mit keinem Konto. Nutzer, Schlüssel und Agencies, die in der Konsole angelegt wurden, fehlen im Ergebnis. Exportieren Sie diese Liste getrennt und gleichen Sie ab.
2. Bewerten
Führen Sie stacktoit assess auf dem IAM-Modul aus. Erwarten Sie durchgehend MANUAL_REVIEW; der Wert liegt im Inventar: welche Identität, welche Einstellung, welche Abhängigkeit, dazu eine Wellenfolge, die Gruppen, Nutzer, Rolle, Agency und Provider vorn und die Mitgliedschaft dahinter einordnet.
3. Menschen von Maschinen trennen
Ein Nutzer wie alice.platform ist eine Person. Ein Nutzer wie ci-deployer ist eine Pipeline. Sie landen in verschiedenen STACKIT-Konstrukten; kennzeichnen Sie daher jede Identität, bevor Sie mit dem Design beginnen.
4. Erst die Hierarchie, dann die Rollen
Rollenbindungen liegen auf Organisationen, Ordnern und Projekten und vererben sich nach unten. Laut Dokumentation lässt sich Zugriff nicht durch eine Bindung an einem Kind einschränken. Binden Sie daher auf der niedrigsten Ebene, die funktioniert, und formen Sie Ordner und Projekte nach der Frage, wer was sehen darf.
5. Den Identity Provider anbinden
STACKIT-Benutzerkonten liegen in einem Identity Provider; der STACKIT IdP bindet externe Provider über OIDC oder SAML 2.0 an und provisioniert Nutzer und Gruppen per SCIM. Menschen melden sich dann mit den Zugangsdaten an, die sie schon haben, und kein Huawei-Passwort wird übernommen.
6. Service Accounts für Maschinen anlegen
Pipelines und Server erhalten Service Accounts. Bevorzugen Sie OIDC Workload Federation, die ein kurzlebiges Token Ihres CI-Issuers eintauscht, gegenüber langlebigen Schlüsseln. Die README des Laufs gibt für die Provider-Authentifizierung denselben Rat.
7. Policies in Rollen übersetzen
Gehen Sie von den vordefinierten Rollen Owner, Editor und Reader und den Produktrollen aus und schreiben Sie eine Custom Role nur dort, wo sie nicht passen. Eine Custom Role ist eine benannte Liste von Berechtigungen; jede Action einer Huawei-Policy wird also als eine oder mehrere STACKIT-Berechtigungen neu geschrieben.
8. Testen, umstellen, stilllegen
Melden Sie sich als jede Art von Nutzer an und führen Sie die nötigen Aufgaben aus. Entfernen Sie Huawei-Identitäten nach dem Cutover und rotieren Sie jedes Secret, das je in Terraform-Variablen oder im State stand. Den Rückweg dieser Schritte hält laut Lauf die Person fest, die sie ausführt.
Nutzer, Gruppen und eine Custom Role, bewertet
Eine kleine Huawei-Cloud-IAM-Umgebung mit acht Ressourcen, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links drei Blöcke der Eingabe, rechts das Ergebnis, das der Lauf dafür festgehalten hat: ein Auszug aus assessment.json mit den Werten, wie der Lauf sie geschrieben hat.
resource "huaweicloud_identity_user" "alice" {
name = "alice.platform"
description = "Platform engineer"
password = var.initial_password
}
resource "huaweicloud_identity_group" "platform" {
name = "platform-admins"
description = "Platform engineering"
}
resource "huaweicloud_identity_role" "bucket_reader" {
name = "custom-obs-bucket-reader"
description = "Read bucket ACLs"
type = "AX"
policy = <<EOT
{
"Version": "1.1",
"Statement": [
{
"Action": ["obs:bucket:GetBucketAcl"],
"Effect": "Allow"
}
]
}
EOT
}[
{
"id": "huaweicloud_identity_user.alice",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "IAM policies have no document-level counterpart on STACKIT. Map people and workloads to STACKIT roles and service accounts in a reviewed design."
}
},
{
"id": "huaweicloud_identity_group.platform",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "IAM policies have no document-level counterpart on STACKIT. Map people and workloads to STACKIT roles and service accounts in a reviewed design."
}
},
{
"id": "huaweicloud_identity_role.bucket_reader",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "IAM policies have no document-level counterpart on STACKIT. Map people and workloads to STACKIT roles and service accounts in a reviewed design."
}
}
]Absichtlich kein Ziel
Der Lauf nennt für diese Einheiten keinen STACKIT-Dienst. Seine Begründung verlangt, Menschen und Workloads in einem geprüften Design STACKIT-Rollen und Service Accounts zuzuordnen.
Einstellungen zur Prüfung benannt
Beim Nutzer stehen description, name und password, bei der Gruppe description und name, bei der Rolle description, name, policy und type jeweils als kritische Einstellung bei Ihnen. Das Policy-Dokument wird nicht ausgewertet.
Passwörter sind kein Migrationsgegenstand
Das Passwort eines Terraform-verwalteten IAM-Nutzers gehört zum alten System. Planen Sie die Anmeldung über Ihren Identity Provider, statt es zu kopieren.
Eine Agency, ein Identity Provider und eine Mitgliedschaft
Die drei Ressourcentypen desselben Laufs, die die Wissensbasis dieses Builds nicht katalogisiert.
resource "huaweicloud_identity_agency" "backup" {
name = "backup-agency"
description = "Lets a partner account run backups"
delegated_domain_name = "partner-backup-domain"
domain_roles = ["OBS Administrator"]
}
resource "huaweicloud_identity_provider" "corp" {
name = "corp-idp"
protocol = "oidc"
status = true
}
resource "huaweicloud_identity_group_membership" "platform" {
group = huaweicloud_identity_group.platform.id
users = [huaweicloud_identity_user.alice.id, huaweicloud_identity_user.ci.id]
}[
{
"id": "huaweicloud_identity_agency.backup",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_identity_agency is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "huaweicloud_identity_provider.corp",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_identity_provider is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
},
{
"id": "huaweicloud_identity_group_membership.platform",
"result": {
"class": "MANUAL_REVIEW",
"confidence": "LOW",
"reason": "huaweicloud_identity_group_membership is not in the knowledge base catalogue; an architect has to decide the target. Nothing of this resource is assessed or drafted (unknown source type)."
}
}
]Unbekannte Typen bleiben sichtbar
Jeder ist MANUAL_REVIEW mit LOW-Konfidenz; nichts davon wird bewertet oder entworfen. Sie erscheinen trotzdem als Einheiten mit Abhängigkeiten; die Gruppenmitgliedschaft ist daher nach Gruppe und beiden Nutzern eingeordnet.
Der Provider wird nicht als solcher gelesen
Die Datei zum Identitätsübergang dieses Laufs sagt, keine Einheit sei ein OIDC-Provider oder eine föderierte Vertrauensstellung, obwohl das Beispiel einen OIDC-Identity-Provider deklariert. Behandeln Sie die Datei für diese Ressource als stumm und führen Sie den Provider selbst auf.
So werden Huawei-Cloud-IAM-Konzepte STACKIT zugeordnet
| Huawei Cloud IAM | STACKIT-Gegenstück | Was Sie entscheiden |
|---|---|---|
| IAM-Nutzer, eine Person | Benutzerkonto, gespeichert in einem Identity Provider; Anmeldung mit Benutzername und Passwort oder föderiert; die E-Mail-Adresse des Nutzers ist das Subjekt einer Rollenbindung | Welche Personen, welcher Provider, wie Konten provisioniert werden. Das Passwort wird nicht übernommen. |
| IAM-Nutzer, eine Pipeline | Service Account, für Anwendungen, Skripte und virtuelle Maschinen; Key Flow oder OIDC Workload Federation | Welche Workloads, welcher Issuer und welche Assertions, etwa Subject und Audience. |
| Benutzergruppe | Rollenbindungen auf Organisation, Ordner oder Projekt; Nutzer und Gruppen können per SCIM aus Ihrem Provider kommen | Ob Gruppen gespiegelt werden. Die Seite zu Rollen und Berechtigungen nennt neben der E-Mail eines Nutzers und der E-Mail eines Service Accounts auch eine Gruppen-ID als Subjekt einer Bindung; die Bindung kann also an der Gruppe statt an jedem Nutzer hängen. |
| Systemdefinierte Rolle oder Policy | Vordefinierte Rollen: Owner, Editor, Reader, dazu Produktrollen im Format product-name.noun, meist für Service Accounts | Die engste Rolle, mit der die Aufgabe läuft, auf der niedrigsten Ebene, die funktioniert. |
| Custom Policy (JSON-Dokument) | Custom Role: eine benannte Menge von Berechtigungen wie postgres-flex.database.get | Jede Action als Berechtigungen neu schreiben. Eine Huawei-Anweisung kann den Effect Deny tragen, der Vorrang vor Allow hat, sowie Conditions; die STACKIT-Seite zu Rollen beschreibt nur additive Bindungen. Ein Deny wird also zu einer Berechtigung, die Sie auf dieser Ebene nicht vergeben, und eine Condition entfällt oder wird anders durchgesetzt. Das ist unsere Lesart der beiden Seiten; der Lauf interpretiert keine Policies. |
| Agency | Kein Eins-zu-eins-Gegenstück; ein Service Account oder eine föderierte Identität für die vertraute Partei | Wer die vertraute Partei ist, wie sie sich authentifiziert und was sie darf. |
| Identity Provider (ein Unternehmens-IdP, per SAML 2.0 oder OpenID Connect 1.0 mit Huawei Cloud föderiert; OIDC unterstützt nur Virtual-User-SSO) | STACKIT IdP mit OIDC, SAML 2.0 und SCIM; für Service Accounts ein OIDC-Issuer mit Assertions | Welcher Ihrer Provider zur Quelle der Identitäten wird. |
Huawei-Cloud-Konzepte aus den Seiten zu IAM-Grundbegriffen, zur Policy-Syntax und zum Überblick über Identity Provider, STACKIT-Seite aus den Seiten zu Rollen und Berechtigungen, Custom Roles, Service Accounts und STACKIT IdP, Stand November 2026. Ob sich eine bestimmte Huawei-Policy nachbilden lässt, hängt von der Policy ab; der Lauf interpretiert sie nicht.
Was der Lauf zu Identität und Provider-Zugriff sagt
Links der Block mit den Grenzen aus assurance/identity-transition.md. Rechts die Zeile zur Provider-Authentifizierung aus terraform/README.md. Beides sind Zeilen, wie der Lauf sie geschrieben hat.
## Limits
- Workload identity federation is not assessed as an option for any workload. A row states an OIDC issuer where the source names one, as a fact of the source, and never that federation can replace a key.
- A static credential is named only where the knowledge base reads a machine user with access keys on the unit. A scan that finds no key cannot say a workload has none, so the absence of a credential is never written.
- Privilege delta, break-glass access and human identity are not assessed for any row.
- A workload that names no identity in the source has no row, and a run whose draft held no identity intents lists only the units that are an identity themselves.
- The block states what the identity plan holds open. It does not attach, grant or federate anything.| Check | Result |
|---|---|
| Provider authentication | Authenticate the provider with Workload Identity Federation (`use_oidc = true` and `service_account_email`, a short-lived OIDC token exchanged for a STACKIT access token) instead of a long-lived service account key: the provider documents it as the way that "eliminates the need for long-lived secrets" in CI/CD (the STACKIT provider documentation, index page, section "Workload Identity Federation", and its guide "Workload Identity Federation"; knowledge-base evidence, not in this folder). |Offen über das, was er nicht sieht
Federation als Option, Privilegiendelta, Break-Glass-Zugang und menschliche Identität werden nicht bewertet. Das ist die Prüfung, die Sie mit Ihrem Sicherheitsteam durchführen.
Ein kurzlebiges Token für den Provider
Für den STACKIT-Terraform-Provider selbst verweist der Lauf auf Workload Identity Federation mit einem Service Account statt auf einen langlebigen Schlüssel.
Unterschiede, die in der Praxis zählen
Bindungen fügen nur Zugriff hinzu
Auf STACKIT wird Zugriff durch eine neue Bindung gewährt und durch eine spätere nicht entzogen; eine Bindung an einem Kind kann nicht verbieten, was ein Elternteil gewährt. Eine Huawei-Policy, die auf einem Deny beruht, braucht eine andere Struktur.
Bindungen hängen an der Hierarchie
Rollenbindungen gelten für Organisationen, Ordner und Projekte, nicht für einen einzelnen Bucket oder eine einzelne VM. Eine feine Trennung verlagert sich in den Projektzuschnitt.
Access Tokens werden abgekündigt
Stand November 2026 nennt die Seite zu Service Accounts den 16. Dezember 2025 als Abkündigungsdatum für Service-Account-Access-Tokens; die Rolle Service Account Access Token Admin soll laut Seite bis Ende Q2 2026 entfallen. Nutzen Sie Key Flow oder Federation.
Schlüssel sind Secrets
Ein Service-Account-Schlüssel ist ein Zugangsnachweis für den Key Flow. Die Dokumentation rät, ihn wie ein Passwort zu behandeln und nie in Quellcode einzubetten.
Drei Berechtigungen können eskalieren
iam.role.edit, iam.role.add und iam.member.add lassen ein Subjekt Rollen oder die eigenen Bindungen ändern. Die Seite zu Custom Roles mahnt zur Vorsicht.
Terraform für Rollen kann sich ändern
Der STACKIT-Provider 0.121.0 kennzeichnet seine Ressourcen für Rollenzuweisungen als Teil einer Opt-in-Funktion, die sich noch deutlich ändern oder entfallen kann. Legen Sie die Provider-Version fest und prüfen Sie Pläne.
Fragen aus Sicherheitsteams
Wandelt StackToIT Huawei-Cloud-IAM-Policies in STACKIT-Rollen um?
Nein. Nutzer, Gruppen und Rollen des Beispiels sind MANUAL_REVIEW mit LOW-Konfidenz, und das Policy-Dokument steht als Einstellung bei Ihnen. Die Umsetzung ist ein geprüfter Entwurf.
Was ersetzt eine Huawei-Cloud-Agency?
Es gibt kein Eins-zu-eins-Gegenstück. Für einen Workload ein Service Account, für eine vertraute externe Partei eine föderierte Identität oder ein Benutzerkonto in Ihrem Provider. Klären Sie zuerst, wem vertraut wird und wie er sich authentifiziert.
Können wir die Passwörter unserer Nutzer behalten?
Es gibt nichts zu übernehmen. STACKIT-Benutzerkonten melden sich mit Benutzername und Passwort oder föderiert an. Binden Sie Ihren Identity Provider an und lassen Sie Menschen die Zugangsdaten nutzen, die sie haben.
Braucht der Lauf Zugriff auf unser IAM?
Nein. Er liest die Terraform-Dateien und verbindet sich mit keinem Konto. Die sensible Variable initial_password bleibt leer: Der Lauf meldet sie als fehlende Eingabe, markiert die Quelle als VARIABLE_UNRESOLVED und läuft trotzdem durch.
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.