Skip to main content
Self hosted Teleport 서버 구성하기
  1. Posts/

Self hosted Teleport 서버 구성하기

·2 mins· ·
guide teleport self-hosted
Juseok Oh
Author
Juseok Oh
DevOps Engineer @ Hamalab
Table of Contents
teleport - This article is part of a series.
Part 1: This Article

1. Self-hosted Auth 서버 설치
#

사전 요구사항
#

  • 80 port
  • 443 port
  • 3025 port
  • 3080 port

1-1. 설치
#

curl https://cdn.teleport.dev/install.sh | bash -s 17.4.5

1-2. 인증서 발급(let’s encrypt)
#

sudo teleport configure -o file --acme --acme-email=user@example.com --cluster-name=teleport.example.com

1-3. teleport 서비스 등록 및 실행
#

sudo systemctl enable teleport
sudo systemctl start teleport

1-4. 텔레포트 콘솔 계정 생성
#

sudo tctl users add test-user --roles=access --logins=tp-test

위 명령을 실행했을 때 로그인할 수 있는 시간제한이 있는 url link가 발급되는데, 저기로 접속해보면

add-user

웰컴 페이지가 보이고 [Get started] 버튼을 클릭하면,

welcome

패스워드 설정하는 페이지가 나오고 원하는 패스워드를 입력 후 [Next] 버튼을 클릭하면,

setpswd

OTP 설정페이지로 이동되는데, 본인 스마트폰의 구글 Authenticator를 다운받아 해당 QR을 스캔하면 다운받은 앱에 등록이 되는데, 이때 OTP 코드를 입력하면 등록이 완료되고,

otp

텔레포트 콘솔 페이지에 접속이 된다.

console

별도 로그인 페이지는 아래와 같이 구성되며, 패스워드와 OTP를 모두 입력해야 로그인이 가능하다.
그러니, OTP 앱 관리가 중요하다.

login-page

권한
#

계정을 생성할때 부여할 수 있는 권한의 종류는 아래와 같다.

  • access : 기본적인 SSH 접속 및 세션 관리 권한
  • editor : 리소스 관리 및 구성 변경 권한
  • auditor : 감사 로그와 세션 녹화를 볼 수 있는 권한
  • admin : 모든 시스템 기능에 대한 전체 접근 권한 (가장 강력한 권한)

추가로 다음과 같은 특수 목적 역할도 있다.

  • reviewer : 액세스 요청을 검토하고 승인할 수 있는 권한
  • bot : 자동화된 작업을 위한 제한된 권한
  • db-* : 데이터베이스 액세스 관련 역할
  • k8s-* : Kubernetes 액세스 관련 역할
  • app-* : 애플리케이션 액세스 관련 역할

또한 Teleport는 사용자 지정 역할을 생성하여 더 세분화된 권한 제어가 가능하다.
이를 통해 특정 노드에만 접근 가능하거나, 특정 시간에만 접속 가능하게 하는 등 조직의 요구사항에 맞는 사용자 지정 권한을 설정할 수 있다.
사용자 지정 역할은 YAML 파일을 통해 정의하고 tctl create -f role.yaml 명령으로 생성할 수 있다.

유즈 케이스
#

사용자 지정 역할을 통한 세분화된 권한 제어가 필요없다면,

  • 일반 관리자 : editor, access

    sudo tctl users add teleport-admin --roles=editor,access --logins=ubuntu
    
  • 일반 사용자 : access
    뒤에 –logins 옵션에 올 계정은 텔레포트 인증서버의 실제 리눅스 사용자 계정이다.

    sudo adduser tp-user
    sudo tctl users add teleport-user --roles=access --logins=tp-user
    
  • 시스템 관리자 : admin

    sudo tctl users add admin --roles=admin --logins=root
    
teleport - This article is part of a series.
Part 1: This Article

Related

Teleport, 쿠버네티스로 배포하기
·4 mins
guide teleport self-hosted k8s
게으른 개발자의 IDE, LazyVim
·3 mins
guide vim ide tool
SSL Without Nginx: Let's Encrypt for FastAPI
·5 mins
guide ssl https devops lets encrypt
[AWS] EC2 에 EFS 마운트하기
·1 min
guide AWS EC2 EFS
[AWS] EC2 신규 EBS 스토리지 추가
·3 mins
guide AWS EC2 EBS out-scale
[SonarQube] 외부 플러그인 설치 방법
·1 min
guide SonarQube