AZURE PRIVATE LINK → STACKIT · ARCHITECTUUR

Azure Private Link en privénetwerken op STACKIT

Azure Private Link geeft een managed service een privéadres in uw virtuele netwerk. De managed services van STACKIT bieden dat niet: u bereikt ze op hun eigen endpoint, beperkt door een toegangslijst, of u beperkt enkele ervan tot een Network Area, of u draait de dienst binnen uw netwerk. StackToIT classificeert elk private endpoint als REDESIGN; deze pagina laat zien wat dat betekent en hoe u kiest.

Twee private endpoints en een DNS-zone, beoordeeld

Een demo-omgeving die voor deze pagina is opgesteld en op 4 november 2026 door StackToIT is beoordeeld: een hubnetwerk, een storage account en een SQL-server met publieke toegang uit, twee private endpoints en een privatelink-zone. Links: de privatelink-zone, de netwerkkoppeling en het blob-endpoint uit de invoer (main.tf, regels 61 tot 90). Rechts: hoe assessment.json de endpoints, de zone, het netwerk en een subnet vastlegt (id plus klasse, zekerheidsniveau en doeldienst van elk resultaat, waarden zoals geschreven).

Voorbeeldinvoermain.tf
resource "azurerm_private_dns_zone" "blob" {
  name                = "privatelink.blob.core.windows.net"
  resource_group_name = azurerm_resource_group.net.name
}

resource "azurerm_private_dns_zone_virtual_network_link" "blob" {
  name                  = "blob-hub"
  resource_group_name   = azurerm_resource_group.net.name
  private_dns_zone_name = azurerm_private_dns_zone.blob.name
  virtual_network_id    = azurerm_virtual_network.hub.id
}

resource "azurerm_private_endpoint" "blob" {
  name                = "pe-docs-blob"
  location            = azurerm_resource_group.net.location
  resource_group_name = azurerm_resource_group.net.name
  subnet_id           = azurerm_subnet.endpoints.id

  private_service_connection {
    name                           = "psc-docs-blob"
    private_connection_resource_id = azurerm_storage_account.docs.id
    subresource_names              = ["blob"]
    is_manual_connection           = false
  }

  private_dns_zone_group {
    name                 = "blob"
    private_dns_zone_ids = [azurerm_private_dns_zone.blob.id]
  }
}
StackToIT-assessment (fragment)assessment.json
[
  {
    "id": "azurerm_private_endpoint.blob",
    "result": {
      "class": "REDESIGN",
      "confidence": "LOW",
      "target": {
        "service": "none — no Private Link equivalent"
      }
    }
  },
  {
    "id": "azurerm_private_endpoint.sql",
    "result": {
      "class": "REDESIGN",
      "confidence": "LOW",
      "target": {
        "service": "none — no Private Link equivalent"
      }
    }
  },
  {
    "id": "azurerm_private_dns_zone.blob",
    "result": {
      "class": "RECONFIGURE",
      "confidence": "LOW",
      "target": {
        "service": "not needed (belongs to Private Link)"
      }
    }
  },
  {
    "id": "azurerm_virtual_network.hub",
    "result": {
      "class": "RECONFIGURE",
      "confidence": "MEDIUM",
      "target": {
        "service": "STACKIT project networking / Network Area (SNA)"
      }
    }
  },
  {
    "id": "azurerm_subnet.endpoints",
    "result": {
      "class": "RECONFIGURE",
      "confidence": "MEDIUM",
      "target": {
        "service": "STACKIT network"
      }
    }
  }
]
  • Het endpoint wordt een beslissing

    Beide endpoints zijn REDESIGN met zekerheidsniveau LOW en zonder doel, omdat managed services van STACKIT geen private link-endpoints hebben. De run schrijft er geen Terraform voor, en de verwijzingen die ze hadden naar het storage account, de SQL-server en het subnet moet een medewerker in het redesign opnieuw maken.

  • De zone verdwijnt met de endpoints

    De privatelink-zone lost alleen private endpoints van Azure-diensten op, dus de run vermeldt dat de zone op STACKIT niet nodig is.

  • Subnets blijven, het netwerk verdwijnt

    Elk subnet wordt een STACKIT-netwerk met hetzelfde prefix. Het virtuele netwerk zelf heeft geen tegenhanger, en de run adviseert alleen een Network Area toe te voegen als netwerken privé met elkaar moeten routeren.

