GH GambleHub

Private endpoints і внутрішні мережі

1) Навіщо приватна мережа

Мета - мінімізувати поверхню атаки і вартість egress, підключаючи критичні сервіси по приватних лінках без виходу в інтернет. Це дає:
  • ізоляцію PaaS/DB/сховищ від публічних IP;
  • спрощення відповідності (PCI DSS/GDPR);
  • передбачувані затримки і маршрутизацію.

2) Базова модель: VPC/VNet і хаби

Адресний простір: єдиний план CIDR, без перетинів (наприклад,'10. 0. 0. 0/12'розрізається по оточеннях і хабах).
Сегментація: підмережі'ingress','app','data','ops','shared'з окремими маршрутами/ACL/SG.
Транзитний хаб: центральний VPC/VNet зі шлюзами (VPN/DirectConnect/ExpressRoute/Interconnect), між-VPC peering/Transit Gateway і мережевими фаєрволами.
Dual-stack: планування IPv6 заздалегідь (економить NAT, покращує масштаб адрес).

3) Private endpoints: принципи

Private endpoint/PrivateLink/Private Service Connect - приватний інтерфейс до керованого сервісу (об'єктне сховище, черги, БД, секрет-сховище), доступний тільки з вашого адресного простору:
  • Трафік йде всередині провайдерської мережі (не через інтернет).
  • Endpoint policy обмежує, куди можна ходити (префікси/ARN/ресурси).
  • DNS перевизначається на приватні IP (див. § 6).

Типові цілі: об'єктні стори (S3/GCS/Blob), secret/KMS, черги, шини подій, керовані БД, аналітичні сервіси, артефакт-регістри.

4) Вхід і балансування всередині

Internal Load Balancer (ILB) для L4/7, бачимо тільки з приватних підмереж.

Kubernetes:
  • 'Service'типу'LoadBalancer'з internal-анотаціями.
  • Вхід через Internal Ingress (Nginx/Contour/Gateway API) на приватній адресі.
  • API Gateway (private): приватна інтеграція до бекендів; назовні - тільки через edge, якщо потрібно.

Приклад: K8s Ingress як внутрішній

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-контур: «за замовчуванням - deny»

Без прямого інтернету з приватних підмереж: все назовні тільки через:
  • NAT Gateway (для апдейтів/репозиторіїв) + egress allowlist по FQDN/IP;
  • TLS інспекція/проксі, якщо політики вимагають контролю;
  • Private endpoints до PaaS/регістрів замість NAT.
  • SG/NACL: явні дозволи per-сервіс, «на схід-захід» - мінімум.
  • Egress-політики K8s (CNI/OPA Gatekeeper/Calico NetworkPolicy) - заборона зовнішніх IP, дозволу на кластери/ендпойнти.

6) DNS: split-horizon и private zones

Розділіть внутрішні зони ('.internal. corp') і публічні.
Private DNS zones для сервісів провайдера: перевизначають публічні імена (наприклад,'bucket. s3. region. amazonaws. com') на приватні A/AAAA-записи.
Forwarders/Conditional DNS между on-prem ↔ cloud.
Формат імен: інкапсулюйте оточення/регіон ('api. eu1. internal. corp'), уникайте PII.

Приклад запису:

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

7) Патерни міжмережевих зв'язків

Peering (VPC↔VPC/VNet↔VNet): простий і швидкий; транзит не завжди підтримується → використовуйте Transit Gateway/Virtual WAN/Cloud Router для зірки (hub-and-spoke).
On-prem ⇄ cloud: IPsec VPN для старту, потім виділена лінія (DC/ER/IC) з BGP і резервом (два провайдера, різні точки входу).
Сегментація VRF/Route-domain: ізоляція prod/stage/dev і карткового периметра.

8) Zero Trust і внутрішня автентифікація

mTLS за замовчуванням (service mesh: Istio/Linkerd/Consul), машинна ідентичність: SPIFFE/SPIRE.
Політики L7: авторизація за JWT/claims/scopes, обмеження маршрутів/методів на рівні проксі.
Secrets: HashiCorp Vault/КMS + External Secrets Operator; короткоживучі креденшели (STS).
Bastion/Privileged Access: доступ в приватку тільки через брокер/JIT-сесію (MFA, запис команд).

Приклад: Envoy фільтр mTLS + JWT-authz (фрагмент)

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) Дані і PaaS всередині приватки

Бази/кластери: тільки приватні адреси; адмінка через bastion/JIT.
Сховища: доступ з VPC по private endpoint; endpoint policy дозволяє тільки потрібні бакети/контейнери.
Черги/шини: приватні інтерфейси; продьюсери/консьюмери - в тому ж VPC/peering.
Регістри артефактів: приватний доступ з CI/CD runners в приватних підмережах.

