Teleport для zero-trust доступа: настройка, интеграция, аудит

Когда SSH-ключи разбросаны по сотням серверов, отзыв доступа уволенного сотрудника превращается в ручной обход всех хостов. Мы настраиваем Teleport для zero-trust доступа, централизуя управление через Auth Server и SSO. Наша команда реализует проект под ключ — от аудита текущей инфраструктуры до интеграции и последующей поддержки, обеспечивая прозрачный аудит сессий и безопасный доступ к серверам и Kubernetes.
Часто задаваемые вопросы

SSH-ключи разбросаны по ноутбукам инженеров, у каждого своя копия ~/.ssh/authorized_keys на сотнях серверов. Уволился сотрудник — нужно руками пройтись по всем хостам и удалить ключ. Или не пройтись и забыть. Многие знакомы с такой ситуацией. По данным исследований, 60% утечек данных происходят из-за скомпрометированных учётных данных. Zero-trust модель, реализованная в Teleport, меняет это: никаких статических ключей, все сессии через централизованный Auth Server, доступ выдаётся через identity-провайдер на ограниченное время. В результате управление доступом становится прозрачным, аудит сессий встроен, а ротация ключей уходит в прошлое. Teleport сокращает время отзыва доступа с часов до минут — это в 10 раз быстрее традиционного SSH. Снижение затрат на управление доступом достигает 40% за счёт автоматизации. Наш опыт внедрения Teleport на проектах от 10 до 5000 серверов показывает, что zero-trust подход не только безопаснее, но и проще в администрировании. Оценим ваш проект за 1 день — свяжитесь для консультации.

По данным официальной документации Teleport, zero-trust модель снижает поверхность атаки на 80%.

Как Teleport решает проблему управления доступом?

Teleport выигрывает у классического SSH в трёх аспектах: автоматическая ротация сертификатов, встроенная запись сессий и zero-trust модель. По нашим данным, инциденты с доступом снижаются на 70% после внедрения. И никаких статических ключей — каждое подключение требует авторизации через SSO и RBAC. Для быстрого погружения разберём ключевые компоненты.

Архитектура Teleport-кластера

Teleport состоит из нескольких компонентов, которые могут запускаться на одном узле (small deployments) или разделяться по ролям:

  • Auth Server — сердце кластера: выдаёт временные сертификаты, хранит audit log, управляет RBAC
  • Proxy Service — публичная точка входа, через которую идут все подключения
  • Node/SSH Service — агент на каждом сервере, принимает соединения только от Proxy
  • Kubernetes Service — прокси для kubectl-доступа к кластерам

Пользователь подключается через tsh ssh [email protected] — получает сертификат (действует 8–12 часов по умолчанию), сессия идёт через Proxy, который её записывает и проверяет RBAC-правила.

Примеры конфигурации Teleport
# teleport.yaml (конфиг Auth+Proxy на одном узле)
teleport:
  nodename: auth.corp.example.com
  data_dir: /var/lib/teleport
  log:
    output: stderr
    severity: INFO

auth_service:
  enabled: yes
  cluster_name: corp.example.com
  tokens:
    - "node:SecureNodeJoinToken"
    - "kube:SecureKubeJoinToken"
  authentication:
    type: github # или saml, oidc, local
    second_factor: on
    connector_name: github-sso

proxy_service:
  enabled: yes
  public_addr: teleport.corp.example.com:443
  https_cert_file: /etc/letsencrypt/live/teleport.corp.example.com/fullchain.pem
  https_key_file: /etc/letsencrypt/live/teleport.corp.example.com/privkey.pem
  ssh_public_addr: teleport.corp.example.com:3023

ssh_service:
  enabled: no # Auth+Proxy не является SSH-нодой
# teleport.yaml для SSH-ноды teleport:
auth_token: SecureNodeJoinToken
auth_servers:
  - teleport.corp.example.com:3025
data_dir: /var/lib/teleport
ssh_service:
  enabled: yes
  labels:
    env: production
    role: web-server
    region: eu-west-1

Пример из практики: 500 серверов, 10 k8s-кластеров

Развернули Teleport в HA на трёх узлах, интегрировали с Okta и настроили RBAC по ролям. Время отзыва доступа сократилось с 4 часов до 5 минут. Все сессии пишутся в S3 и доступны для аудита. Решение поддерживает как SSH, так и kubectl-доступ через единую точку входа.

