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
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139