Как обеспечивается безопасность сетевых подключений в инфраструктуре?

«Как обеспечивается безопасность сетевых подключений в инфраструктуре?» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Я строю безопасность сети на нескольких уровнях, от периметра до сервисов.

1. Шифрование трафика (in transit):

  • Внешний трафик: Все публичные эндпоинты защищаю TLS 1.2/1.3. Использую сертификаты от Let's Encrypt, автоматически обновляемые через cert-manager в Kubernetes. Настройка для Ingress-контроллера (Nginx):
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: app-ingress
    annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
    spec:
    tls:
    - hosts:
    - app.example.com
    secretName: app-tls-secret
    rules:
    - host: app.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: app-service
            port:
              number: 80
  • Внутренний трафик: Внутри кластера Kubernetes настраиваю mTLS через service mesh (Istio Linkerd) для шифрования и аутентификации трафика между подами.

2. Сегментация и контроль доступа:

  • Периметр: Использую облачные Security Groups (AWS) или Firewall Rules (GCP) для ограничения доступа к управляющим портам (SSH, K8s API) только с доверенных IP-адресов.
  • Внутри кластера: Применяю Kubernetes NetworkPolicies для реализации модели "zero-trust". Например, политика, разрешающая доступ к БД только с бэкенд-подов:
    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
    name: backend-to-db
    spec:
    podSelector:
    matchLabels:
      app: postgres
    policyTypes:
    - Ingress
    ingress:
    - from:
    - podSelector:
        matchLabels:
          app: backend-api
    ports:
    - protocol: TCP
      port: 5432
  • Private Clusters: Разворачиваю управляемые кластеры (GKE Private, EKS Private) без публичных IP-адресов для нод, доступ только через VPN или bastion-хост.

3. Защита от DDoS и WAF:

  • Использую облачные сервисы (AWS Shield, Cloudflare) для защиты от DDoS-атак на уровне L3/L4.
  • Настраиваю Web Application Firewall (WAF) правила (через AWS WAF или модуль ModSecurity в Nginx) для защиты от SQL-инъекций, XSS и других атак уровня приложения.