10) Спостережуваність в приватних мережах

OpenTelemetry Collector - як шлюз телеметрії: внутрішні експортери в self-hosted (Prometheus/Tempo/Loki/ClickHouse) або в керовані backends по private endpoints.
Flow logs/NSG/NACL logs і reachability analyzer - обов'язкові.
SLO-зрізи: 'site/region/vpc/subnet', алерти на витік egress і несподіваний «інтернет-напрямок».

11) Тестування та верифікація

Policy as Code (OPA/Gatekeeper) для мережевих правил/Ingress/Service.
Canary-маршрути: тестові домени в private DNS, synthetic-перевірки з різних підмереж/AZ/регіонів.
Chaos-мережа: затримки/втрати в між-VPC/меж-AZ (netem/Toxiproxy), перевірки таймаутів і retry-політик.

12) Приклади конфігурацій

12. 1 Terraform: мітки та маршрути (ідея)

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: заборона всього, крім потрібного

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) Антипатерни

Загальний «management-інтернет» з приватних підмереж; відсутність egress-контролю.
Спліт-брейн DNS і випадкові ручні '/etc/hosts'.
Перетинаються CIDR і «NAT-матрьошки».
Публічні endpoint'и для БД/сховищ «заради зручності».
Відсутність логів потоків/аудиту правил; «відкриті» SG'0. 0. 0. 0/0`.
Довгоживучі статичні ключі доступу в коді/CI.

14) Вартість і продуктивність

Private endpoints часто дешевше постійного NAT egress і безпечніше.
Плануйте NAT-кластери/az-local для пропускної здатності, щоб не створити bottleneck.
Кеш/edge і SWR зменшують крос-регіональний трафік.
Вибір протоколів: HTTP/2/gRPC всередині → менше з'єднань і TLS-оверхаеда.

15) Специфіка iGaming/фінансів

PCI DSS: картковий контур (CDE) в окремій мережі/VRF, ніякого інтернету; доступ до стора/PSP-логів тільки за private endpoints; незмінні аудити (WORM/Object Lock).
KMS/Vault: ключі сегментовані per регіон/бренд; операції підпису (HSM) доступні тільки з CDE по mTLS.
PSP/KYC: якщо є private connectivity/маркети - використовуйте; інакше - egress через довірений проксі з HMAC/mTLS і явною allowlist.
Мульти-тенантність: теги і політики по'tenant '/' brand'; окремі private DNS-імена та SG-шари.

16) Чек-лист prod-готовності

  • План CIDR без перетинів; dual-stack готовий (IPv6).
  • Hub-and-Spoke, Transit, peering; on-prem ⇄ cloud - BGP, резервні лінк-пари.
  • Всі PaaS/сховища/БД - через private endpoints + endpoint policies.
  • Internal LB/Ingress; публічний периметр - тільки на edge/WAF.
  • Split-horizon DNS, private zones і conditional-forwarding налаштовані.
  • Egress за замовчуванням «deny»; NAT/проксі обмежені і журналюються.
  • Mesh mTLS + SPIFFE; JWT-authz на L7; Vault/ESO, короткі секрети.
  • NetworkPolicy/SG/NACL - «мінімально необхідне», flow-logs і reachability-аналіз.
  • OTel Collector всередині; алерти на витік egress, SLO по'site/region/vpc'.
  • PCI/аудит: WORM-журнали, KMS/HSM, ізоляція CDE, runbook доступу.

17) TL; DR

Будуйте мережу за схемою hub-and-spoke з чітким CIDR-планом, використовуйте private endpoints до кожного PaaS/сховища/БД, а трафік назовні - тільки через керовані egress-точки. Всередині - internal LB/Ingress, mTLS + SPIFFE, split-horizon DNS, строгі NetworkPolicy/SG і телеметрія через OTel. Для iGaming/фінансів додайте PCI-сегментацію, KMS/Vault і незмінний аудит; PSP/KYC виводите через приватні канали або жорстко контрольований проксі.

Contact

Зв’яжіться з нами

Звертайтеся з будь-яких питань або за підтримкою.Ми завжди готові допомогти!

Telegram
@Gamble_GC
Розпочати інтеграцію

Email — обов’язковий. Telegram або WhatsApp — за бажанням.

Ваше ім’я необов’язково
Email необов’язково
Тема необов’язково
Повідомлення необов’язково
Telegram необов’язково
@
Якщо ви вкажете Telegram — ми відповімо й там, додатково до Email.
WhatsApp необов’язково
Формат: +код країни та номер (наприклад, +380XXXXXXXXX).

Натискаючи кнопку, ви погоджуєтесь на обробку даних.