Skip to content

feat: firewall de egress — lista blanca + lista negra (prep iteración 2)#84

Open
az-adhoc wants to merge 1 commit into
mainfrom
feat/egress-firewall-lists
Open

feat: firewall de egress — lista blanca + lista negra (prep iteración 2)#84
az-adhoc wants to merge 1 commit into
mainfrom
feat/egress-firewall-lists

Conversation

@az-adhoc

Copy link
Copy Markdown
Contributor

Qué

Prepara blockOutboundTraffic.yaml (firewall de egress, iteración 2) para soportar dos listas, manteniéndolo default off (blockOutboundTraffic: false):

  • Lista blanca (allowedHosts, ya existía): default-deny vía REGISTRY_ONLY + ServiceEntry + VirtualService + AuthorizationPolicy ALLOW por SNI.
  • Lista negra (bannedHosts, nuevo): AuthorizationPolicy action: DENY por SNI en el egressgateway. DENY tiene precedencia sobre ALLOW → sirve para carve-outs dentro de un wildcard permitido (ej. allowedHosts: ["*.foo.com"] + bannedHosts: ["bad.foo.com"]).

Fix incluido

La AuthorizationPolicy ALLOW tenía from y to como reglas separadas → Istio las OR-ea, dejando el firewall abierto (este ns a cualquier host, o cualquier origen a los hosts permitidos). Ahora van en una sola regla (from AND to).

Modelo

Whitelist estricta (REGISTRY_ONLY): solo allowedHosts es alcanzable; un host fuera de la blanca ya queda bloqueado por el sidecar, así que la negra solo aplica como excepción dentro de wildcards. La lista blanca se va a poblar desde el inventario de egress (iteración 1, spec ingadhoc/devops-project 0007).

Compatibilidad

Aditivo, opt-in, sin bump de versión. blockOutboundTraffic: false en todos los tenants hoy (0 ServiceEntries en los clusters) → cambio dormido, sin impacto en vivo. Capacidad lista para activar por tenant en la iteración 2.

Pendiente (no en este PR)

  • Deprecar el blacklist crudo adhoc.dnsBannedHost (/etc/hosts sinkhole, no-prod) en favor de este DENY Istio-native.
  • Spec de iteración 2 (activación del firewall + rollout por tenant).

Archivos: blockOutboundTraffic.yaml, values.yaml (ingress.istio.bannedHosts: []), questions.yml.

…+to)

Prepara blockOutboundTraffic.yaml (iteración 2) para soportar lista blanca
(allowedHosts, ya existía) + lista negra (bannedHosts, nuevo) vía
AuthorizationPolicy DENY por SNI en el egressgateway (DENY > ALLOW; sirve para
carve-outs dentro de un wildcard permitido). Corrige la regla ALLOW: from y to
iban como reglas separadas (OR) → el firewall quedaba abierto; ahora una sola
regla (from AND to). Aditivo, default off (blockOutboundTraffic: false), sin bump.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant