tctl
은 클러스터 관리자가 노드, 사용자, 토큰, 인증서 및 장치를 포함한 클러스터의 모든 리소스를 관리할 수 있도록 하는 CLI 도구입니다.
tctl
은 또한 새 사용자 역할을 만들거나 신뢰할 수 있는 클러스터에 연결하는 것과 같은 클러스터의 동적 구성을 수정하는 데 사용할 수 있습니다.
인증
tctl
명령을 실행하기 전에 관리자는 Teleport 클러스터에 인증해야 합니다. 이 섹션에서는 tctl
이 클러스터에 인증하는 방법을 설명합니다.
식별 파일이 있는 원격 호스트에서
tctl
은 사용자 제공 식별 파일로 인증할 수 있습니다. 사용자가 tctl auth sign
또는 tsh login --out=<output-path>
을 실행할 때 Teleport Auth 서비스가 식별 파일에 서명하며, 사용자는 tctl
명령을 실행할 때 --identity
플래그에 식별 파일의 경로를 포함할 수 있습니다.
--identity
플래그를 사용할 때 사용자는 tctl
이 인증할 클러스터를 알 수 있도록 인증 서비스 또는 프록시 서비스의 주소가 포함된 --auth-server
플래그를 제공해야 합니다.
Teleport Auth 서비스와 동일한 호스트에서
tctl
이 실행되는 호스트에 Teleport 구성 파일이 있는 경우, tctl
은 로컬 백엔드에 저장된 식별을 사용하여 구성 파일에 명시된 Auth 서비스에 인증을 시도합니다.
/etc/teleport.yaml
에 구성 파일이 존재하거나 TELEPORT_CONFIG_FILE
이 다른 위치에 있는 구성 파일을 가리킬 경우, tctl
은 이 방법으로 인증합니다. 구성 파일에서 auth_service
가 비활성화된 경우 구성 파일은 무시됩니다.
tctl
명령이 Auth 서비스에서 로컬로 실행될 때 감사 로그에 Auth 서비스 자체에서 수행된 것으로 표시됩니다.
정확한 감사 추적을 제공하기 위해서는 관리자가 원격으로 tctl
을 사용하도록 하여 Auth 서비스에 대한 직접 SSH 접근을 제한하는 것이 중요합니다:
액세스 제어하십시오.
tsh login
을 실행한 후 원격 호스트에서
--identity
파일이나 로컬 Teleport 구성 파일을 찾을 수 없는 경우, tctl
은 사용자의 tsh
프로필을 로드하여 클러스터에 인증하려고 시도합니다. tsh
프로필은 사용자가 tsh login
을 실행할 때 생성됩니다.
tctl
은 TELEPORT_CONFIG_FILE
환경 변수를 읽어서 Teleport 구성 파일이 존재하는지 여부를 결정합니다. tsh
프로필을 사용하여 tctl
을 인증하는 경우, 다음 조건 중 하나가 참인지 확인해야 합니다:
식별 파일이 있는 원격 호스트에서
tctl
은 사용자 제공 식별 파일로 인증할 수 있습니다. 사용자가 tctl auth sign
또는 tsh login --out=<output-path>
을 실행할 때 Teleport Auth 서비스가 식별 파일에 서명하며, 사용자는 tctl
명령을 실행할 때 --identity
플래그에 식별 파일의 경로를 포함할 수 있습니다.
--identity
플래그를 사용할 때 사용자는 tctl
이 인증할 클러스터를 알 수 있도록 인증 서비스 또는 프록시 서비스의 주소가 포함된 --auth-server
플래그를 제공해야 합니다.
tsh login
을 실행한 후 원격 호스트에서
--identity
파일이나 로컬 Teleport 구성 파일을 찾을 수 없는 경우, tctl
은 사용자의 tsh
프로필을 로드하여 클러스터에 인증하려고 시도합니다. tsh
프로필은 사용자가 tsh login
을 실행할 때 생성됩니다.
tctl
은 TELEPORT_CONFIG_FILE
환경 변수를 읽어서 Teleport 구성 파일이 존재하는지 여부를 결정합니다. tsh
프로필을 사용하여 tctl
을 인증하는 경우, 다음 조건 중 하나가 참인지 확인해야 합니다:
TELEPORT_CONFIG_FILE
이 비어 있음/etc/teleport.yaml
에 파일이 없음
그렇지 않으면 tctl
은 머신에서 Teleport 클러스터에 연결을 시도하며, 이는 오류를 초래할 수 있습니다:
ERROR: open /var/lib/teleport/host_uuid: permission denied
.
tctl 글로벌 플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
-d, --debug | 없음 | 없음 | stderr에 자세한 로깅 활성화 |
-c, --config | /etc/teleport.yaml | 문자열 파일 경로 | 구성 파일 경로 |
--auth-server | 없음 | host:port | 로컬 Auth 서비스(127.0.0.1:3025 ) 대신 특정 Auth/Proxy 서비스 주소에 연결을 시도 |
-i, --identity | 없음 | 문자열 파일 경로 | 식별 파일 경로 |
--insecure | 없음 | 없음 | --auth-server 에서 프록시 서비스 주소를 지정할 때 TLS 인증서를 확인하지 않음. 위험: 전송하는 모든 데이터가 공격자에 의해 가로채지거나 수정될 수 있습니다 |
tctl acl get
특정 액세스 목록에 대한 정보를 가져와 표시합니다.
tctl acl get <id>
tctl acl ls
클러스터의 액세스 목록을 나열합니다.
tctl acl ls
tctl acl users add
액세스 목록에 사용자를 추가합니다.
tctl acl users add <access-list-name> <user> [<expires>] [<reason>]
tctl acl users ls
액세스 목록의 사용자를 나열합니다.
tctl acl users ls <access-list-name>
tctl acl users rm
액세스 목록에서 사용자를 제거합니다.
tctl acl users rm <access-list-name> <user>
tctl alerts ack
클러스터 경고를 일시적으로 인식하여 사용자가 경고를 보지 못하게 합니다. 기본적으로 인식은 24시간 동안 지속됩니다. 인식이 만료되면 사용자가 경고를 다시 보게 됩니다.
tctl alerts ack [<flags>] <id>
인수
<id>
: 인식할 클러스터 경고의 ID
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--ttl | 24h | 모든 기간 | 경고를 인식할 시간 기간 |
--clear | 없음 | 기존 경고 인식을 지웁니다 | |
--reason | 없음 | 이 경고를 억제한 이유 |
예시
사용자에게 업그레이드가 가능하다는 경고를 억제합니다:
tctl alerts ack --reason="upgrade scheduled" upgrade-suggestion성공적으로 'upgrade-suggestion' 경고를 인식했습니다. 이 ID로 경고는 24시간 동안 전송되지 않습니다.
기존 경고 인식을 지웁니다:
tctl alerts ack --clear upgrade-suggestion
tctl alerts ack ls
경고 인식을 나열합니다.
tctl alerts ack lsID 이유 만료------------------ ---------------------- --------------------upgrade-suggestion "upgrade is scheduled" 수요일 4월 12일 16:52 UTC
tctl alerts create
클러스터 경고를 만듭니다. 클러스터 경고는 웹 UI 또는 tsh
로그인 시 Teleport 사용자에게 표시될 수 있습니다.
tctl alerts create [<flags>] <message>
인수
<message>
: 표시할 경고 메시지
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--severity | low | low , medium , high | 경고 심각도 |
--ttl | 없음 | 모든 기간 | 경고의 선택적 만료 (TTL이 지정되지 않은 경우 경고는 만료되지 않음) |
--labels | 없음 | 모든 | 경고에 첨부할 레이블 목록. |
경고에 적용할 수 있는 모든 레이블이 있지만 경고 동작을 구성하는 데 사용할 수 있는 여러 내부 레이블이 있습니다:
teleport.internal/alert-on-login: yes
: 경고가 사용자가 로그인할 때 표시되도록 보장합니다.teleport.internal/alert-permit-all: yes
: 경고가 모든 사용자에게 표시되도록 보장합니다.
레벨이 지정되지 않으면 tctl
은 이 두 레이블을 자동으로 추가합니다.
예시
tctl alerts create \ --severity=low \ --ttl=4h \ "시스템이 유지 관리 중입니다. 기능이 제한될 수 있습니다."
tctl alerts list
클러스터 경고를 나열합니다. 이 명령은 tctl alerts ls
로도 호출될 수 있습니다.
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--verbose (-v ) | false | boolean | 설정된 경우 자세한 경고 정보를 표시합니다 (인식된 경고 포함) |
--labels | 없음 | 쉼표로 구분된 문자열 | 필터링할 레이블 목록 |
예시
tctl alerts listID Severity 만료 기간 메시지------------------------------------ -------- ---------- ----------------------------------------------------------------da36b401-5688-426f-95b8-d0dd1ef27785 낮음 57m0s "시스템이 유지 관리 중입니다. 기능이 제한될 수 있습니다."
tctl auth export
공용 클러스터 CA 인증서를 내보냅니다. 이는 Teleport에서 발급한 인증서를 신뢰하도록 외부 시스템을 구성하는 데 유용합니다.
tctl auth export [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--keys | 없음 | 없음 | 설정된 경우 개별 키만 내보냅니다 |
--fingerprint | 없음 | 문자열 예 SHA256:<fingerprint> | 지문으로 권한 필터링 |
--compat | 없음 | 버전 번호 | 특정 버전과 호환되는 인증서 내보내기 |
--type | 없음 | user , host , tls-host , tls-user , tls-user-der , windows , db , openssh , saml-idp | 인증서 유형 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면:
tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
모든 키 내보내기
tctl auth export지문으로 필터링
tctl auth export --fingerprint=SHA256:8xu5kh1CbHCZRrGuitbQd4hM+d9V+I7YA1mUwA/2tAotls 인증서만 내보내기
tctl auth export --type=tls-host
tctl auth rotate
클러스터의 인증서 기관을 회전합니다:
tctl auth rotate [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--grace-period | 없음 | 상대 기간 5s, 2m 또는 3h와 같은 | 유예 기간은 이전 인증서 기관 서명이 유효하도록 유지합니다. 0으로 설정하면 사용자가 다시 로그인하고 노드가 다시 등록해야 합니다. |
--manual | 없음 | 없음 | 수동 회전을 활성화하고 회전 단계를 수동으로 설정합니다 |
--type | user,host | user 또는 host | 회전할 인증서 기관 |
--phase | init, standby, update_clients, update_servers, rollback | 설정할 대상 회전 단계, 수동 회전에서 사용됨 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면:
tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
유예 기간이 200시간인 경우 사용자 인증서만 회전합니다:
tctl auth rotate --type=user --grace-period=200h유예 기간이 8시간인 경우 호스트 인증서만 회전합니다:
tctl auth rotate --type=host --grace-period=8h
tctl auth sign
tctl auth sign
은 일반적으로 자동화 목적의 장기 인증서를 생성하는 데 사용됩니다. 지원되는 플랫폼에서
Machine ID는 자동화 작업 흐름을 위한 단기 인증서를 생성하는 보다 안전한 대안입니다.
주어진 사용자에 대한 식별 파일을 생성합니다:
tctl auth sign -o <filepath> [--user <user> | --host <host>][--format] [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--user | 없음 | 기존 사용자 | Teleport 사용자 이름 |
--host | 없음 | auth host | Teleport 호스트 이름 |
-o, --out | 없음 | 파일 경로 | 출력 신원 |
--overwrite | 없음 | 없음 | 설정된 경우 기존의 식별 파일이 있더라도 새 식별 파일을 작성합니다 |
--format | file | file , openssh , tls 또는 kubernetes | 식별 형식 |
--identity | 없음 | file | Auth 서비스에 로그인하는 데 사용할 식별 파일 |
--auth-server | 없음 | auth host & port | 원격 Teleport 호스트 이름 |
--ttl | 12h | 5s , 2m 또는 3h 와 같은 상대 기간 | 생성된 인증서의 TTL(time to live) |
--compat | "" | standard 또는 oldssh | OpenSSH 호환성 플래그 |
--proxy | "" | Teleport 프록시 서비스의 주소 | --format 가 kubernetes 로 설정된 경우 이 주소는 생성된 kubeconfig 파일의 클러스터 주소로 설정됩니다 |
--leaf-cluster | "" | 리프 클러스터의 이름. | |
--kube-cluster-name | "" | Kubernetes 클러스터 이름 | |
--app-name | "" | 애플리케이션 이름 | 지정된 웹 애플리케이션에 접근하기 위한 인증서를 생성합니다 |
--db-service | "" | 데이터베이스 서비스 이름 | 지정된 데이터베이스 서비스 인스턴스에 접근하기 위한 인증서를 생성합니다 |
--db-user | "" | 데이터베이스 사용자 | --db-service 가 지정된 경우 이 데이터베이스 사용자를 인증서에 인코딩합니다 |
--db-name | "" | 데이터베이스 이름 | --db-service 가 지정된 경우 이 데이터베이스 이름을 인증서에 인코딩합니다 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면:
tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
teleport_id.pem으로 신원 파일 내보내기
ttl을 5m으로 설정한 `teleport` 사용자
tctl auth sign --format file --ttl=5m --user teleport -o teleport_id.pem`openssh` 형식으로 `teleport_id.pem`으로 내보내기
tctl auth sign --format openssh --user teleport -o teleport_id.pem호스트 신원을 내보내고, `--format openssh`는 `--host`와 함께 설정되어야 합니다
현재 디렉토리에 grav-01 (개인 키) 및 grav-01-cert.pub을 생성합니다.
tctl auth sign --format openssh --host grav-00잘못된 명령, `--user` 또는 `--host` 중 하나만 설정해야 합니다
tctl auth sign --format openssh --host grav-00 --user teleport -o grav_host오류: `--user` 또는 `--host`가 명시되어야 합니다
jenkins 사용자에 대해 TTL이 24시간인 인증서 생성
jenkins.pem 파일은 나중에 `tsh`와 함께 사용할 수 있습니다
tctl auth sign --ttl=24h --user=jenkins --out=jenkins.pemjenkins 사용자에 대해 TTL이 3개월인 인증서 생성
jenkins.pem 파일은 나중에 `tsh`와 함께 사용할 수 있습니다
tctl auth sign --ttl=2190h --user=jenkins --out=jenkins.pemjenkins 사용자에 대해 TTL이 1일인 인증서 생성
Kubeconfig 파일은 나중에 `kubectl` 또는 호환 도구와 함께 사용할 수 있습니다.
tctl auth sign --ttl=24h --user=jenkins --out=kubeconfig --format=kubernetes원격 `tctl` 실행을 위해 Auth 서버에서 신원을 내보냅니다.
tctl auth sign --user=admin --out=identity.pem
tctl bots add
새로운 Machine ID Bot을 생성합니다:
tctl bots add <name> [<flags>]
인수
<name>
- 생성할 Machine ID Bot의 이름.
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--roles | 없음 | 역할을 지정하는 쉼표로 구분된 목록. | 필수. Bot이 가장 유력한 역할을 위임할 수 있도록 지정하는 역할. |
--logins | 없음 | 허용된 SSH 로그인을 설정하기 위한 쉼표로 구분된 목록. | 선택적. Bot의 로그인을 위한 값 지정. |
--token | 없음 | 기존 가입 토큰의 문자열 이름. | 선택적. Bot 생성의 일환으로 생성된 것 대신 사용할 기존 가입 토큰을 지정합니다. |
--ttl | 15m | 기간. | 선택적. --token 이 지정되지 않은 경우 생성될 토큰의 TTL을 재정의합니다. |
--format | text | text , json | 설정된 경우 JSON 문자열로 새로운 Bot 정보를 반환합니다. |
예시
access
역할을 가질 수 있고 root
로 로그인할 수 있는 example
이라는 새 Bot을 만듭니다:
tctl bots add example --roles=access --logins=root
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
tctl bots ls
모든 Machine ID Bots를 나열합니다:
tctl bots ls [<flags>]
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
tctl bots rm
Machine ID Bot을 삭제합니다:
tctl bots rm <name> [<flags>]
인수
<name>
- 삭제할 Machine ID Bot의 이름.
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
tctl bots update
Machine ID bot을 업데이트합니다:
tctl bots update <bot> [<flags>]
인수
<name>
- 업데이트할 bot의 이름
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--add-roles | 없음 | 쉼표로 구분된 역할 목록 | Bot이 가장 유력한 역할을 이 날짜에 추가합니다. |
--set-roles | 없음 | 쉼표로 구분된 역할 목록 | Bot의 현재 역할을 가장 소중한 목록으로 교체합니다. |
--add-logins | 없음 | 쉼표로 구분된 허용된 Unix 로그ins | Bot의 현재 등록된 로그인을 추가합니다. |
--set-logins | 없음 | 쉼표로 구분된 허용된 Unix 로그ins | Bot의 현재 허용된 로그인 목록을 주어진 목록으로 교체합니다. |
예시
Bot example
의 역할을 교체하고 새로 허용된 Unix 로그인을 추가합니다:
tctl bots update example --add-logins=root --set-roles=access
Bot example
의 모든 암시적인 허용 Unix 로그인을 누락된 비어 있지 않은 목록을 통해 제거합니다:
tctl bots update example --set-logins=,
Bot은 여전히 역할을 통해 추가 로그인을 허용받을 수 있습니다.
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
tctl create
YAML 파일에서 Teleport 리소스를 생성하거나 업데이트합니다.
지원되는 리소스 유형: 사용자, 노드, 클러스터, 역할, 커넥터 및 장치. 이러한 yaml 파일을 작성하는 방법에 대한 완전한 문서는 리소스 참조를 참조하십시오.
tctl create [<flags>] <filename>
인수
<filename>
리소스 정의 파일
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
-f, --force | 없음 | 없음 | 리소스가 이미 존재하는 경우 덮어씁니다 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
사용자 기록 업데이트
tctl create -f joe.yaml신뢰할 수 있는 클러스터 추가
tctl create cluster.yaml신뢰할 수 있는 클러스터 업데이트
tctl create -f cluster.yaml
tctl devices add
장치를 등록합니다.
tctl devices add --os=OS --asset-tag=SERIAL_NUMBER
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--os | 없음 | linux , macos , windows | 장치 운영 체제 |
--asset-tag | 없음 | 문자열 | 장치 인벤토리 식별자(예: Mac 일련 번호) |
--enroll | false | boolean | 설정된 경우 장치 등록 토큰을 생성합니다 |
예시
tctl devices add --os=macos --asset-tag=C00AA0AAAA0A장치 C00AA0AAAA0A/macOS가 인벤토리에 추가됨tctl devices add --os=macos --asset-tag=C00AA0AAAA0A --enroll장치 C00AA0AAAA0A/macOS가 인벤토리에 추가됨해당 장치 "C00AA0AAAA0A"에서 등록해 주십시오:tsh device enroll --token=AAAAAAAAAAAAAAAAAAAAAAAA-this-is-an-example
tctl devices enroll
장치에 등록 토큰을 생성합니다.
tctl devices enroll [--device-id=ID] [--asset-tag=ASSET_TAG]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--device-id | 없음 | 문자열 | Teleport 장치 식별자 |
--asset-tag | 없음 | 문자열 | 장치 인벤토리 식별자(예: Mac 일련 번호) |
--device-id
또는 --asset-tag
중 하나가 있어야 합니다.
예시
tctl devices enroll --device-id=d40f2ee4-856d-4aef-b784-c4371e39c036해당 장치 "d40f2ee4-856d-4aef-b784-c4371e39c036"의 아래 명령 실행:tsh device enroll --token=AAAAAAAAAAAAAAAAAAAAAAAA-this-is-an-exampletctl devices enroll --asset-tag=C00AA0AAAA0A해당 장치 "C00AA0AAAA0A"의 아래 명령 실행:tsh device enroll --token=AAAAAAAAAAAAAAAAAAAAAAAA-this-is-an-example
tctl devices ls
등록된 장치를 나열합니다.
tctl devices ls
예시
tctl devices ls
자산 태그 OS 등록 상태 장치 ID------------ ----- ------------- ------------------------------------C00AA0AAAA0A macOS 등록됨 d40f2ee4-856d-4aef-b784-c4371e39c036
tctl devices rm
등록된 장치를 제거합니다.
제거된 장치는 향후 장치 인증 시 신뢰할 수 있는 장치로 간주되지 않습니다.
tctl devices rm [--device-id=ID] [--asset-tag=ASSET_TAG]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--device-id | 없음 | 문자열 | Teleport 장치 식별자 |
--asset-tag | 없음 | 문자열 | 장치 인벤토리 식별자(예: Mac 일련 번호) |
--device-id
또는 --asset-tag
중 하나가 있어야 합니다.
예시
tctl devices rm --device-id=d40f2ee4-856d-4aef-b784-c4371e39c036장치 "ac3590ec-87d4-4519-8e9e-2f35af0a9f85" 제거됨tctl devices rm --asset-tag=C00AA0AAAA0A장치 "C00AA0AAAA0A" 제거됨
tctl edit
선호하는 텍스트 편집기를 사용하여 Teleport 리소스를 수정합니다.
tctl edit <resource-type/resource-name>
텍스트 편집기는 다음을 확인하여 선택됩니다:
TELEPORT_EDITOR
환경 변수VISUAL
환경 변수EDITOR
환경 변수- 기본값
vi
tctl
은 백엔드에서 리소스를 가져오고, 선택된 편집기에서 엽니다.
편집기 프로세스가 종료되면 tctl
은 업데이트를 Teleport 클러스터에 전달합니다.
편집을 포기하려면 편집기를 저장하지 않고 닫으십시오.
VS Code와 같은 일부 그래픽 편집기는 백그라운드 프로세스를 실행하고 포그라운드에서 실행되지 않습니다. 이는 tctl
이 편집기 프로세스의 종료를 올바르게 감지하지 못하게 합니다. 이를 해결하기 위해, 파일을 닫기 전에 프로세스 종료를 대기하는 "대기" 옵션이 있는지 확인하십시오. 예를 들어 VS Code로 Teleport 리소스를 편집하려면 TELEPORT_EDITOR="code --wait"
를 설정할 수 있습니다.
참고: tctl edit
로 리소스 이름 바꾸기는 지원되지 않습니다. Teleport 리소스는 종종 이름으로 다른 리소스를 참조합니다. 리소스 이름을 바꾸려면 다음을 수행하는 것이 좋습니다:
tctl get
로 리소스를 가져오고 출력을 파일로 리디렉션합니다.- 파일에서 리소스 이름을 변경합니다.
tctl create -f
로 새 리소스를 저장합니다.- 이전 리소스를 참조하는 모든 항목을 업데이트합니다.
인수
<resource-type/resource-name>
편집할 리소스<resource type>
리소스 유형 [예:user
,cluster
,token
]<resource name>
리소스 이름
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
sre 역할 편집
tctl edit role/srenano 편집기로 alice 사용자 편집
TELEPORT_EDITOR=nano tctl edit user/alice
tctl get
다양한 Teleport 리소스의 YAML 선언을 인쇄합니다:
tctl get [<flags>] <resource-type/resource-name>,...
인수
<resource-type/resource-name>
가져올 리소스<resource type>
리소스 유형 [예:user
,cluster
,token
,device
]<resource name>
리소스 이름
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--format | yaml , json 또는 text | 출력 형식 | |
--with-secrets | 없음 | 없음 | 인증서 기관 또는 OIDC 커넥터와 같은 리소스에 비밀 포함 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
tctl get users사용자 정의를 파일로 덤프:
tctl get user/joe > joe.yaml신뢰할 수 있는 클러스터 'east' 인쇄
tctl get cluster/east모든 신뢰할 수 있는 클러스터 및 모든 사용자를 인쇄
tctl get clusters,users상태.yaml로 모든 리소스를 백업하는 덤프
tctl get all > state.yaml
tctl get users사용자 정의를 파일로 덤프:
tctl get user/joe > joe.yaml신뢰할 수 있는 클러스터 'east' 인쇄
tctl get cluster/east모든 신뢰할 수 있는 클러스터 및 모든 사용자를 인쇄
tctl get clusters,users
tctl help
도움 표시:
tctl help
tctl inventory list
Teleport 인스턴스 인벤토리를 나열합니다:
tctl inventory list [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--format | text | yaml , json 또는 text | 출력 형식 |
--older-than | 없음 | 문자열 | 이전 teleport 버전으로 필터링 |
--exact-version | 없음 | 문자열 | teleport 버전으로 출력 필터링 |
--services | 없음 | 문자열 | 서비스로 출력 필터링 (node,kube,proxy 등) |
--upgrader | 없음 | none , kube , 또는 unit | 업그레이더로 출력 필터링 (kube,unit,none) |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
인벤토리 나열
tctl inventory ls서버 ID 호스트 이름 서비스 에이전트 버전 업그레이더 업그레이더 버전------------------------------------ ------------------------------- -------------------------- ------------- -------- ----------------00c3a1f7-5f24-47f9-b866-14401fbb5685 teleport-proxy-77df88c69 Proxy 16.2.0 none none065ab336-1ac2-4314-8b16-32fc06a172a7 server1 Node 16.2.0 unit 16.2.0a24d4ad4-ead8-4b15-9ea6-357a5350369e teleport-auth-fb68b5df7 Auth,Discovery 16.2.0 none none
특정 서비스 및 버전의 인벤토리 나열
tctl inventory ls --services=node --exact-version=16.2.0서버 ID 호스트 이름 서비스 에이전트 버전 업그레이더 업그레이더 버전------------------------------------ ------------------------------- -------------------------- ------------- -------- ----------------065ab336-1ac2-4314-8b16-32fc06a172a7 server1 Node 16.2.0 unit 16.2.0a24d4ad4-ead8-4b15-9ea6-357a5350369e server2 Node,App 16.2.0 unit 16.2.0
새로 추가된 Teleport 서비스는 서비스가 가입 바로 직후에는 인벤토리에 나타나지 않습니다. 이는 일반적으로 5분 정도 걸리며, 많은 양의 부하가 걸릴 경우 최대 15분 정도 걸립니다.
tctl inventory status
재고 상태 요약을 표시합니다:
tctl inventory status [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--format | text | yaml , json 또는 text | 출력 형식 |
--[no-]connected | --no-connected | 없음 | 로컬 연결된 인스턴스 요약 표시 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
인벤토리 상태 나열
tctl inventory status버전: v16.2.0: 16업그레이더: kube: 6 unit: 6 none: 4서비스: Discovery: 2 Auth: 2 Db: 2 Kube: 2 App: 2 Node: 2 Proxy: 2 WindowsDesktop: 2총 인스턴스: 16
로컬 연결된 인스턴스의 상태 나열. 이렇게 하면 특정 Auth 서비스에 연결된 인스턴스를 볼 수 있습니다.
tctl inventory status --connected서버 ID 서비스 버전 업그레이더 ------------------------------------ ---------------------- ------- -------- b48e6e81-63e0-498f-834b-1a8adea09d95 Auth 16.2.0 none 178d9301-2873-4020-895a-014edf067204 Node 16.2.0 unit
인벤토리 상태 나열
tctl inventory status버전: v16.1.7: 19업그레이더: kube: 1 unit: 1 none: 16서비스: App: 1 Node: 1 Proxy: 12 Discovery: 2 Auth: 2 Kube: 1총 인스턴스: 19
새로 추가된 Teleport 서비스는 서비스가 가입 바로 직후에는 인벤토리에 나타나지 않습니다. 이는 일반적으로 5분 정도 걸리며, 많은 양의 부하가 걸릴 경우 최대 15분 정도 걸립니다.
tctl login_rule test
로그인 규칙 리소스를 클러스터에 설치하지 않고 테스트합니다.
인수
<traits-file>
JSON 또는 YAML 형식의 입력 특성 파일. stdin의 경우 비웁니다.
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--resource-file | 없음 | 문자열 파일 경로 | 로그인 규칙 리소스의 경로, 여러 번 반복 가능 |
--load-from-cluster | false | true, false | 참이면 클러스터에 현재 설치된 모든 로그인 규칙을 불러옵니다. --resource-file 와 결합하여 상호 작용을 테스트할 수 있습니다. |
--format | yaml | yaml , json | 특성의 출력 형식 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
rule1.yaml 및 rule2.yaml의 로그인 규칙을 테스트하고 traits.json의 입력 특성을 사용합니다.
tctl login_rule test --resource-file rule1.yaml --resource-file rule2.yaml traits.json
클러스터에 이미 존재하는 모든 Login Rule과 함께 rule.yaml의 로그인 규칙을 테스트합니다.
tctl login_rule test --resource-file rule.yaml --load-from-cluster traits.json
stdin에서 입력 특성을 읽습니다.
echo '{"groups": ["example"]}' | tctl login_rule test --resource-file rule.yaml
tctl nodes add
노드 초대 토큰을 생성합니다:
tctl nodes add [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--roles | node | proxy, auth, node, db, app 또는 windowsdesktop | 새 노드가 맡을 역할의 쉼표로 구분된 목록 |
--ttl | 30m | 상대 기간 5s, 2m 또는 3h와 같은 | 생성된 토큰의 유효 기간 |
--token | 없음 | 문자열 토큰 값 | 노드가 클러스터에 가입하는 데 사용할 수 있도록 생성된 커스텀 토큰. teleport start --token 과 일치해야 합니다. |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
노드가 클러스터에 가입하는 데 사용할 수 있는 토큰을 생성합니다. 기본 TTL은 30분입니다.
tctl nodes addSSH 노드를 클러스터에 추가하는 데 사용할 수 있는 토큰을 생성합니다.
노드는 프록시 서비스와 노드(SSH) 서비스를 모두 실행합니다.
이 토큰은 1시간 이내에 사용될 수 있습니다.
tctl nodes add --roles=node,proxy --ttl=1h
tctl nodes ls
클러스터 내 모든 활성 SSH 노드를 나열합니다:
tctl nodes ls [<flags>]
플래그
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
--namespace | 없음 | 문자열 네임스페이스 | 노드의 네임스페이스 |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
tctl request approve
사용자의 요청을 승인합니다:
tctl request approve [token]
인수
<tokens>
- 쉼표로 구분된 Teleport 토큰 목록.
예시
tctl request approve request-id-1, request-id-2
tctl request deny
사용자의 요청을 거부합니다:
tctl request deny [token]
인수
<tokens>
- 쉼표로 구분된 Teleport 토큰 목록.
예시
tctl request deny request-id-1, request-id-2
tctl request ls
열려 있는 요청 목록:
tctl request ls
예시
tctl request ls토큰 요청자 메타데이터 생성된 날짜 (UTC) 상태
------------------------------------ --------- -------------- ------------------- -------
request-id-1 alice roles=dictator 07 Nov 19 19:38 UTC PENDING
tctl request rm
사용자의 역할 요청을 삭제합니다:
tctl request rm [token]
인수
<tokens>
- 쉼표로 구분된 Teleport 토큰 목록.
예시
tctl request rm request-id-1
tctl rm
리소스를 삭제합니다:
tctl rm <resource-type/resource-name>
인수
<resource-type/resource-name>
삭제할 리소스<resource type>
리소스 유형 [예:saml,oidc,github,user,cluster,tokens,device
]<resource name>
삭제할 리소스 이름
예시
"okta"라는 SAML 커넥터 삭제:
tctl rm saml/okta"admin"이라는 로컬 사용자 삭제:
tctl rm users/admin
tctl sso configure github
GitHub 인증 커넥터를 구성합니다.
필수 매개변수 --id
및 --secret
은 GitHub OAuth 앱을 등록할 때 가져오며, 이는 자세한 설명에서 확인할 수 있습니다.
플래그 --teams-to-roles
는 여러 번 제공하여 어떤 GitHub 팀이 어떤 역할에 할당되는지를 지정할 수 있습니다.
이 예에서는 octocats
의 devs
팀의 구성원이 access
및 editor
역할이 부여됩니다.
tctl sso configure github --id=GITHUB_CLIENT_ID --secret=GITHUB_SECRET --teams-to-roles=octocats,devs,access,editor [<other-flags>]
인수
이 명령은 인수를 받지 않습니다.
플래그
필수 플래그: --id
, --secret
, --teams-to-roles
.
이름 | 기본값 | 허용 값 | 설명 |
---|---|---|---|
-n , --name | github | 리소스 이름 | 커넥터 이름. |
-r , --teams-to-roles | 없음 | org,team,role1,role2,... | 팀 및 역할 매핑 설정. 반복 가능합니다. |
--display | 없음 | 표시명 | 이 커넥터가 표시되는 방식 제어. |
--id | 없음 | GitHub OAuth2 클라이언트 ID | GitHub 앱 클라이언트 ID. |
--secret | 없음 | GitHub OAuth2 비밀 | GitHub 앱 클라이언트 비밀. |
--redirect-url | 없음 | 유효한 콜백 URL. | 인증 콜백 URL. |
--ignore-missing-roles | --teams-to-roles 에 참조된 누락된 역할을 무시합니다. |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
GitHub 인증 커넥터를 생성합니다. 두 개의 역할 매핑이 정의됩니다:
octocats
조직의admin
팀의 구성원이access
,editor
및auditor
역할을 부여받습니다.octocats
조직의dev
팀의 구성원이access
역할을 부여받습니다.
tctl sso configure gh
는 tctl sso configure github
의 별칭입니다.
tctl sso configure gh -r octocats,admin,access,editor,auditor -r octocats,dev,access --secret GH_SECRET --id CLIENT_IDINFO [CLIENT] RedirectURL empty, resolving automatically.INFO [CLIENT] RedirectURL set to "https://teleport.example.com:3080/v1/webapi/github/callback"kind: githubmetadata: name: githubspec: client_id: CLIENT_ID client_secret: GH_SECRET display: "" redirect_url: https://teleport.example.com:3080/v1/webapi/github/callback teams_to_logins: - logins: - access - editor - auditor organization: octocats team: admin - logins: - access organization: octocats team: devversion: v3
구성 생성 후 즉시 tctl sso test
명령을 통해 테스트합니다.
tctl sso configure gh ... | tctl sso test
tctl sso configure oidc
OIDC 인증 커넥터를 구성하며, 원할 경우 프리셋을 사용할 수 있습니다.
플래그 --claims-to-roles
는 여러 번 제공할 수 있습니다.
tctl sso configure oidc --id=CLIENT_ID --secret=SECRET --claims-to-roles=... [<other-flags>]
인수
이 명령은 인수를 받지 않습니다.
플래그
필수 플래그: --id
, --secret
, --claims-to-roles
. 선택한 프리셋에 따라 다른 플래그가 필요할 수 있습니다.
일반 플래그:
이름 | 설명 |
---|---|
-p , --preset | 프리셋. 다음 중 하나: google , gitlab , okta . |
-n , --name | 커넥터 이름. 필수, 프리셋에 의해 암시되는 경우 제외. |
-r , --claims-to-roles | 역할을 매핑하는 클레임 및 역할 설계 형태 claim_name,claim_value,role1,role2,... . 반복 가능. |
--display | 이 커넥터가 표시되는 방식 조정. |
--id | OIDC 앱 클라이언트 ID. |
--secret | OIDC 앱 클라이언트 비밀번호. |
--issuer-url | 발급자 URL. |
--redirect-url | 인증 콜백 URL. |
--prompt | 선택적 OIDC 프롬프트. 예시값: none , select_account , login , consent . |
--scope | 제공자에 의해 설정된 추가 범위를 지정합니다. 플래그의 반복 사용으로 하나의 범위를 선언합니다. 예시: email , groups , openid . |
--acr | 인증 맥락 클래스 참조 값. |
--provider | IdP 특정 해결을 활성화하기 위한 외부 ID 공급자 유형 설정. 예시: ping , adfs , netiq , okta . |
--ignore-missing-roles | --claims-to-roles 에 참조된 누락된 역할을 무시합니다. |
지원되는 프리셋:
이름 | 설명 | 표시 | 발급자 URL |
---|---|---|---|
google | Google Workspace | https://accounts.google.com | |
gitlab | GitLab | GitLab | https://gitlab.com |
okta | Okta | Okta | https://oktaice.okta.com |
위의 --issuer-url
값은 기본값으로 설정되며, IdP 구성에 따라 업데이트가 필요할 수 있습니다.
다음 플래그가 Google Workspace에 특정합니다:
이름 | 설명 |
---|---|
--google-acc-uri | 서비스 계정 자격 증명 파일의 URI. 예: file:///var/lib/teleport/gworkspace-creds.json . |
--google-acc | Google 서비스 계정 자격 증명 문자열. |
--google-admin | 가장 변제할 Google 관리자 이메일. |
--google-legacy | 직접 회원 자격으로 팀을 필터링하는 하향 호환성을 위한 플래그 (우선 계정). 비활성화 설정. 자세한 내용 |
--google-id | <GOOGLE_WORKSPACE_CLIENT_ID>.apps.googleusercontent.com 로 --id 플래그를 설정하는 단축키. |
글로벌 플래그
이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config
. 실행하려면 tctl help <subcommand>
또는 글로벌 플래그 섹션을 참조하십시오.
예시
myauth
라는 로그인 규칙으로 OIDC 인증 커넥터 설정합니다. 두 개의 OIDC 클레임이access
,editor
,auditor
역할을 할당하고,developer
그룹의 구성원에게access
역할을 부여합니다. 발급자 URL은 IdP로부터 제공됩니다.
tctl sso configure oidc -n myauth -r groups,admin,access,editor,auditor -r group,developer,access \ --secret IDP_SECRET --id CLIENT_ID \ --issuer-url https://idp.example.com
- Okta 프리셋으로 OIDC 인증 커넥터를 생성합니다.
groups
범위를 활성화하고okta-admin
그룹을access
,editor
,auditor
역할에 매핑합니다. 발급자 URL은 특정 Okta 도메인과 일치하도록 설정합니다.
tctl sso configure oidc --preset okta --scope groups -r groups,okta-admin,access,editor,auditor \ --secret IDP_SECRET --id CLIENT_ID \ --issuer-url dev-123456.oktapreview.com
- Google 프리셋으로 OIDC 인증 커넥터를 생성합니다. 서비스 계정 자격 증명은
/var/lib/teleport/gacc.json
에서 로드됩니다.
tctl sso configure oidc --preset google -r groups,mygroup@mydomain.example.com,access \ --secret SECRET --google-id GOOGLE_ID --google-acc-uri /var/lib/teleport/gacc.json \ --google-admin admin@mydomain.example.com
- 구성 생성을 즉시 테스트합니다.
tctl sso test
명령 사용.
tctl sso configure oidc ... | tctl sso test
tctl sso configure saml
SAML 인증 커넥터를 구성하며, 원할 경우 프리셋을 사용할 수 있습니다.
플래그 --attributes-to-roles/-r
는 여러 번 제공할 수 있습니다.
XML을 YAML 파일로 붙여넣을 때 오류를 피하기 위해 --entity-descriptor
/-e
플래그의 사용을 권장합니다.
tctl sso configure saml -e entity_desc.xml -r attr,value,role1 [<other-flags>]
인수
이 명령은 인수를 받지 않습니다.
플래그
필수 플래그: --name
, --attributes-to-roles
, --entity-descriptor
. 이러한 플래그는 다른 플래그가 존재할 경우 필수가 아닐 수 있습니다; 하단 표를 참조하십시오.
이름 | 필수여부 | 설명 |
---|
| `-e/--entity-descriptor` | 예, `--sso`, `--acs`, `--cert` 및 `--issuer`가 주어지지 않는 한 필수입니다. | 엔티티 설명자를 설정합니다. 유효한 값: 파일 경로, URL, XML 콘텐츠. 개별 요소 대신 단일 XML 문서로 구성 매개변수를 제공합니다. |
| `-r/--attributes-to-roles` | 예, 최소한 하나의 항목은 존재해야 합니다. | `attr_name,attr_value,role1,role2,...` 형식을 사용하여 속성-역할 매핑을 설정합니다. 반복 가능합니다. |
| `--display` | | 커넥터 이름을 설정합니다. |
| `--issuer` | | 신원 제공자 발급자를 설정합니다. |
| `--sso` | | 신원 제공자의 SSO 서비스의 URL입니다. |
| `--cert` | | IdP의 인증서 PEM 파일에 대한 경로입니다. 귀하의 IdP는 이 인증서를 사용하여 응답을 서명합니다. |
| `--acs` | | 서비스 제공자(텔레포트 쪽)의 어설션 소비 서비스에 대한 URL입니다. |
| `--audience` | | 서비스 제공자를 고유하게 식별합니다. |
| `--service-provider-issuer` | | 서비스 제공자(텔레포트)의 발급자입니다. |
| `--signing-key-file` | | 요청 서명 키가 포함된 파일입니다. `--signing-cert-file`과 함께 사용해야 합니다. |
| `--signing-cert-file` | | 요청 인증서가 포함된 파일입니다. `--signing-key-file`과 함께 사용해야 합니다. |
| `--assertion-key-file` | | SAML 어설션을 보호하는 데 사용되는 키가 포함된 파일입니다. `--assertion-cert-file`과 함께 사용해야 합니다. |
| `--assertion-cert-file` | | SAML 어설션을 보호하는 데 사용되는 인증서가 포함된 파일입니다. `--assertion-key-file`과 함께 사용해야 합니다. |
| `--provider` | | 외부 신원 제공자 유형을 설정하여 우회 수단을 활성화합니다. 예시: ping, adfs. |
| `--ignore-missing-roles` | | `--attributes-to-roles`에서 참조된 누락된 역할을 무시합니다. |
지원되는 프리셋:
| 이름 | 설명 | 표시 |
|------------|------------------------------------|------------|
| `okta` | Okta | Okta |
| `onelogin` | OneLogin | OneLogin |
| `ad` | Azure Active Directory | Microsoft |
| `adfs` | Active Directory Federation Services| ADFS |
### 전역 플래그
모든 명령에 사용할 수 있는 플래그: `--debug, --config`.
`tctl help <subcommand>`를 실행하거나 [전역 플래그 섹션](#tctl-global-flags)을 참조하세요.
### 예시
1. `myauth`라는 이름의 SAML 인증 커넥터 구성을 생성합니다. SAML 속성에서 역할로의 두 매핑이 정의되어 있습니다:
- `admin` 그룹의 구성원은 `access`, `editor` 및 `auditor` 역할을 부여받습니다.
- `developer` 그룹의 구성원은 `access` 역할을 부여받습니다.
IdP 메타데이터는 `entity-desc.xml` 파일에서 읽힙니다.
```code
$ tctl sso configure saml -n myauth -r group,admin,access,editor,auditor -r group,developer,access -e entity-desc.xml
okta
프리셋을 사용하여 SAML 인증 커넥터 구성을 생성합니다. 프리셋의 선택은 기본 이름과 표시 속성에 영향을 미치며, IdP 특정 조정이 적용될 수 있습니다. XML 파일 대신 URL이 -e 플래그에 제공되며, 이는 텔레포트 실행 중에 가져옵니다.
tctl sso configure saml -p okta -r group,dev,access -e https://dev-123456.oktapreview.com/app/ex30h8/sso/saml/metadata
- 구성을 생성하고 즉시
tctl sso test
명령을 사용하여 테스트합니다:
tctl sso configure saml -p okta -r group,developer,access -e entity-desc.xml | tctl sso test
tctl sso test
제공된 인증 커넥터 정의를 사용하여 SSO 인증 흐름의 끝에서 끝까지 테스트합니다.
이 명령은 모든 인증 커넥터 유형을 지원합니다: github
, oidc
및 saml
. 후자의 두 가지는 텔레포트 엔터프라이즈가 필요합니다.
tctl [<global-flags>] sso test [<auth-connector.yaml>]
테스팅은 제공된 인증 커넥터 정의를 사용하여 단일 끝에서 끝까지의 인증 요청을 실행하는 것으로 구성됩니다. 요청이 완료되면 결과가 표준 출력에 인쇄되고 문맥에 특정한 진단 정보가 함께 제공됩니다. 테스트 프로세스는 다음과 같은 부작용으로부터 안전합니다:
- 구성된 인증 커넥터 목록을 변경하지 않습니다.
- 감사 로그는 로그인 시도를 "테스트"로 명확하게 나타냅니다.
- 인증된 사용자에 대해 인증서가 발급되지 않습니다.
이 명령을 사용하려면 github_request
, oidc_request
및 saml_request
리소스에 대한 접근 권한이 있어야 합니다(테스트하는 커넥터 유형에 따라 다름).
"permission denied" 오류가 발생하면 하나의 텔레포트 역할에서 다음 리소스에 대한 접근 권한이 있는지 확인하세요:
- resources: [github_request]
verbs: [list,create,read,update,delete]
- resources: [oidc_request]
verbs: [list,create,read,update,delete]
- resources: [saml_request]
verbs: [list,create,read,update,delete]
인수
[<filename>]
커넥터 리소스 정의 파일. 선택적. 비어있으면 stdin을 사용합니다.
플래그
이 명령은 플래그를 정의하지 않습니다.
전역 플래그
모든 명령에 사용할 수 있는 플래그: --debug, --config
.
tctl help <subcommand>
를 실행하거나 전역 플래그 섹션을 참조하세요.
예시
connector.yaml
의 인증 커넥터를 테스트합니다:
tctl sso test connector.yaml
이 명령은 tctl sso configure
가족의 명령과 함께 사용하도록 설계되었습니다:
tctl sso configure ... | tctl sso test
파이프라인은 tee
를 활용하여 tctl sso configure
로 생성된 커넥터를 포착할 수 있습니다.
이렇게 하면 커넥터가 connector.yaml
에 저장됩니다:
tctl sso configure ... | tee connector.yaml | tctl sso test
기존 인증 커넥터를 테스트하려면 tctl get
과 명령을 결합하면 됩니다:
$ tctl get saml/your-connector-name --with-secrets | tctl sso test
--with-secrets
플래그를 포함해야 하며, 그렇지 않으면 내보낸 인증 커넥터는 테스트할 수 없습니다.
tctl status
클러스터 상태를 보고합니다:
tctl status
예제
클러스터 상태 확인
tctl status Cluster grav-00 User CA never updated Host CA never updated CApin sha256:1146cdd2b887772dcc2e879232c8f60012a839f7958724ce5744005474b15b9d
내보낸 신원을 사용하여 원격 인증 상태 확인
tctl status \ --auth-server=192.168.99.102:3025 \ --identity=identity.pem
tctl tokens add
초대 토큰을 생성합니다:
tctl tokens add --type=TYPE [<flags>]
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
--format | 없음 | text , json , yaml | 출력 형식 |
--labels | 없음 | text | 토큰 레이블을 설정합니다. |
--ttl | 1시간 | 5초, 2분 또는 3시간과 같은 기간 | 토큰이 유효한 시간 설정. |
--type | 없음 | proxy , auth , trusted_cluster , node , db , kube , app , windowsdesktop | 추가할 토큰의 유형 |
--value | 없음 | 문자열 토큰 값 | 추가할 토큰의 값 |
전역 플래그
모든 명령에 사용할 수 있는 플래그: --debug, --config
.
tctl help <subcommand>
를 실행하거나 전역 플래그 섹션을 참조하세요.
예시
trusted_cluster에 대한 초대 토큰 생성
tctl tokens add --type=trusted_cluster --ttl=5m레이블이 있는 trusted_cluster에 대한 초대 토큰 생성
tctl tokens add --type=trusted_cluster --labels=env=prod,region=us-west노드에 대한 초대 토큰 생성
이는 `tctl nodes add`에 해당합니다.
tctl tokens add --type=node노드와 데이터베이스 서비스에 대한 조인 토큰 생성
tctl tokens add --type=node,dbkubernetes_service에 대한 초대 토큰 생성
tctl tokens add --type=kubeapp_service에 대한 초대 토큰 생성
tctl tokens add --type=app
tctl tokens ls
노드 및 사용자 초대 토큰 목록:
tctl tokens ls [<flags>]
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
--format | 없음 | text , json , yaml | 출력 형식 |
전역 플래그
모든 명령에 사용할 수 있는 플래그: --debug, --config
.
tctl help <subcommand>
를 실행하거나 전역 플래그 섹션을 참조하세요.
예제
tctl tokens ls토큰 유형 만료 시간 (UTC)
-------------------------------- --------------- -------------------
abcd123-insecure-do-not-use-this Node 11 Oct 19 22:17 UTC
efgh456-insecure-do-not-use-this trusted_cluster 11 Oct 19 22:19 UTC
ijkl789-insecure-do-not-use-this 사용자 가입 11 Oct 19 22:20 UTC
tctl tokens rm
초대 토큰을 삭제/무효화합니다:
tctl tokens rm [<token>]
인수
<token>
삭제할 전체 토큰 문자열입니다.
tctl top
진단 정보를 보고합니다.
진단 메트릭 엔드포인트는 teleport start --diag-addr=<bind-addr>
로 활성화해야 tctl top
을 사용할 수 있습니다.
tctl top [<diag-addr>] [<refresh>]
인수
[<diag-addr>]
진단 HTTP URL (HTTPS는 지원되지 않음)[<refresh>]
새로 고침 주기, 예:5s
,2m
, 또는3h
예제
sudo teleport start --diag-addr=127.0.0.1:30005초 새로 고침 주기로 통계 보기
tctl top http://127.0.0.1:3000 5s
tctl users add
사용자 초대 토큰을 생성합니다:
tctl users add [<flags>] <account>
인수
<account>
- Teleport 사용자 계정 이름입니다.
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
--roles | 없음 | 쉼표로 구분된 문자열 | 새 사용자에게 할당할 Teleport 역할 목록 |
--logins | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 SSH 로그인 목록 |
--kubernetes-groups | 없음 | 쉼표로 구분된 문자열 | 사용자에게 할당할 Kubernetes 그룹, 예: system:masters |
--kubernetes-users | 없음 | 쉼표로 구분된 문자열 | 사용자에게 할당할 Kubernetes 사용자, 예: jenkins |
--db-users | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 데이터베이스 사용자 목록 |
--db-names | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 데이터베이스 이름 목록 |
--windows-logins | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 Windows 로그인 목록 |
--aws-role-arns | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 AWS 역할 ARN 목록 |
--gcp-service-accounts | 없음 | 쉼표로 구분된 문자열 | 새 사용자가 허용하는 GCP 서비스 계정 목록 |
--azure-identities | 없음 | 쉼표로 구분된 문자열 | 사용자가 가정할 수 있는 Azure 관리 ID 목록. ID의 전체 URI여야 합니다. |
--ttl | 1시간 | 5초, 2분 또는 3시간과 같은 상대 기간 최대 48시간 | 토큰의 만료 시간을 설정합니다. |
--host-user-uid | 없음 | 유닉스 UID | 자동 프로비저닝된 호스트 사용자가 사용할 UID입니다. |
--host-user-gid | 없음 | 유닉스 GID | 자동 프로비저닝된 호스트 사용자가 사용할 GID입니다. |
전역 플래그
모든 명령에 사용할 수 있는 플래그: --debug, --config
.
tctl help <subcommand>
를 실행하거나 전역 플래그 섹션을 참조하세요.
예시
OS 사용자와 {{ internal.logins }}에 대한 매핑과 함께 Teleport 사용자 "joe" 추가
tctl users add joe --roles=access,requester joe,ubuntu편집자 역할에 매핑된 Teleport 사용자 "joe" 추가
tctl users add joe --roles=editor,reviewer
tctl users ls
모든 사용자 계정을 나열합니다:
tctl users ls [<flags>]
tctl users reset
로컬 사용자 계정 비밀번호 및 모든 관련된 2단계 인증을 재설정하여 값을 채우는 만료 링크를 공유합니다. 사용법: tctl users reset <account>
인수
<account>
- Teleport 로컬 DB 사용자입니다.
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
--ttl | 8h | 5s , 2m , 또는 3h 와 같은 상대 기간 | 기본적으로 만료 시간을 설정하며, 최대 만료 시간은 24h0m0s 입니다. |
예제
tctl users reset jeff사용자인 jeff가 재설정되었습니다. 비밀번호 재설정을 완료하기 위해 이 URL을 사용자와 공유하세요. 링크는 8시간 동안 유효합니다:
https://teleport.example.com:3080/web/reset/8a4a40bec3a31a28db44fa64c0c70ca3
jeff는 비밀번호를 채우고 링크로 토큰을 확인합니다.
tctl users rm
사용자 계정을 삭제합니다:
tctl users rm <logins>
인수
<logins>
- 쉼표로 구분된 Teleport 사용자 목록입니다.
예제
tctl users rm sally,tim사용자 sally 및 tim 제거
tctl users update
사용자 계정을 업데이트합니다:
tctl users update [<flags>] <account>
인수
<account>
- Teleport 사용자 계정 이름입니다.
플래그
이름 | 기본 값 | 허용 값 | 설명 |
---|---|---|---|
--set-roles | 없음 | 쉼표로 구분된 사용자 역할 목록 | 제공된 대로 사용자의 역할을 할당하여 현재 역할을 대체합니다. |
--set-azure-identities | 없음 | 쉼표로 구분된 허용된 Azure ID URI 목록 | 제공된 대로 허용된 Azure ID를 사용자의 것으로 대체합니다. |
예제
사용자 joe
의 역할을 access
와 editor
로 설정합니다:
tctl users update joe --set-roles=access,editor
사용자 priya
의 Azure ID를 developer
와 dba
로 설정합니다:
tctl users update priya --set-azure-identities \ `/subscriptions/${SUBSCRIPTION_ID?}/resourceGroups/${MY_RESOURCE_GROUP?}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/developer,\ `/subscriptions/${SUBSCRIPTION_ID?}/resourceGroups/${MY_RESOURCE_GROUP?}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/dba
tctl version
tctl
이진 파일의 버전을 인쇄합니다:
tctl version