how-to-install-and-manage Help

Teleport

Teleport est une plateforme de gestion des accès, et d'observabilité pour les SI. Il est composé de plusieurs composants :

  • Teleport Auth: Le serveur d'authentification qui gère les utilisateurs, les rôles et les politiques d'accès.

  • Teleport Proxy: Le point d'entrée pour les utilisateurs, qui gère les connexions et les sessions.

  • Teleport Node: Les serveurs cibles auxquels les utilisateurs se connectent, qui exécutent les applications et services.

  • Teleport Database: La base de données qui stocke les informations sur les utilisateurs, les rôles et les sessions.

  • Teleport CLI: L'interface en ligne de commande pour interagir avec Teleport.

Pourquoi utiliser Teleport

Teleport est une solution de gestion des accès qui offre une sécurité renforcée et une visibilité complète sur les activités des utilisateurs dans un système d'information. Il permet de centraliser la gestion des accès aux ressources, de contrôler les permissions des utilisateurs et de surveiller les activités en temps réel. Teleport est particulièrement adapté pour les environnements distribués et les architectures microservices, où il est essentiel de gérer les accès de manière sécurisée et efficace.

Installation de Teleport

Contexte

Téléport est installé dans le cluster Kubernetes. Afin de faciliter son accès à distance. Et cela permet de centraliser la gestion des accès aux ressources du cluster.

Installation

Pour installer Teleport, nous allons utiliser le chart Helm officiel de Teleport.

Voici la helm charts:

apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: teleport namespace: teleport-cluster spec: interval: 10m chart: spec: chart: teleport-cluster version: '17.5.1' sourceRef: kind: HelmRepository name: teleport namespace: teleport-cluster interval: 2h values: clusterName: teleport.innovalia.cc ingress: enabled: false logs: extraFields: ["timestamp", "level", "component", "caller"] format: text level: INFO output: stderr persistance: enabled: true # podMonitor: # additionalLabels: # prometheus: default # enabled: true # interval: 30s proxyListenerMode: multiplex proxy: annotations: deployment: reloader.stakater.com/auto: "true" teleportConfig: proxy_service: trust_x_forwarded_for: true rbac: create: true service: type: ClusterIP serviceAccount: create: true validateConfigOnDeploy: true

Configuration

Une fois Teleport déployé, il est possible de tester son déploiement, en utilisant la commande suivante :

curl https://teleport.innovalia.cc/webapi/ping
teleport-status.png

Création du role member

Pour créer un rôle de membre dans Teleport, nous allons définir un rôle qui permet aux utilisateurs, de se connecter aux nœuds du cluster et d'exécuter des commandes.

teleport-role-create.png

Création d'un utilisateur

Maintenant que le rôle est créé, Nous allons créer un utilisateur qui aura ce rôle.

teleport-create-user.png

Ensuite, il faut se connecter au lien qui est affiché dans la console.

Cela va ouvrir une page web pour créer l'utilisateur.

teleport-create-user-web.png

Il faut ensuite cliquer sur passwordless et connecter sa clé d'authentification.

add-auth-key-teleport.png
hardware-key-teleport.png

Ajout d'une ressource type serveur

Il faut cliquer sur le bouton enroll new ressource. Cela va ouvrir une page web pour ajouter une nouvelle ressource.

teleport-enroll-new-ressource.png
Il faut ensuite copier-coller la commande dans le terminal de la machine que l'on veut ajouter.

Et notre machine est maintenant accessible depuis Teleport.

teleport-access.png

Utilisation de teleport en CLI

Voici la procédure pour se ssh ou accéder aux ressources de l'infrastructure via Teleport en ligne de commande. Tout en faisant un rebond via une ressource intermédiaire (jump host). Les avantages de cette méthode sont :

  • Sécurité renforcée: Les connexions sont sécurisées par des clés d'authentification.

  • Gestion centralisée des accès: Les rôles et permissions sont gérés de manière centralisée dans Teleport.

  • Audit et traçabilité: Toutes les connexions et actions sont enregistrées pour une traçabilité complète.

Prérequis

  • Avoir un compte utilisateur dans Teleport avec les permissions nécessaires.

  • Avoir installé le client Teleport CLI sur votre machine locale.

Étapes

  1. Se connecter à Teleport: Utilisez la commande suivante pour vous connecter à Teleport :

    tctl auth login --proxy=teleport.innovalia.cc --auth=passwordless

    Cela vous demandera de vous authentifier avec votre clé d'authentification.

  2. teleport-cli-login.png
  3. Changer sa configuration ssh pour utiliser Teleport :

Tout d'abord, il faut rajouter l'alias de teleport soit dans le bashrc ou l'executer dans la sessions courante :

alias ssh="/usr/local/bin/tsh ssh" ```: On va se logger par exemple sur la machine `opal` : ```bash ssh opal
Cela va établir une connexion SSH à la machine `opal` via Teleport, en utilisant les permissions définies dans votre rôle.
login-ssh.png

Et depuis cette machine, il sera possible de rebondir sur les autres machines de l'infrastructure.

Se connecter au cluster kubernetes via teleport

Afin de sécuriser l'accès au cluster Kubernetes, il est possible de se connecter au cluster via Teleport.

Prérequis

  • Avoir un compte utilisateur dans Teleport avec les permissions nécessaires pour accéder au cluster Kubernetes.

  • Avoir installé le client Teleport CLI sur votre machine locale.

Étapes

  1. Se connecter à Teleport: Utilisez la commande suivante pour vous connecter à Teleport :

    tctl auth login --proxy=teleport.innovalia.cc --auth=passwordless

    Cela vous demandera de vous authentifier avec votre clé d'authentification.

  2. Forcer le kubeconfig

    export KUBECONFIG=${HOME?}/teleport-kubeconfig.yaml
  3. **Se connecter au cluster Kubernetes

    tsh kube login teleport.innovalia.cc

    kubelogin.png
    Cela va configurer votre kubeconfig pour utiliser Teleport comme point d'entrée pour le cluster Kubernetes.
    kube-test-login.png

Last modified: 22 July 2025