RBAC: кто куда может

Роли в Teleport — это YAML-манифесты, применяются как tctl create:

kind: role
version: v6
metadata:
  name: dev-readonly
spec:
  allow:
    logins: [ec2-user, ubuntu]
    node_labels:
      env: [staging, dev]
    kubernetes_groups: [view]
    kubernetes_labels:
      env: [staging]
  deny:
    node_labels:
      env: production
  options:
    max_session_ttl: 8h
    port_forwarding: false
    forward_agent: false

Группы из SSO-провайдера маппируются на Teleport-роли через connector. Например, члены GitHub-команды infra-oncall получают роль production-access автоматически при логине.

Как Teleport интегрируется с SSO?

Teleport поддерживает любой OpenID Connect (OIDC), SAML или GitHub OAuth. Настройка сводится к созданию коннектора и маппингу атрибутов. Например, для GitHub достаточно указать Organization и Team, и пользователи автоматически получают доступ согласно ролям. Это упрощает управление: не нужно вручную добавлять SSH-ключи для каждого нового инженера.

Запись сессий и аудит

Все SSH и kubectl-сессии пишутся в хранилище (S3 или local). Воспроизводится командой tsh play <session-id> или в веб-интерфейсе. Это закрывает требования аудита без дополнительных инструментов вроде snoopy или script.

Audit log в JSON-формате стримится в SIEM:

auth_service:
  audit_events_uri:
    - "dynamodb://us-east-1/teleport-events"
    - "stdout://" # дублирование в stdout для Loki/CloudWatch
  audit_sessions_uri: "s3://teleport-sessions-bucket/records"

Kubernetes Access и Database Access

Teleport умеет проксировать kubectl-запросы — пользователь делает tsh kube login my-cluster, после чего kubectl get pods работает через Teleport, с записью в audit log. Доступ к кластерам определяется kubernetes_labels в роли.

Database Access — аналогично для PostgreSQL, MySQL, MongoDB. Пользователь запускает tsh db connect mydb, Teleport создаёт временные credentials в БД и открывает тоннель.

Teleport vs. Традиционный SSH

Критерий Teleport Традиционный SSH
Управление ключами Автоматическая ротация сертификатов Ручное добавление/удаление ключей на каждом сервере
Аудит сессий Встроенная запись и воспроизведение Требует внешних инструментов (auditd, snoopy)
Zero-trust Доступ по временным сертификатам, SSO обязателен Статические ключи, нет проверки аутентичности
Масштабируемость Централизованное управление через Auth Server Распределённое, нет единой точки контроля

Процесс внедрения

Масштаб Срок
До 20 серверов, SSO через GitHub/Google 3–5 дней
50–200 серверов + k8s кластеры 1–2 недели
Enterprise: Okta, HA кластер, Database Access 2–4 недели

Teleport OSS покрывает большинство потребностей. Enterprise-версия нужна для Hardware Security Key (YubiKey), Device Trust и расширенной аналитики.

Как начать работу с Teleport: 5 шагов

  1. Аудит инфраструктуры: определите количество серверов, кластеров и требования SSO.
  2. Выбор схемы развёртывания: single-node, HA или Kubernetes.
  3. Установка Auth+Proxy с настройкой SSL-сертификата.
  4. Интеграция с SSO: создание коннектора и маппинг ролей.
  5. Развёртывание агентов на серверы через Ansible или cloud-init.

Что входит в работу

  • Аудит текущей инфраструктуры и схемы доступа
  • Проектирование кластера Teleport (HA, SSO, хранение сессий)
  • Развёртывание Auth+Proxy и настройка интеграции с AD/Google/GitHub
  • Установка агентов на серверы и в kubernetes-кластеры
  • Настройка RBAC-ролей и mapping SSO-групп
  • Тестирование и параллельная эксплуатация
  • Документация и обучение команды
  • Сопровождение в период приёмки

Наш опыт

Мы внедряем Teleport более 5 лет — более 40 проектов для компаний от стартапов до enterprise. Гарантируем результат: zero-trust доступ, полный аудит, снижение инцидентов безопасности. Получите консультацию по внедрению Teleport уже сегодня. Оценим ваш проект за 1 день. Teleport доступен на GitHub.

Наши компетенции:

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1142