Infograb logo
커맨드 라인 도구

Teleport는 네 가지 CLI 도구로 구성되어 있습니다.

  • teleport: 다양한 Teleport 서비스를 시작하고 구성하여 Teleport Access Platform을 지원합니다.
  • tsh: 최종 사용자가 Teleport에 인증하고 클러스터의 리소스에 액세스할 수 있도록 합니다.
  • tctl: Teleport Auth Service를 구성하는 데 사용됩니다.
  • tbot: 서비스 계정(예: CI/CD 서버)에 단기 자격証명(short lived credentials)을 제공하는 Machine ID를 지원합니다.

프로덕션에서 Teleport를 실행할 때 보안 사고를 피하기 위해 다음 모범 사례를 준수해야 합니다:

  • 필요한 경우가 아니면 프로덕션 환경에서 sudo 사용을 피하세요.
  • 새로운 비루트 사용자 계정을 생성하고 Teleport 실험을 위해 테스트 인스턴스를 사용하세요.
  • 필요하지 않는 한 비루트 사용자로서 Teleport의 서비스를 실행하세요. SSH 서비스만 루트 접근을 필요로 합니다. Teleport가 1024보다 작은 포트(예: 443)에서 수신 대기하도록 하려면 루트 권한(또는 CAP_NET_BIND_SERVICE 권한)이 필요합니다.
  • 최소 권한 원칙을 따르세요. 더 제한적인 역할로도 충분할 때 사용자의 권한을 허용하는 역할을 부여하지 마세요. 예를 들어, 사용자가 모든 클러스터 리소스에 액세스하고 편집할 수 있는 내장된 access,editor 역할을 부여하지 마세요. 대신 각 사용자에게 필요한 최소 권한을 가진 역할을 정의하고 액세스 요청을 구성하여 일시적으로 권한을 상승시켜주세요.
  • Teleport 리소스를 등록할 때(예: 새로운 데이터베이스나 응용 프로그램) 초대 토큰을 파일에 저장해야 합니다. 명령행에 토큰을 직접 입력하면 악의적인 사용자가 손상된 시스템에서 history 명령을 실행하여 이를 볼 수 있습니다.

이러한 관행이 문서에서 사용되는 예제에 반드시 반영되지 않는 점에 유의해야 합니다. 문서의 예제는 주로 시연 및 개발 환경을 위한 것입니다.

Teleport의 CLI 도구는 bash와 zsh용 완성 힌트를 제공할 수 있습니다. 예를 들어, tsh를 입력하고 Tab을 누르면 사용 가능한 모든 하위 명령이 표시되며, tsh --를 입력하고 Tab을 누르면 사용 가능한 모든 플래그가 표시됩니다.

완성을 활성화하려면, 셸 구성 파일에 추가 문장을 추가하십시오.

예시 (.bashrc):

eval "$(tsh --completion-script-bash)"

예시 (.zshrc):

# 완성 기능 활성화
autoload -Uz compinit
compinit

eval "$(tsh --completion-script-zsh)"

변경 사항을 보려면 셸을 다시 로드하십시오.

tctl, teleport, 및 tbot에 대해서도 동일한 프로세스를 반복할 수 있습니다.

경고

프로덕션 인스턴스, 환경 및/또는 설정을 영구적으로 수정하기 전에 백업하는 것이 모범 사례로 권장됩니다. 이렇게 하면 필요할 경우 기존 상태로 롤백할 수 있습니다.

리소스 필터링

tshtctl--search--query 플래그를 사용하여 서버, 애플리케이션, 데이터베이스, 데스크톱 및 Kubernetes 클러스터를 필터링할 수 있습니다.

--search 플래그는 리소스 필드에서 간단한 퍼지 검색을 수행합니다. 예를 들어, --search=macmac을 포함하는 리소스를 검색합니다.

--query 플래그를 사용하면 프레딕트 언어를 사용하여 더 정교한 검색을 수행할 수 있습니다.

두 경우 모두 명령어에 쉼표로 구분된 레이블 목록을 추가하여 결과를 더욱 세분화할 수 있습니다. 예:

tsh ls --search=foo,bar labelKey1=labelValue1,labelKey2=labelValue2

필터 예시

모든 노드 목록

tsh ls

레이블 인수를 사용하여 노드 목록

tsh ls env=staging,os=mac

검색 키워드를 사용하여 노드 목록

tsh ls --search=staging,mac

프레딕트 언어를 사용하여 노드 목록. 이 쿼리는 레이블이 있는 노드를 검색합니다.

`env` 키가 `staging`과 같고, `os` 키가 `mac`과 같은 레이블이 있는 노드를 검색합니다.

tsh ls --query='labels["env"] == "staging" && equals(labels["os"], "mac")'
Teleport 원문 보기