GH GambleHub

Endpoints privados y redes internas

1) Por qué una red privada

El objetivo es minimizar la superficie de ataque y el coste del egreso conectando servicios críticos a través de enlaces privados sin acceso a Internet. Esto da:
  • Aislamiento de PaaS/DB/repositorios de IP públicas;
  • simplificación de la conformidad (PCI DSS/GDPR);
  • retrasos y enrutamiento predecibles.

2) Modelo básico: VPC/VNet y hubs

Espacio de direcciones: un único plan CIDR, sin intersecciones (por ejemplo, '10. 0. 0. 0/12 'se corta por los alrededores y los centros).
Segmentación: subredes 'ingress',' app ',' data ',' ops', 'shared' con rutas separadas/ACL/SG.
Hub de tránsito: VPC/VNet central con pasarelas (VPN/DirectConnect/ExpressRoute/Interconnect), peering/Transit Gateway entre VPC y faervoles de red.
Dual-stack: planificación de IPv6 de antemano (ahorra NAT, mejora la escala de direcciones).

3) Private endpoints: principios

Private endpoint/PrivateLink/Private Service Connect es una interfaz privada con el servicio administrado (almacenamiento de objetos, colas, DB, almacenamiento secreto), disponible sólo desde su espacio de direcciones:
  • El tráfico fluye dentro de la red de proveedores (no a través de Internet).
  • La política de Endpoint limita a dónde se puede ir (prefijos/ARN/recursos).
  • El DNS se redefine como IP privada (ver § 6).

Objetivos típicos: S3/GCS/Blob, secret/KMS, colas, bus de eventos, DAB administrado, servicios analíticos, registros de artefactos.

4) Entrada y equilibrio en el interior

Internal Load Balancer (ILB) para L4/7, sólo visto desde subredes privadas.

Kubernetes:
  • 'Service' de tipo 'LoadBalancer' con anotaciones internas.
  • Iniciar sesión a través de Internal Ingress (Nginx/Contour/Gateway API) en una dirección privada.
  • API Gateway (private): integración privada con backends; hacia afuera - sólo a través de edge, si es necesario.

Ejemplo: K8s Ingress como interno

yaml apiVersion: networking. k8s. io/v1 kind: Ingress metadata:
name: api-internal annotations:
kubernetes. io/ingress. class: "nginx"
alb. ingress. kubernetes. io/scheme: internal # or provider equivalent spec:
rules:
- host: api. internal. corp http:
paths:
- path: /v1/
pathType: Prefix backend:
service:
name: api port: { number: 8080 }

5) Egress-contorno: «por defecto - deny»

Sin Internet directo de las subredes privadas: todo hacia fuera sólo a través de:
  • NAT Gateway (para apdates/repositorios) + egress allowlist por FQDN/IP;
  • Inspección TLS/proxy si las políticas requieren control;
  • Private endpoints a PaaS/registro en lugar de NAT.
  • SG/NACL: permisos explícitos por servicio, «al este-oeste» - mínimo.
  • Política de egresos de K8s (CNI/OPA Gatekeeper/Calico NetworkPolicy) - prohibición de IPs externas, permisos de clusters/endpoints.

6) DNS: split-horizon и private zones

Separe las zonas interiores ('.internal. corp ') y público.
Zonas DNS privadas para los servicios del proveedor: redefinen los nombres públicos (por ejemplo, 'bucket. s3. region. amazonaws. com ') en registros privados A/AAAA.
Forwarders/Conditional DNS между on-prem ↔ cloud.
Formato de nombres: encapsula el entorno/región ('api. eu1. internal. corp '), evitar PII.

Registro de ejemplo:

api. internal. corp. A  10. 20. 30. 40 s3. bucket. corp. A  10. 100. 0. 25 # via private endpoint

7) Patrones de interconexión

Peering (VPC↔VPC/VNet↔VNet): simple y rápido; el tránsito no siempre es compatible → utilice Transit Gateway/Virtual WAN/Cloud Router para la estrella (hub-and-spoke).
On-prem ⇄ cloud: IPsec VPN para iniciar, luego una línea dedicada (DC/ER/IC) con BGP y reserva (dos proveedores, diferentes puntos de entrada).
Segmentación VRF/Route-domain: aislamiento prod/stage/dev y perímetro de tarjetas.

8) Confianza cero y autenticación interna

mTLS-por defecto (mesh de servicio: Istio/Linkerd/Consul), identidad de máquina: SPIFFE/SPIRE.
Políticas L7: autorización por JWT/claims/scopes, restricción de rutas/métodos a nivel proxy.
Secrets: HashiCorp Vault/КMS + External Secrets Operator; créditos de vida corta (STS).
Bastion/Privileged Access: acceso a Private sólo a través de una sesión de broker/JIT (MFA, grabación de comandos).

Ejemplo: Envoy filtro mTLS + JWT-authz (fragmento)

yaml transport_socket:
name: tls typed_config: {... spiffe://svc. api... }
http_filters:
- name: envoy. filters. http. jwt_authn typed_config:
providers:
oidc: { issuer: https://idp. corp, audiences: ["api"], remote_jwks: {...} }
rules: [{ match: { prefix: "/v1" }, requires: { provider_name: oidc } }]

9) Datos y PaaS dentro del paquete

Bases/clústeres: sólo direcciones privadas; admin vía bastion/JIT.
Almacenamiento: acceso desde VPC a través de un extremo privado; la política de endpoint sólo permite los baquetas/contenedores deseados.
Colas/bus: interfaces privadas; productores/consumidores - en el mismo VPC/peering.
Registros de artefactos: acceso privado desde CI/CD runners en subredes privadas.

10) Observabilidad en redes privadas