Wat de diensten in plaats daarvan krijgen

Dezelfde run, dezelfde invoer. Het storage account en de SQL-server worden nog steeds gemigreerd; hun privébereik is de openstaande vraag. Resourceblokken letterlijk, één paneel per bestand; de beoordelingsopmerkingen boven elk blok zijn hier weggelaten.

Voorbeeldinvoermain.tf
resource "azurerm_storage_account" "docs" {
  name                          = "stplatformdocsgwc"
  resource_group_name           = azurerm_resource_group.net.name
  location                      = azurerm_resource_group.net.location
  account_tier                  = "Standard"
  account_replication_type      = "LRS"
  public_network_access_enabled = false
}

resource "azurerm_mssql_server" "core" {
  name                          = "sql-platform-core"
  resource_group_name           = azurerm_resource_group.net.name
  location                      = azurerm_resource_group.net.location
  version                       = "12.0"
  administrator_login           = "coreadmin"
  administrator_login_password  = var.sql_admin_password
  public_network_access_enabled = false
}
STACKIT: storage.tfterraform/storage.tf
resource "stackit_objectstorage_bucket" "docs" {
  project_id = var.project_id
  name       = "stplatformdocsgwc"
}
STACKIT: data.tfterraform/data.tf
resource "stackit_sqlserverflex_instance" "core" {
  project_id = var.project_id
  name       = "sql-platform-core"
  flavor_id  = var.core_flavor_id
  storage = {
    class = var.sqlserverflex_storage_class
    size  = var.core_storage_size
  }
  backup_schedule = "0 2 * * *"
  network = {
    acl = var.core_allowed_cidrs
  }
  version        = "2022"
  retention_days = 30
}
ACL-variabele van het conceptterraform/variables.tf
variable "core_allowed_cidrs" {
  type        = list(string)
  description = "CIDRs allowed to reach azurerm_mssql_server.core. The source used VNet integration, private endpoints or no firewall rule the ACL can take; list the STACKIT network prefixes of the clients."
}
  • De toegangslijst heeft geen standaardwaarde

    De variabele voor de toegestane CIDR's vermeldt dat de bron private endpoints gebruikte en vraagt u de STACKIT-netwerkprefixen van de clients op te geven.

  • De publieke schakelaar heeft geen tegenhanger

    Het concept merkt bij de SQL-server op dat de schakelaar voor publiek netwerk niet wordt overgenomen en dat clients de instance in beide gevallen via de ACL bereiken. Het licht ook de versie toe: 12.0 op Azure is een API-versie, dus het concept neemt SQL Server 2022 uit de regiocatalogus.

  • Voor buckets moet u beslissen hoe u ze beperkt

    De run waarschuwt dat bucketbeleid bron-IP-adressen kan beperken, maar dat er geen netwerkgebonden voorwaarde is gedocumenteerd. De referentie van STACKIT voor voorwaardesleutels in bucketbeleid bevestigt dat (vanaf november 2026): aws:SourceIp, aws:username, s3:delimiter, s3:max-keys en s3:prefix, zonder netwerk- of endpointsleutel. Bepaal hoe de buckets worden beperkt, anders zijn ze vanaf het internet bereikbaar voor iedereen met inloggegevens.

Vier manieren om een private endpoint te vervangen

