HUAWEI CLOUD IAM → STACKIT · GIDS
Huawei Cloud IAM-migratie en toegangsbeheer op STACKIT
Er bestaat geen converter van Huawei Cloud IAM naar toegangsbeheer op STACKIT, en de run zegt dat ook: alle acht identiteitsresources van het voorbeeld zijn MANUAL_REVIEW met zekerheidsniveau LOW. Voor de gebruikers, groepen en de custom role is de reden dat IAM-policies op STACKIT geen tegenhanger op documentniveau hebben; de agency, de identity provider en het groepslidmaatschap zijn resourcetypen die deze build helemaal niet catalogiseert. Mensen worden gebruikersaccounts die via uw identity provider inloggen, pipelines en servers worden service accounts, policies worden rolbindingen en custom roles op organisatie, folder of project, en een agency wordt een ontwerpbeslissing. Deze gids laat zien wat StackToIT uit uw IAM-Terraform leest en hoe u daarmee de STACKIT-kant opbouwt.
De toegangsmigratie in acht stappen
1. Inventariseer identiteiten buiten de Terraform-code om
StackToIT leest de Terraform-code en maakt met geen enkel account verbinding. Gebruikers, sleutels en agencies die in de console zijn aangemaakt, staan niet in het resultaat. Exporteer die lijst dus apart en vergelijk.
2. Beoordelen
Voer stacktoit assess uit op de IAM-module. Verwacht overal MANUAL_REVIEW; de waarde zit in de inventaris: welke identiteit, welke instelling, welke afhankelijkheid, en een golfvolgorde die de groepen, gebruikers, rollen, de agency en de provider eerst zet en het lidmaatschap daarna.
3. Scheid mensen van machines
Een gebruiker als alice.platform is een persoon. Een gebruiker als ci-deployer is een pipeline. Ze komen in verschillende STACKIT-constructies terecht, dus label elke identiteit voordat u iets ontwerpt.
4. Ontwerp de hiërarchie vóór de rollen
Rolbindingen staan op organisaties, folders en projecten en worden naar beneden overgeërfd. De documentatie geeft aan dat toegang niet kan worden beperkt met een binding op een onderliggend niveau. Bind dus op het laagste niveau dat werkt en richt folders en projecten in op wie wat mag zien.
5. Koppel uw identity provider
STACKIT-gebruikersaccounts leven in een identity provider; de STACKIT IdP koppelt externe providers via OIDC of SAML 2.0 en richt gebruikers en groepen in met SCIM. Mensen loggen daarna in met de inloggegevens die ze al hebben, en er gaat geen Huawei-wachtwoord mee.
6. Maak service accounts voor machines
Pipelines en servers krijgen service accounts. Geef de voorkeur aan OIDC-workloadfederatie, die een kortlevend token van de issuer van uw CI uitwisselt, boven langlevende sleutels. De README van de run geeft hetzelfde advies voor de authenticatie van de provider.
7. Vertaal policies naar rollen
Begin bij de vooraf gedefinieerde rollen Owner, Editor en Reader en de productrollen, en schrijf alleen een custom role waar die niet passen. Een custom role is een benoemde lijst met permissions, dus elke Action van een Huawei-policy wordt herschreven als een of meer STACKIT-permissions.
8. Testen, overschakelen, uitfaseren
Log in als elke soort gebruiker en voer de taken uit die daarbij horen. Verwijder de Huawei-identiteiten na de cutover en roteer elk secret dat ooit in Terraform-variabelen of state heeft gestaan. Volgens de run legt degene die deze stappen uitvoert de rollback vast.
Gebruikers, groepen en een custom role, beoordeeld
Een kleine Huawei Cloud IAM-omgeving met acht resources, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld. Links drie blokken uit de invoer, rechts het resultaat dat de run ervoor vastlegde: een fragment van assessment.json met de waarden zoals de run ze schreef.
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."
}
}
]Met opzet geen doel
De run noemt voor deze eenheden geen STACKIT-dienst. De reden vraagt u om mensen en workloads in een beoordeeld ontwerp aan STACKIT-rollen en service accounts te koppelen.
Instellingen genoemd ter beoordeling
Voor de gebruiker noemt de run description, name en password, voor de groep description en name en voor de rol description, name, policy en type, elk als kritieke instelling die aan u is overgelaten. Het policydocument wordt niet geïnterpreteerd.
Wachtwoorden zijn geen migratie-item
Het wachtwoord van een IAM-gebruiker die door Terraform wordt beheerd, hoort bij het oude systeem. Plan inloggen via uw identity provider in plaats van het te kopiëren.
Een agency, een identity provider en een lidmaatschap
De drie resourcetypen uit dezelfde run die de kennisbank van deze build niet catalogiseert.
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)."
}
}
]Onbekende typen blijven zichtbaar
Elk is MANUAL_REVIEW met zekerheidsniveau LOW en er wordt niets van beoordeeld of als concept geschreven. Ze verschijnen wel als eenheden, met afhankelijkheden, dus het groepslidmaatschap wordt na de groep en beide gebruikers geordend.
De provider wordt niet als zodanig gelezen
Het identity-transition-bestand van deze run zegt dat geen enkele eenheid een OIDC-provider of een gefedereerde trust is, hoewel het voorbeeld een OIDC identity provider declareert. Beschouw dat bestand als stil over deze resource en inventariseer de provider zelf.
Hoe de concepten van Huawei Cloud IAM worden gekoppeld aan STACKIT
| Huawei Cloud IAM | STACKIT-tegenhanger | Wat u bepaalt |
|---|---|---|
| IAM-gebruiker, een persoon | Gebruikersaccount, opgeslagen in een identity provider; inloggen met gebruikersnaam en wachtwoord of een gefedereerde methode; het e-mailadres van de gebruiker is het subject van een rolbinding | Welke mensen, welke provider, hoe accounts worden ingericht. Het wachtwoord gaat niet mee. |
| IAM-gebruiker, een pipeline | Service account, voor applicaties, scripts en virtuele machines; key flow of OIDC-workloadfederatie | Welke workloads, welke issuer en welke assertions, zoals subject en audience. |
| Gebruikersgroep | Rolbindingen op een organisatie, folder of project; gebruikers en groepen kunnen via SCIM vanuit uw provider binnenkomen | Of u groepen spiegelt. De pagina over rollen en permissions noemt een groeps-ID als mogelijk subject van een binding, naast het e-mailadres van een gebruiker en het e-mailadres van een service account, dus een groep kan de binding dragen in plaats van elke gebruiker. |
| Door het systeem gedefinieerde rol of policy | Vooraf gedefinieerde rollen: Owner, Editor, Reader, plus productrollen met de naam product-name.noun, meestal voor service accounts | De smalste rol waarmee de taak kan draaien, op het laagste niveau dat werkt. |
| Custom policy (JSON-document) | Custom role: een benoemde set permissions zoals postgres-flex.database.get | Herschrijf elke Action als permissions. Een Huawei-statement kan het Effect Deny hebben, dat voorrang heeft op Allow, en Conditions; de rollenpagina van STACKIT beschrijft alleen additieve bindingen, dus een Deny wordt een permission die u op die scope niet verleent, en een Condition vervalt of wordt op een andere manier afgedwongen. Dit is onze lezing van de twee pagina's; de run interpreteert geen policies. |
| Agency | Geen één-op-één-tegenhanger; een service account of een gefedereerde identiteit voor de vertrouwde partij | Wie de vertrouwde partij is, hoe die zich authenticeert en wat die mag. |
| Identity provider (een enterprise-IdP die met Huawei Cloud is gefedereerd via SAML 2.0 of OpenID Connect 1.0; OIDC ondersteunt alleen SSO voor virtuele gebruikers) | STACKIT IdP met OIDC, SAML 2.0 en SCIM; voor service accounts een OIDC-issuer met assertions | Welke van uw providers de bron van identiteiten wordt. |
Huawei Cloud-concepten uit de pagina's over IAM-basisconcepten, policysyntaxis en het overzicht van identity providers, STACKIT-kant uit de pagina's over rollen en permissions, custom roles, service accounts en de STACKIT IdP, stand november 2026. Of een bepaalde Huawei-policy reproduceerbaar is, hangt af van de policy, die de run niet interpreteert.
Wat de run zegt over identiteit en providertoegang
Links het blok met beperkingen uit assurance/identity-transition.md, rechts de rij over providerauthenticatie uit terraform/README.md. Beide zijn regels zoals de run ze schreef.
## 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). |Eerlijk over wat het niet ziet
Federatie als optie, privilege delta, break-glass-toegang en menselijke identiteit worden niet beoordeeld. Dat is de review die u met uw securityteam uitvoert.
Een kortlevend token voor de provider
Voor de STACKIT-Terraform-provider zelf wijst de run naar Workload Identity Federation met een service account in plaats van een langlevende sleutel.
Verschillen die in de praktijk tellen
Bindingen voegen alleen toegang toe
Op STACKIT wordt toegang verleend door een nieuwe binding en niet weggenomen door een latere, en een binding op een onderliggend niveau kan niet ontzeggen wat een bovenliggend niveau verleent. Een Huawei-policy die op een deny leunt, heeft een andere structuur nodig.
Bindingen zitten op de hiërarchie
Rolbindingen werken op organisaties, folders en projecten, niet op één bucket of één VM. Fijnmazige scheiding verhuist naar de projectindeling.
Access tokens worden uitgefaseerd
Stand november 2026 noemt de pagina over service accounts 16 december 2025 als deprecatiedatum van access tokens van service accounts en zegt dat de rol Service Account Access Token Admin eind Q2 2026 wordt verwijderd. Gebruik de key flow of federatie.
Sleutels zijn secrets
Een sleutel van een service account is een credential voor de key flow. De documentatie geeft aan dat u die als een wachtwoord behandelt en nooit in broncode opneemt.
Drie permissions kunnen escaleren
iam.role.edit, iam.role.add en iam.member.add laten een subject rollen of zijn eigen bindingen wijzigen. De pagina over custom roles dringt aan op voorzichtigheid.
Terraform voor rollen kan wijzigen
De STACKIT-provider 0.121.0 markeert zijn resources voor roltoewijzing als onderdeel van een opt-in-functie die nog ingrijpend kan wijzigen of kan verdwijnen. Zet de providerversie vast en beoordeel de plannen.
Vragen van securityteams
Zet StackToIT Huawei Cloud IAM-policies om in STACKIT-rollen?
Nee. De gebruikers, groepen en rollen van het voorbeeld zijn MANUAL_REVIEW met zekerheidsniveau LOW, en het policydocument staat vermeld als instelling die aan u is overgelaten. De omzetting is een beoordeeld ontwerp.
Wat vervangt een Huawei Cloud-agency?
Er is geen één-op-één-tegenhanger. Voor een workload een service account; voor een vertrouwde externe partij een gefedereerde identiteit of een gebruikersaccount in uw provider. Bepaal eerst wie wordt vertrouwd en hoe die zich authenticeert.
Kunnen we de wachtwoorden van onze gebruikers behouden?
Er is niets om over te nemen. STACKIT-gebruikersaccounts loggen in met een gebruikersnaam en wachtwoord of met een gefedereerde methode, dus koppel uw identity provider en laat mensen de inloggegevens gebruiken die ze al hebben.
Heeft de run toegang tot onze IAM nodig?
Nee. Het leest de Terraform-bestanden en maakt met geen enkel account verbinding. De gevoelige variabele initial_password blijft leeg: de run meldt die als ontbrekende invoer, markeert de bron als VARIABLE_UNRESOLVED en rondt toch af.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.