인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
teleport CLI 참조
텔레포트 접근 플랫폼을 지원하는 CLI 도구는 teleport
이며, 이는 명령줄을 통해 Teleport 서비스를 관리할 수 있습니다:
teleport
CLI의 기본 명령어는 다음과 같습니다:
명령어 | 설명 |
---|---|
teleport app start | Teleport 애플리케이션 서비스를 시작합니다. |
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 데이터베이스 서비스에 구성을 부트스트랩하는 데 사용됩니다. |
teleport db configure create | 데이터베이스 서비스에 대한 구성 YAML 파일을 생성합니다. 이 파일은 생산 환경에 맞게 커스터마이즈해야 하며, 테스트 시에는 기본 출력을 사용해야 합니다. |
teleport db start | Teleport 데이터베이스 서비스를 시작합니다. |
teleport help | Teleport 명령어 사용에 대한 안내를 출력합니다. |
teleport install systemd | teleport 서비스 데몬을 구성하고 설치하는 데 사용되는 systemd 유닛 파일을 생성합니다. |
teleport join openssh | OpenSSH 서버를 Teleport에 등록합니다. |
teleport node configure | SSH를 통해 접근하는 Teleport 노드에 대한 구성 YAML 파일을 생성합니다. 이 파일은 생산 환경에 맞게 커스터마이즈해야 하며, 테스트 시에는 기본 출력을 사용해야 합니다. |
teleport start | 현재 쉘 세션을 사용하는 전경에서 teleport 프로세스를 시작하며, 구성 YAML 파일로 구성된 서비스를 포함합니다. |
teleport status | 현재 활성 Teleport SSH 세션의 상태를 출력합니다. |
teleport version | 시스템에 설치된 Teleport 바이너리의 현재 릴리스 버전을 출력합니다. |
teleport debug set-log-level | 인스턴스 로그 수준을 변경합니다. |
teleport debug get-log-level | 인스턴스의 현재 로그 수준을 가져옵니다. |
teleport debug debug profile | 애플리케이션 프로필을 내보냅니다 (pprof 형식). |
teleport
cli로 작업할 때 하위 명령어에 대한 더 많은 정보는 --help
옵션이나 teleport <subcommand> --help
를 사용하세요.
teleport start
teleport start
명령어는 많은 선택적 구성 플래그를 포함합니다.
teleport start
의 구성 플래그를 사용하여 Teleport의 구성을 위한 매개변수를 설정할 수 있지만, 생산 환경에서는 구성 파일을 사용하는 것을 권장합니다.
Flags
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
-d, --debug | 없음 | 없음 | stderr에 자세한 로그를 활성화합니다. |
--insecure-no-tls | false | true 또는 false | 프록시에게 기본 자체 서명 TLS 인증서를 생성하지 말라고 지시합니다. 이는 kubernetes에서 Teleport를 실행할 때 (역방향 프록시 뒤) 또는 AWS ELB, GCP LB 또는 Azure 로드 밸런서와 같은 SSL 종료가 외부적으로 제공되는 환경에서 유용합니다. |
-r, --roles | proxy , node , auth | string 쉼표로 구분된 목록의 proxy , node , auth , db , 또는 app | 나열된 서비스/역할을 시작합니다. 이러한 역할은 Core Concepts 문서에 설명되어 있습니다. |
--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. Labeling Nodes 섹션에서 레이블링 메커니즘에 대한 설명을 참조하세요. |
--insecure | 없음 | 없음 | 프록시 서비스에서 인증서 유효성 검사 비활성화, 인증 서비스에서는 여전히 유효성 검사가 발생합니다. |
--fips | 없음 | 없음 | Teleport를 FedRAMP/FIPS 140-2 모드에서 시작합니다. |
--skip-version-check | false | true 또는 false | 이 Teleport 인스턴스와 Auth 서버 간의 버전 검사를 건너뜁니다. |
--diag-addr | 없음 | 없음 | 진단 엔드포인트를 활성화합니다. |
--permit-user-env | 없음 | 없음 | 세션을 생성할 때 ~/.tsh/environment 에서 환경 변수를 읽는 플래그입니다. |
--app-name | 없음 | 없음 | 시작할 애플리케이션의 이름입니다. |
--app-uri | 없음 | 없음 | 프록시할 애플리케이션의 내부 주소입니다. |
--app-public-addr | 없음 | 없음 | 프록시할 애플리케이션의 공용 주소입니다. |
teleport start --roles
--roles
플래그는 teleport --start
와 함께 사용될 때 Teleport가 어떤 특정 Teleport 서비스를 시작할지 지시합니다. 아래는 teleport start
가 지원하는 역할과 관련된 서비스의 보다 일관된 표입니다:
서비스 | 역할 이름 | 설명 |
---|---|---|
Node | node | 인증된 클라이언트로부터의 SSH 연결을 허용합니다. |
Auth | auth | Teleport가 관리하는 리소스 또는 클러스터에 접근하고자 하는 호스트 및 사용자를 인증하고 권한 부여합니다. |
Proxy | proxy | 클라이언트가 Auth 서비스 또는 Teleport가 관리하는 리소스에 연결하는 데 사용하는 게이트웨입니다. |
App | app | 애플리케이션에 대한 접근을 제공합니다. |
Database | db | 데이터베이스에 대한 접근을 제공합니다. |
Teleport Cloud는 auth
및 proxy
역할로 Teleport 인스턴스를 관리합니다. 남은 역할을 사용하여 특정 리소스 및 다른 Teleport 클러스터에 대한 접근을 관리하십시오.
예제
# 기본적으로 구성 없이 teleport를 시작하면 단일 노드 클러스터로 실행됩니다.
# --roles=node,proxy,auth로 실행하는 것과 같습니다.
sudo teleport start
# 'db'라는 이름의 노드를 시작하며, 엄격한 SSH 모드 역할로執行되고
# 인증 서버가 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
# "example-app"이라는 애플리케이션을 http://localhost:8080에서 실행하는
# 앱 서버를 시작합니다.
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