OptieZo werkt het op STACKITAfweging
Toegangslijst op het service-endpointDe dienst heeft een eigen hostnaam en adres; de ACL laat de bereiken toe die u opgeeft, naast vooraf gedefinieerde STACKIT-bereikenEenvoudig en nu beschikbaar; de dienst houdt een bereikbaar adres en clients moeten stabiele bronbereiken hebben
Network Area-scopePostgreSQL Flex en SQLServer Flex nemen een toegangsscope SNA aan, en een KMS-key kent hetzelfde attribuutPrivéadres, maar een opt-in voor ingeschakelde accounts die nog kan wijzigen, en niet door elke dienst aangeboden
Dienst binnen uw netwerkDraai de database of broker op servers of op SKEVolledige controle over het adres, maar u beheert patching, back-ups en failover
Network Area tussen uw netwerkenProjecten van een organisatie zijn op netwerkniveau verbonden, met routing die zichzelf bijwerktLost verkeer van netwerk naar netwerk op, niet het bereik van een managed service

Opties zoals de run en de aangehaalde STACKIT-pagina's ze beschrijven. Geen enkele optie biedt de goedkeuring van endpoints per dienst zoals bij Azure; die workflow heeft geen equivalent.

Wat elke eenheid in de run werd

Azure-resourceSTACKIT-doelKlasse
SQL logical serverSQLServer Flex-instanceReplatforming
Storage accountObject Storage-bucketReplatforming
Virtueel netwerkGeen resource: elk subnet wordt een netwerkHerconfiguratie
Subnets (apps, endpoints)STACKIT-netwerk met hetzelfde prefixHerconfiguratie
Private DNS-zoneNiet nodigHerconfiguratie
Private endpoint, blobGeen: geen private-link-equivalentRedesign
Private endpoint, SQLGeen: geen private-link-equivalentRedesign

Acht eenheden, vier opgesteld, twee die geen resource nodig hebben en twee die voor de architect blijven liggen, zoals de consolesamenvatting van de run aangeeft.

Zo beslist u

  • Is een privéadres verplicht?

    Als een regel bepaalt dat de dienst geen bereikbaar adres mag hebben, schieten de ACL-opties tekort. Controleer de Network Area-scope voor die dienst, of draai de dienst binnen uw netwerk.

  • Kunt u de clients benoemen?

    Een ACL vereist bronbereiken. Zitten clients achter wisselende adressen, geef dan de netwerkprefixen op van de STACKIT-netwerken waarin ze draaien.

  • Wie heeft de naamresolutie nodig?

    Azure lost een dienstnaam via een privatelink-zone op naar een privéadres. STACKIT DNS biedt publieke autoritatieve DNS, en de run geeft aan dat privénamen een eigen DNS-server vereisen.

  • Gaat het om verkeer van netwerk naar netwerk?

    Dat is een vraag voor de Network Area, niet voor een endpoint. Verkeer tussen regio's loopt volgens de STACKIT-pagina op dit moment alleen via het openbare internet.

  • Op welke publieke schakelaar vertrouwde u?

    Azure merkt op dat een private endpoint publieke toegang niet zelf beperkt. Uw bron had die uitgezet; op STACKIT doet de ACL die taak.

Vragen van netwerkteams

Is er een private endpoint op STACKIT?

Nee. De run geeft aan dat managed services van STACKIT geen private link-endpoints hebben en classificeert de Azure-endpoints als REDESIGN zonder doel.

Wat vervangt de privatelink-DNS-zone?

Er wordt niets gegenereerd. STACKIT DNS biedt publieke autoritatieve DNS; namen die privé moeten worden opgelost, vereisen een eigen DNS-server.

Geeft een Network Area een database een privéadres?

Voor PostgreSQL Flex en SQLServer Flex bestaat een toegangsscope SNA, als opt-in voor ingeschakelde accounts die nog kan wijzigen. Vraag die aan voordat u erop rekent.

Wat verandert er voor de clients?

Ze verbinden met een nieuwe hostnaam in plaats van een privatelink-naam, vanuit een bronbereik dat op de ACL staat. De run noemt de netwerken die de run heeft opgesteld als plaatsen om te beginnen.

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