OpenTelemetry Collector - como puerta de enlace de telemetría: exportadores internos en self-hosted (Prometheus/Tempo/Loki/ClickHouse) o en backends administrados por private endpoints.
Flow logs/NSG/NACL logs y reachability analyzer - son obligatorios.
Cortes de SLO: 'site/region/vpc/subnet', alertas a la fuga de egresos y una inesperada 'dirección de Internet'.

11) Pruebas y verificación

Policy as Code (OPA/Gatekeeper) para reglas de red/Ingress/Service.
Rutas canarias: dominios de prueba en DNS privado, comprobaciones synthetic de diferentes subredes/AZ/regiones.
Chaos-network: retrasos/pérdidas en el intervalo entre VPC/AZ (netem/Toxiproxy), comprobaciones de temporizadores y políticas retry.

12) Ejemplos de configuraciones

12. 1 Terraform: etiquetas y rutas (idea)

hcl resource "aws_route_table" "app" {
vpc_id = aws_vpc. core. id tags = { Name = "rt-app", env = var. env, zone = "private" }
}
Route on PrivateLink endpoint (interface endpoint is created separately)
resource "aws_vpc_endpoint_route_table_association" "s3" {
route_table_id = aws_route_table. app. id vpc_endpoint_id = aws_vpc_endpoint. s3. id
}

12. 2 K8s NetworkPolicy: prohibir todo lo que no sea necesario

yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata: { name: deny-all }
spec:
podSelector: {}
policyTypes: ["Ingress","Egress"]
kind: NetworkPolicy metadata: { name: allow-core }
spec:
podSelector: { matchLabels: { app: api } }
egress:
- to:
- namespaceSelector: { matchLabels: { ns: db } }
ports: [{ port: 5432, protocol: TCP }]
- to:
- ipBlock: { cidr: 10. 100. 0. 0/16 }  # private endpoints ports: [{ port: 443, protocol: TCP }]

12. 3 Nginx Ingress (internal scheme) + HSTS

yaml metadata:
annotations:
alb. ingress. kubernetes. io/scheme: internal nginx. ingress. kubernetes. io/hsts: "true"

13) Antipatternas

El «management-internet» común de las subredes privadas; sin control de egresos.
Divisor DNS y manual aleatorio '/etc/hosts'.
Cruzando CIDR y «MAT-matres».
Public endpoint's para DB/repositorios «por conveniencia».
Ausencia de registros de flujo/auditoría de reglas; «abierto» SG '0. 0. 0. 0/0`.
Llaves de acceso estático de larga vida en código/CI.

14) Costo y rendimiento

Private endpoints son a menudo más baratos que el constante NAT egress y más seguros.
Planifique los clústeres NAT/az-local para que el ancho de banda no cree bottleneck.
El caché/edge y el SWR reducen el tráfico regional cruzado.
Selección de protocolos: HTTP/2/gRPC dentro de → hay menos conexiones y overhaed TLS.

15) Especificidad de iGaming/finanzas

PCI DSS: circuito de tarjetas (CDE) en una red/VRF separada, sin Internet; el acceso a los logs sor/PSP sólo por medio de puntos de acceso privados; auditorías sin cambios (WORM/Object Lock).
KMS/Vault: claves segmentadas por región/marca; las operaciones de firma (HSM) sólo están disponibles desde CDE por mTLS.
PSP/KYC: si hay conexión privada/markets - use; de lo contrario, egresa a través de un proxy de confianza con HMAC/mTLS y un allowlist explícito.
Multi-tenencia: etiquetas y políticas por 'tenant '/' brand'; nombres DNS privados individuales y capas SG.

16) Lista de comprobación prod

  • Plan CIDR sin intersecciones; dual-stack listo (IPv6).
  • Hub-and-Spoke, Transit, peering; on-prem ⇄ cloud - BGP, pares de enlaces de respaldo.
  • Todos los PaaS/repositorios/DB - a través de private endpoints + endpoint policies.
  • Internal LB/Ingress; perímetro público - sólo en edge/WAF.
  • Split-horizon DNS, zonas privadas y conditional-forwarding están configurados.
  • El resultado predeterminado es «deny»; NAT/proxy están restringidos y registrados.
  • Mesh mTLS + SPIFFE; JWT-authz en L7; Vault/ESO, secretos cortos.
  • NetworkPolicy/SG/NACL - «mínimo necesario», flow-logs y reachability-análisis.
  • OTel Coleccionista dentro; alertas a la fuga egress, SLO por 'site/region/vpc'.
  • PCI/auditoría: registros WORM, KMS/HSM, aislamiento CDE, acceso runbook.

17) TL; DR

Construya la red de acuerdo con el esquema hub-and-spoke con un plan CIDR claro, use puntos de acceso privados para cada PaaS/almacenamiento/BD, y el tráfico hacia afuera sólo a través de puntos de control egress. Internal LB/Ingress, mTLS + SPIFFE, split-horizon DNS, estrictos NetworkPolicy/SG y telemetría a través de OTel. Para iGaming/finanzas, agregue segmentación PCI, KMS/Vault y auditoría sin cambios; PSP/KYC retire a través de canales privados o un proxy altamente controlado.

Contact

Póngase en contacto

Escríbanos ante cualquier duda o necesidad de soporte.¡Siempre estamos listos para ayudarle!

Telegram
@Gamble_GC
Iniciar integración

El Email es obligatorio. Telegram o WhatsApp — opcionales.

Su nombre opcional
Email opcional
Asunto opcional
Mensaje opcional
Telegram opcional
@
Si indica Telegram, también le responderemos allí además del Email.
WhatsApp opcional
Formato: +código de país y número (por ejemplo, +34XXXXXXXXX).

Al hacer clic en el botón, usted acepta el tratamiento de sus datos.