AZURE KEY VAULT → STACKIT SECRETS MANAGER EN KMS · HANDLEIDING

Azure Key Vault naar STACKIT Secrets Manager en KMS

Een Key Vault bevat secrets, keys en certificaten. STACKIT biedt Secrets Manager voor secrets en KMS voor keys; voor het vernieuwen van certificaten noemt de run geen STACKIT-dienst. StackToIT schrijft één Secrets Manager-instance voor de vault en somt elk object, elke instelling en elke toegangsregel op die niet wordt overgenomen. Deze handleiding volgt een demo-vault met een secret, een key en een certificaat, van invoer tot een plan per object.

Eén vault erin, één Secrets Manager-instance eruit

Een demo-omgeving die voor deze pagina is opgesteld en op 4 november 2026 door StackToIT is beoordeeld: een vault van het niveau standard met RBAC-autorisatie en purge protection, één secret, één RSA-key en één certificaat. Links: de vault, het secret en de key uit de invoer (het certificaatblok is weggelaten). Rechts: het resourceblok van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen erboven in het bestand zijn hier weggelaten.

Voorbeeldinvoermain.tf
resource "azurerm_key_vault" "shop" {
  name                       = "kv-shop-gwc"
  location                   = azurerm_resource_group.sec.location
  resource_group_name        = azurerm_resource_group.sec.name
  tenant_id                  = data.azurerm_client_config.current.tenant_id
  sku_name                   = "standard"
  soft_delete_retention_days = 30
  purge_protection_enabled   = true
  rbac_authorization_enabled = true
}

resource "azurerm_key_vault_secret" "db_password" {
  name         = "orders-db-password"
  value        = var.db_password
  key_vault_id = azurerm_key_vault.shop.id
}

resource "azurerm_key_vault_key" "data" {
  name         = "data-encryption-key"
  key_vault_id = azurerm_key_vault.shop.id
  key_type     = "RSA"
  key_size     = 2048
  key_opts     = ["decrypt", "encrypt", "wrapKey", "unwrapKey"]
}
STACKIT-Terraform van StackToITterraform/security.tf
resource "stackit_secretsmanager_instance" "migrated_secrets" {
  project_id = var.project_id
  name       = "migrated-secrets"
}
  • De instance is alles wat het concept schrijft

    De run maakt de Secrets Manager-instance aan en niets daarbinnen. De opmerkingen vermelden dat geen enkele instelling van de vault wordt gegenereerd (naam, tenant, SKU, toegangsregels, netwerkregels of bewaartermijn) en dat elk secret opnieuw wordt aangemaakt als key in de instance.

  • Waarden komen nooit in het concept

    De waarde van het secret komt uit een gevoelige variabele in de bron. De run schrijft geen waarde, en de kritieke instelling over vault-objecten geeft aan dat een medewerker elk secret in de instance plaatst.

  • Keys en certificaten zijn beslissingen

    Type, grootte en bewerkingen van een key kiest u op een KMS-key; voor het uitgeven of vernieuwen van certificaten bestaat geen STACKIT-tegenhanger. Het concept noemt beide als niet overgenomen.

Hoe de run de vault classificeert

Fragment van assessment.json voor de vault-eenheid (id, klasse, zekerheidsniveau en doel van het resultaat, waarden zoals geschreven), daarna geselecteerde commentaarregels van terraform/security.tf, letterlijk.

StackToIT-assessment (fragment)assessment.json
{
  "id": "azurerm_key_vault.shop",
  "result": {
    "class": "RECONFIGURE",
    "confidence": "MEDIUM",
    "target": {
      "service": "STACKIT Secrets Manager (+ KMS for keys)",
      "resources": [
        "stackit_secretsmanager_instance",
        "stackit_secretsmanager_user"
      ]
    }
  }
}
Commentaarregels in het conceptterraform/security.tf
# NOT CARRIED (azurerm_key_vault_key.data): key_opts, key_size = 2048, key_type = RSA, key_vault_id, name = data-encryption-key — a setting of azurerm_key_vault.shop: recreate its secrets as secrets in the Secrets Manager instance; none of the vault's settings (name, tenant, SKU, access policies, network rules, retention) is generated.
# NOT CARRIED (azurerm_key_vault_secret.db_password): key_vault_id, name = orders-db-password, value — a setting of azurerm_key_vault.shop: recreate its secrets as secrets in the Secrets Manager instance; none of the vault's settings (name, tenant, SKU, access policies, network rules, retention) is generated.
# azurerm_key_vault.shop: WARNING kv-certificates: Certificates (possibly auto-renewed by Key Vault) are stored in the vault; STACKIT has no certificate-lifecycle service, so renewal moves to the load balancer certificate upload or cert-manager.
# azurerm_key_vault.shop: WARNING kv-access-model: Access is granted to Entra principals (access policies or Azure RBAC); on STACKIT access is granted to Secrets Manager users or service accounts, so every consumer gets new credentials.
  • RECONFIGURE, geen kopie

    De klasse is RECONFIGURE met zekerheidsniveau MEDIUM. Applicaties stappen over van de Key Vault SDK of verwijzingen naar een Vault-client of injectie door het platform, en van Entra-principals naar Secrets Manager-gebruikers.

  • Tien openstaande instellingen, drie eigenaren

    decisions.json bevat tien openstaande kritieke instellingen in drie records. De Identity Architect is eigenaar van vijf: toegangsmodel, verwijderbeveiliging, scope van de resourcegroep, tenant en vault-objecten. De Platform Architect bevestigt vier namen: die van de vault, het secret, de key en het certificaat; de Security Architect is eigenaar van de certificaten. Verwijderbeveiliging wordt categorisch geweigerd: de run vindt geen STACKIT-tegenhanger, dus een redesign of een geaccepteerd verschil moet daarover beslissen.

