teleport CLI 참조
Teleport Access Platform을 지원하는 CLI 도구는 teleport
이며, 이를 통해 Teleport 서비스를 명령 줄에서 관리할 수 있습니다:
teleport
CLI의 주요 명령은 다음과 같습니다:
명령 | 설명 |
---|---|
teleport app start | Teleport Application Service를 시작합니다. |
teleport configure | Teleport 서비스에 대한 구성 YAML 파일을 생성하고 기록합니다. 이 파일은 프로덕션 환경에 맞게 사용자 정의해야 하며, 기본 출력은 테스트할 때만 사용해야 합니다. |
teleport db configure aws create-iam | 원하는 IAM 정책을 생성하고, 만들고, Teleport에서 관리하는 데이터베이스에 연결합니다. |
teleport db configure aws print-iam | Teleport에서 관리하는 데이터베이스에 대한 현재 IAM 정책을 생성하고 출력합니다. |
teleport db configure bootstrap | 제공된 구성을 읽어 Teleport Database Service에 대한 구성을 부트스트랩하는 데 사용됩니다. |
teleport db configure create | 데이터베이스 서비스에 대한 구성 YAML 파일을 생성합니다. 이 파일은 프로덕션 환경에 맞게 사용자 정의해야 하며, 기본 출력은 테스트할 때만 사용해야 합니다. |
teleport db start | Teleport Database Service를 시작합니다. |
teleport help | Teleport 명령 사용을 위한 안내를 출력합니다. |
teleport install systemd | teleport 서비스 데몬을 구성하고 설치하는 데 사용되는 systemd 유닛 파일을 생성합니다. |
teleport join openssh | OpenSSH 서버를 Teleport에 등록합니다. |
teleport node configure | SSH를 통해 접근하는 Teleport Node에 대한 구성 YAML 파일을 생성합니다. 이 파일은 프로덕션 환경에 맞게 사용자 정의해야 하며, 기본 출력은 테스트할 때만 사용해야 합니다. |
teleport start | 구성 YAML 파일로 구성된 모든 서비스를 포함하여 현재 셸 세션에서 teleport 프로세스를 포어그라운드로 시작합니다. |
teleport status | 현재 활성 Teleport SSH 세션의 상태를 출력합니다. |
teleport version | 시스템에 설치된 Teleport 바이너리의 현재 릴리즈 버전을 출력합니다. |
teleport debug set-log-level | 인스턴스 로그 레벨을 변경합니다. |
teleport debug get-log-level | 인스턴스의 현재 로그 레벨을 가져옵니다. |
teleport debug debug profile | 애플리케이션 프로파일을(export pprof format) 내보냅니다. |
teleport
cli로 작업할 때 서브커맨드에 대한 더 많은 정보를 원할 경우, --help
옵션이나 teleport <subcommand> --help
를 사용하세요.
teleport start
teleport start
명령은 많은 선택적 구성 플래그를 포함합니다.
teleport start
의 구성 플래그는 Teleport의 구성을 설정하는 데 사용될 수 있지만, 프로덕션 환경에서는 구성 파일을 사용하는 것을 권장합니다.
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
-d, --debug | 없음 | 없음 | stderr에 자세한 로깅을 활성화합니다. |
--insecure-no-tls | false | true 또는 false | 프록시가 기본 자기 서명 TLS 인증서를 생성하지 않도록 지시합니다. 이는 Kubernetes(역방향 프록시 뒤에) 또는 AWS ELB, GCP LB 또는 Azure 부하 분산기와 같은 외부에서 SSL 종료가 제공되는 경우 Teleport를 실행할 때 유용합니다. |
-r, --roles | proxy , node , auth | string proxy , node , auth , db 또는 app 의 쉼표로 구분된 목록 | 나열된 서비스/역할을 시작합니다. 이러한 역할은 핵심 개념 문서에서 설명합니다. |
--pid-file | 없음 | string 파일 경로 | 경로에 PID 파일을 생성합니다. |
--advertise-ip | 없음 | string IP | 클라이언트에 광고할 IP, 종종 NAT 뒤에서 사용됩니다. |
-l, --listen-ip | 0.0.0.0 | net.IP | 서비스에 IP를 바인딩합니다. |
--auth-server | 없음 | string IP | 프록시가 로컬 인증서 서버 대신 지정된 인증 서버에 연결을 시도합니다. 설정되면 --roles=auth 가 비활성화됩니다. |
--token | 없음 | string | 시작 시 인증 서버에 등록하기 위한 초대 토큰을 설정하며, 한 번 사용된 후 무시됩니다. 인증 서버에서 tctl nodes add 를 실행하여 얻습니다. 무작위성을 충분히 갖춘 32바이트 이상의 토큰을 생성하려면 pwgen 과 같은 도구를 사용하는 것을 권장합니다. |
--ca-pin | 없음 | string sha256:<hash> | 인증 서버를 검증하기 위해 CA 핀을 설정합니다. tctl status 로 생성됩니다. |
--nodename | 머신에서 hostname 명령으로 반환된 값 | string | 클라이언트가 로그인하는 데 사용할 수 있는 노드의 대체 이름을 지정합니다. |
-c, --config | /etc/teleport.yaml | string .yaml 파일 경로 | YAML 파일에 지정된 구성으로 서비스를 시작하며, 설정된 경우 CLI 플래그를 덮어씁니다. |
--apply-on-startup | 없음 | string .yaml 파일 경로 | 시작 시 주어진 경로에 설명된 리소스를 항상 적용합니다. 다음 종류만 지원합니다: token , role , user , cluster-auth-preference , cluster-networking-config . |
--bootstrap | 없음 | string .yaml 파일 경로 | 구성된 YAML 리소스를 부트스트랩합니다 |
--labels | 없음 | string 쉼표로 구분된 목록 | 노드에 레이블 세트를 지정합니다. 예: env=dev, app=web. 노드 레이블 지정 섹션에서 레이블 지정 메커니즘에 대한 설명을 확인하세요. |
--insecure | 없음 | 없음 | 프록시 서비스에 대한 인증서 유효성 검사를 비활성화합니다. 인증 서비스에서는 여전히 유효성 검사가 발생합니다. |
--fips | 없음 | 없음 | FedRAMP/FIPS 140-2 모드에서 Teleport를 시작합니다. |
--skip-version-check | false | true 또는 false | 이 Teleport 인스턴스와 인증 서버 사이의 버전 검사를 건너뜁니다. |
--diag-addr | 없음 | 없음 | 진단 엔드포인트를 활성화합니다. |
--permit-user-env | 없음 | 없음 | 세션을 생성할 때 ~/.tsh/environment 에서 환경 변수를 읽습니다. |
--app-name | 없음 | 없음 | 시작할 애플리케이션의 이름 |
--app-uri | 없음 | 없음 | 프록시할 애플리케이션의 내부 주소 |
--app-public-addr | 없음 | 없음 | 프록시할 애플리케이션의 공개 주소 |
teleport start --roles
teleport --start
와 함께 사용되는 --roles
플래그는 Teleport에 시작할 특정 Teleport 서비스를 지정하도록 지시합니다. 아래는 teleport start
가 지원하는 역할 및 해당 서비스의 보다 응집력 있는 표입니다:
서비스 | 역할 이름 | 설명 |
---|---|---|
Node | node | 인증된 클라이언트의 SSH 연결을 허용합니다. |
Auth | auth | Teleport에서 관리하는 리소스나 클러스터에 대한 접근을 원하는 호스트와 사용자를 인증하고 권한을 부여합니다. |
Proxy | proxy | 클라이언트가 인증 서비스나 Teleport에서 관리하는 리소스에 연결하는 데 사용하는 게이트웨이입니다. |
App | app | 애플리케이션에 대한 접근을 제공합니다. |
Database | db | 데이터베이스에 대한 접근을 제공합니다. |
Teleport Cloud는 auth
및 proxy
역할이 있는 Teleport 인스턴스를 관리합니다. 나머지 역할을 사용하여 특정 리소스 및 기타 Teleport 클러스터에 대한 액세스를 관리하세요.
예제
# 기본적으로 구성 없이 teleport는 단일 노드 클러스터로 실행됩니다.
# 이는 --roles=node,proxy,auth로 실행하는 것과 동등합니다.
sudo teleport start
# SSH 모드 역할로 실행되는 'db'라는 이름의 노드를 시작하며,
# 인증 서버가 10.1.0.1에서 실행되는 클러스터에 합류합니다.
sudo teleport start --roles=node --auth-server=10.1.0.1 --token=xyz --nodename=db
# 위와 동일하나, 노드는 db=master 레이블로 실행되며,
# 이름 외에도 해당 레이블을 사용하여 연결할 수 있습니다.
sudo teleport start --roles=node --auth-server=10.1.0.1 --labels=db=master
# http://localhost:8080에서 실행되는 "example-app" 애플리케이션을 프록시하는 애플리케이션 서버를 시작합니다.
sudo teleport start --roles=app --token=xyz --auth-server=proxy.example.com:3080 \
--app-name="example-app" \
--app-uri="http://localhost:8080" \
--labels=group=dev