Altinn / Altinn/info.altinn.no
Linkerd AuthorizationPolicy for Umbraco dekker ikke tilkoblinger som ikke gjenkjennes som HTTP, og forårsaker periodiske "Connection denied"
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 2
- Avg merge
- 19h 47m
- Merged PRs (30d)
- 32
Description
**Problem**
`syncroot/base/umbraco/network-policies.yaml` definerer en `Server` (`umbraco-http-server`) med `proxyProtocol: HTTP/2`, og en `AuthorizationPolicy` (`umbraco-http-auth`) som kun er bundet til den underliggende `HTTPRoute` (`umbraco-http-route`) — ikke til selve `Server`-ressursen. Traefik sin mesh-identitet (`altinn-traefik.traefik.serviceaccount.identity.linkerd.cluster.local`) er korrekt whitelistet via `MeshTLSAuthentication`.
Likevel ser vi i pod-loggene til Umbraco periodiske `Connection denied` på TCP-nivå (port 4143) for nettopp denne identiteten. Mest sannsynlige årsak: Linkerd klarer ikke å gjenkjenne trafikken som HTTP/2 slik `Server` forventer (Kestrel snakker trolig vanlig HTTP/1.1 i klartekst til Traefik, ikke h2c), og når protokollgjenkjenningen ikke treffer, blir tilkoblingen evaluert på rått TCP-nivå. Siden det ikke finnes noen `AuthorizationPolicy` bundet direkte til `Server`-ressursen (kun til HTTPRoute-barnet), blir slike tilkoblinger avvist av Linkerds deny-by-default.
Siden `network-policies.yaml` ligger i `base/` og arves uendret av alle overlays, er dette ikke prod-spesifikt: samme feilsignatur er bekreftet i loggene til både prod (04.08.2026, sammenfallende med at Grafana-varselet `infoportal-availability-prod` slo ut) og at22 (05.08.2026). Frekvensen er lav (færre enn 1 avvisning per ~100 minutter i begge miljøer) og hverken pod eller HTTPRoute har vist andre tegn til problemer, så dette fører foreløpig ikke til vedvarende nedetid — men det er en reell, systemisk sårbarhet i alle miljøer.
Umbraco kjører i tillegg med `replicas: 1` og `strategy: Recreate` i alle overlays, så en slik avvisning treffer hele avhengigheten uten failover til en annen pod.
**Forslag til løsning**
Legg til en `AuthorizationPolicy` som targeter `Server`-ressursen (`umbraco-http-server`) direkte, som fallback-autorisasjon for tilkoblinger som ikke blir matchet mot HTTPRoute-regelen. Vurder samtidig om `proxyProtocol: HTTP/2` faktisk stemmer med hva Kestrel/Traefik forhandler i praksis — hvis trafikken reelt sett er HTTP/1.1, bør feltet endres eller fjernes for å unngå protokoll-mismatch. Siden `network-policies.yaml` ligger i `base/`, fikser én endring dette for alle miljøer samtidig.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in syncroot/base/umbraco/network-policies.yaml by reading umbraco-http-server, umbraco-http-auth, and umbraco-http-route together. Check the prod and at22 pod logs and the configured HTTP/2 expectation against the Kestrel/Traefik traffic described in the issue. Done means unrecognized connections are authorized appropriately and the protocol configuration matches observed behavior across overlays.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kubernetes
- Domain
- infrastructure, networking, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100