• Русский
  • Включение взаимной Transport Layer Security

    Alauda Service Mesh поддерживает настройку защищённого взаимодействия между сервисами с использованием взаимной Transport Layer Security (mTLS) — протокола, обеспечивающего взаимную аутентификацию между клиентами и серверами сервисов.

    О взаимной Transport Layer Security (mTLS)

    В Alauda Service Mesh параметры mTLS можно настроить с помощью ресурса Istio.

    Режим STRICT mTLS настраивается с помощью ресурсов PeerAuthentication и DestinationRule.

    Изучите следующие ресурсы и концепции Istio для правильной настройки параметров mTLS:

    • PeerAuthentication
      Определяет режим mTLS, принимаемый sidecar-прокси.

      • PERMISSIVE: Принимает как незашифрованный, так и mTLS-трафик.
      • STRICT: Принимается только mTLS-трафик.
    • DestinationRule
      Определяет режим TLS, используемый для трафика, отправляемого sidecar-прокси.

      • DISABLE: Отправляет незашифрованный трафик.
      • SIMPLE, MUTUAL, ISTIO_MUTUAL: Отправляет трафик с использованием TLS.
    • Auto mTLS
      Автоматически включает mTLS для межсетевого взаимодействия независимо от режима PeerAuthentication. Эта функция управляется полем enableAutoMtls в конфигурации mesh и включена по умолчанию.
      Auto mTLS работает на уровне прокси и не требует изменений в коде приложений.

    По умолчанию PeerAuthentication установлен в режим PERMISSIVE, что позволяет sidecar в Service Mesh принимать как незашифрованный, так и mTLS-зашифрованный трафик.

    Включение строгого режима mTLS с помощью namespace

    Вы можете применить строгий режим mTLS ко всем рабочим нагрузкам в конкретном namespace, применив политику PeerAuthentication.

    Пример политики PeerAuthentication для namespace

    apiVersion: security.istio.io/v1
    kind: PeerAuthentication
    metadata:
      name: default
      namespace: <namespace>
    spec:
      mtls:
        mode: STRICT
    1. Укажите <namespace>, для которого применяется режим STRICT mTLS.

    Вы можете включить mTLS для всех целевых хостов в <namespace>, создав ресурс DestinationRule с режимом MUTUAL или ISTIO_MUTUAL, если auto mTLS отключён и PeerAuthentication установлен в режим STRICT.

    Пример политики DestinationRule для namespace

    apiVersion: networking.istio.io/v1
    kind: DestinationRule
    metadata:
      name: enable-mtls
      namespace: <namespace>
    spec:
      host: "*.<namespace>.svc.cluster.local"
      trafficPolicy:
       tls:
        mode: ISTIO_MUTUAL

    Включение строгого режима mTLS для всего service mesh

    Вы можете применить строгий режим mTLS на уровне всего кластера, применив политику PeerAuthentication в namespace управляющей плоскости (например, istio-system). Namespace должен совпадать со значением поля spec.namespace в ресурсе Istio.

    Пример политики PeerAuthentication для всего mesh

    apiVersion: security.istio.io/v1
    kind: PeerAuthentication
    metadata:
      name: default
      namespace: istio-system
    spec:
      mtls:
        mode: STRICT

    Кроме того, создайте ресурс DestinationRule, чтобы отключить mTLS для связи с API-сервером, так как у него нет sidecar. Аналогичные конфигурации DestinationRule применяйте для других сервисов без sidecar.

    Пример политики DestinationRule для всего mesh

    apiVersion: networking.istio.io/v1
    kind: DestinationRule
    metadata:
      name: api-server
      namespace: istio-system
    spec:
      host: kubernetes.default.svc.cluster.local
      trafficPolicy:
        tls:
          mode: DISABLE

    Проверка шифрования с помощью Kiali

    Консоль Kiali предоставляет несколько способов проверить, включено ли шифрование mTLS для ваших приложений, сервисов и рабочих нагрузок.

    • Перейдите на страницу Services Detail Overview.
    • На ребрах графа, где активен mTLS, отображается иконка замка.
    • В разделе Network интерфейса порты с включённым mTLS также отмечены иконкой замка.