Altinn / Altinn/info.altinn.no

Linkerd AuthorizationPolicy for Umbraco dekker ikke tilkoblinger som ikke gjenkjennes som HTTP, og forårsaker periodiske "Connection denied"

Open
#660 0 comments 0 reactions 0 assignees View on GitHub
BUG Teknisk
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.