Waar elk Key Vault-object naartoe gaat

Key Vault-objectSTACKIT-doelWat de run zegt
VaultSecrets Manager-instanceGegenereerd als gedeelde instance voor alle gemigreerde secrets
SecretEen key in de instance (KV2-store)Een medewerker stelt de waarde in; niet geschreven in het concept
Key (RSA 2048)KMS-keyring en keyNiet gegenereerd; niet-exporteerbare keys worden opnieuw aangemaakt, niet gekopieerd
CertificaatCertificaatupload op de load balancer of cert-managerHet vernieuwen verhuist; STACKIT heeft geen dienst voor de levenscyclus van certificaten
RBAC of toegangsbeleidSecrets Manager-gebruikers of service accountsElke afnemer krijgt nieuwe inloggegevens
Soft delete en purge protectionVersielimiet en uw eigen back-upAfzonderlijke secrets kunnen niet uit een back-up worden hersteld

Klassen en formuleringen zoals de run ze heeft bepaald. Het secret, de key en het certificaat maken deel uit van de vault-eenheid.

De migratie in volgorde

  1. De vault inventariseren

    Maak een lijst van de secrets, keys en certificaten en van de afnemers van elk. De run noemt de objecten uit de Terraform; objecten die buiten Terraform zijn aangemaakt, ziet de run niet.

  2. De instance aanmaken

    Pas de gegenereerde instance eerst toe in een testproject. De provider documenteert de Secrets Manager-resources alleen voor een provider die is geconfigureerd met default_region eu01.

  3. Secrets verplaatsen

    STACKIT vermeldt compatibiliteit met HashiCorp Vault KV2 en één secrets engine. Schrijf elke waarde met de Vault CLI zoals de how-to van STACKIT laat zien, bijvoorbeeld vault kv put -mount=<instance ID> orders-db-password value=…, en stel een versielimiet in, omdat de facturering secretversies telt.

  4. Keyrings en keys aanmaken

    Maak een keyring aan en daarna elke key met een algoritme en doel dat KMS vermeldt. KMS accepteert geïmporteerd sleutelmateriaal, maar de run geeft aan dat niet-exporteerbare Azure-keys opnieuw worden aangemaakt.

  5. De omgang met certificaten vervangen

    Upload naar de load balancer of draai cert-manager op een cluster. Plan het vernieuwen als werk, want niets vernieuwt het certificaat voor u.

  6. Nieuwe toegang uitgeven

    Geef elke afnemer een Secrets Manager-gebruiker. Het wachtwoord wordt gegenereerd, kan niet worden gewijzigd en een nieuw wachtwoord vergt een nieuwe gebruiker.

Keyring, key en een alleen-lezen gebruiker, handmatig

  • Eerst de keyring

    stackit_kms_keyring vereist een project_id en een display_name. Het concept schrijft geen keyring; u voegt die toe zodra de beslissingen over de keys zijn genomen.

  • Dan de key

    stackit_kms_key vereist keyring_id, display_name, protection, algorithm en purpose; het voorbeeld van de provider gebruikt de protection software. Voor de RSA 2048-encryptiekey van de demo zijn rsa_2048_oaep_sha256 met het purpose asymmetric_encrypt_decrypt de dichtstbijzijnde vermelde waarden.

  • Controleren of de key past

    De Azure-key staat encrypt, decrypt, wrapKey en unwrapKey toe. Vanaf november 2026 vermeldt STACKIT KMS aes_256_gcm en RSA OAEP-varianten (2048, 3072 en 4096 bit met SHA-256, 4096 bit met SHA-512) voor versleutelen en ontsleutelen. Of een van die varianten past bij de manier waarop uw code datakeys wrapt, moet u zelf controleren vóór de cutover.

  • Genereren of importeren

    Met KMS bepaalt u per key of keyversie of het materiaal wordt gegenereerd of geïmporteerd, en KMS geeft aan dat exporteren van keys niet de bedoeling is. Keys die KMS nooit verlaten, worden opnieuw aangemaakt, zoals de run aangeeft voor niet-exporteerbare Azure-keys.

  • Een alleen-lezen afnemer

    stackit_secretsmanager_user met write_enabled op false geeft een applicatie alleen leestoegang. Het wachtwoord wordt door de dienst gegenereerd en als sensitive attribuut teruggegeven.

  • Destroy verwijdert niet

    Bij destroy plant de provider een key voor verwijdering in en haalt een keyring alleen uit de state. Behandel beide als langlevende resources.

Vragen van securityteams

Kunnen we een verwijderd secret herstellen?

Niet uit een back-up. STACKIT geeft aan dat afzonderlijke secrets niet kunnen worden hersteld en dat de back-up dient voor disaster recovery. Overschreven secrets blijven bestaan als oudere versies wanneer de versielimiet hoger is dan één; bewaar dus een externe kopie van de waarden als u rekent op herstel na verwijdering.

Vervangt KMS de Key Vault-keys één op één?

Niet als kopie. KMS vermeldt een reeks algoritmen en doelen en staat import toe, maar de run behandelt exporteerbare en niet-exporteerbare keys verschillend en vraagt om een beslissing per key.

Wat gebeurt er met certificaten?

Volgens de run heeft STACKIT geen dienst voor de levenscyclus van certificaten. Het vernieuwen verhuist naar de upload op de load balancer of naar cert-manager.

Welke applicaties veranderen?

Applicaties die de Key Vault SDK aanroepen of Key Vault-verwijzingen gebruiken. Ze stappen over op een Vault-client of op injectie door het platform, bijvoorbeeld External Secrets Operator op een cluster.

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

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring