Infograb logo
tctl CLI 참조

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가 비활성화된 경우 구성 파일은 무시됩니다.

Note

tctl 명령이 Auth 서비스에서 로컬로 실행될 때 감사 로그에 Auth 서비스 자체에서 수행된 것으로 표시됩니다.

정확한 감사 추적을 제공하기 위해서는 관리자가 원격으로 tctl을 사용하도록 하여 Auth 서비스에 대한 직접 SSH 접근을 제한하는 것이 중요합니다: 액세스 제어하십시오.

tsh login을 실행한 후 원격 호스트에서

--identity 파일이나 로컬 Teleport 구성 파일을 찾을 수 없는 경우, tctl은 사용자의 tsh 프로필을 로드하여 클러스터에 인증하려고 시도합니다. tsh 프로필은 사용자가 tsh login을 실행할 때 생성됩니다.

tctlTELEPORT_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을 실행할 때 생성됩니다.

tctlTELEPORT_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

플래그

이름기본값허용 값설명
--ttl24h모든 기간경고를 인식할 시간 기간
--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 ls
ID 이유 만료------------------ ---------------------- --------------------upgrade-suggestion "upgrade is scheduled" 수요일 4월 12일 16:52 UTC

tctl alerts create

클러스터 경고를 만듭니다. 클러스터 경고는 웹 UI 또는 tsh 로그인 시 Teleport 사용자에게 표시될 수 있습니다.

tctl alerts create [<flags>] <message>

인수

  • <message>: 표시할 경고 메시지

플래그

이름기본값허용 값설명
--severitylowlow, 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)falseboolean설정된 경우 자세한 경고 정보를 표시합니다 (인식된 경고 포함)
--labels없음쉼표로 구분된 문자열필터링할 레이블 목록

예시

tctl alerts list
ID 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/2tAo

tls 인증서만 내보내기

tctl auth export --type=tls-host

tctl auth rotate

클러스터의 인증서 기관을 회전합니다:

tctl auth rotate [<flags>]

플래그

이름기본값허용 값설명
--grace-period없음상대 기간 5s, 2m 또는 3h와 같은유예 기간은 이전 인증서 기관 서명이 유효하도록 유지합니다. 0으로 설정하면 사용자가 다시 로그인하고 노드가 다시 등록해야 합니다.
--manual없음없음수동 회전을 활성화하고 회전 단계를 수동으로 설정합니다
--typeuser,hostuser 또는 host회전할 인증서 기관
--phaseinit, 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 hostTeleport 호스트 이름
-o, --out없음파일 경로출력 신원
--overwrite없음없음설정된 경우 기존의 식별 파일이 있더라도 새 식별 파일을 작성합니다
--formatfilefile, openssh, tls 또는 kubernetes식별 형식
--identity없음fileAuth 서비스에 로그인하는 데 사용할 식별 파일
--auth-server없음auth host & port원격 Teleport 호스트 이름
--ttl12h5s, 2m 또는 3h와 같은 상대 기간생성된 인증서의 TTL(time to live)
--compat""standard 또는 oldsshOpenSSH 호환성 플래그
--proxy""Teleport 프록시 서비스의 주소--formatkubernetes로 설정된 경우 이 주소는 생성된 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.pem

jenkins 사용자에 대해 TTL이 3개월인 인증서 생성

jenkins.pem 파일은 나중에 `tsh`와 함께 사용할 수 있습니다

tctl auth sign --ttl=2190h --user=jenkins --out=jenkins.pem

jenkins 사용자에 대해 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 생성의 일환으로 생성된 것 대신 사용할 기존 가입 토큰을 지정합니다.
--ttl15m기간.선택적. --token이 지정되지 않은 경우 생성될 토큰의 TTL을 재정의합니다.
--formattexttext, 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 로그insBot의 현재 등록된 로그인을 추가합니다.
--set-logins없음쉼표로 구분된 허용된 Unix 로그insBot의 현재 허용된 로그인 목록을 주어진 목록으로 교체합니다.

예시

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 일련 번호)
--enrollfalseboolean설정된 경우 장치 등록 토큰을 생성합니다

예시

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-example
tctl 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/sre

nano 편집기로 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> 리소스 이름

플래그

이름기본값허용 값설명
--formatyaml, 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>]

플래그

이름기본값허용 값설명
--formattextyaml, 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>]

플래그

이름기본값허용 값설명
--formattextyaml, 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-clusterfalsetrue, false참이면 클러스터에 현재 설치된 모든 로그인 규칙을 불러옵니다. --resource-file와 결합하여 상호 작용을 테스트할 수 있습니다.
--formatyamlyaml, 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>]

플래그

이름기본값허용 값설명
--rolesnodeproxy, auth, node, db, app 또는 windowsdesktop새 노드가 맡을 역할의 쉼표로 구분된 목록
--ttl30m상대 기간 5s, 2m 또는 3h와 같은생성된 토큰의 유효 기간
--token없음문자열 토큰 값노드가 클러스터에 가입하는 데 사용할 수 있도록 생성된 커스텀 토큰. teleport start --token과 일치해야 합니다.

글로벌 플래그

이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config. 실행하려면 tctl help <subcommand> 또는 글로벌 플래그 섹션을 참조하십시오.

예시

노드가 클러스터에 가입하는 데 사용할 수 있는 토큰을 생성합니다. 기본 TTL은 30분입니다.

tctl nodes add

SSH 노드를 클러스터에 추가하는 데 사용할 수 있는 토큰을 생성합니다.

노드는 프록시 서비스와 노드(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 팀이 어떤 역할에 할당되는지를 지정할 수 있습니다. 이 예에서는 octocatsdevs 팀의 구성원이 accesseditor 역할이 부여됩니다.

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, --namegithub리소스 이름커넥터 이름.
-r, --teams-to-roles없음org,team,role1,role2,...팀 및 역할 매핑 설정. 반복 가능합니다.
--display없음표시명이 커넥터가 표시되는 방식 제어.
--id없음GitHub OAuth2 클라이언트 IDGitHub 앱 클라이언트 ID.
--secret없음GitHub OAuth2 비밀GitHub 앱 클라이언트 비밀.
--redirect-url없음유효한 콜백 URL.인증 콜백 URL.
--ignore-missing-roles--teams-to-roles에 참조된 누락된 역할을 무시합니다.

글로벌 플래그

이 플래그는 모든 명령에 사용할 수 있습니다: --debug, --config. 실행하려면 tctl help <subcommand> 또는 글로벌 플래그 섹션을 참조하십시오.

예시

GitHub 인증 커넥터를 생성합니다. 두 개의 역할 매핑이 정의됩니다:

  • octocats 조직의 admin 팀의 구성원이 access, editorauditor 역할을 부여받습니다.
  • octocats 조직의 dev 팀의 구성원이 access 역할을 부여받습니다.
Note

tctl sso configure ghtctl sso configure github의 별칭입니다.

tctl sso configure gh -r octocats,admin,access,editor,auditor -r octocats,dev,access --secret GH_SECRET --id CLIENT_ID
INFO [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이 커넥터가 표시되는 방식 조정.
--idOIDC 앱 클라이언트 ID.
--secretOIDC 앱 클라이언트 비밀번호.
--issuer-url발급자 URL.
--redirect-url인증 콜백 URL.
--prompt선택적 OIDC 프롬프트. 예시값: none, select_account, login, consent.
--scope제공자에 의해 설정된 추가 범위를 지정합니다. 플래그의 반복 사용으로 하나의 범위를 선언합니다. 예시: email, groups, openid.
--acr인증 맥락 클래스 참조 값.
--providerIdP 특정 해결을 활성화하기 위한 외부 ID 공급자 유형 설정. 예시: ping, adfs, netiq, okta.
--ignore-missing-roles--claims-to-roles에 참조된 누락된 역할을 무시합니다.

지원되는 프리셋:

이름설명표시발급자 URL
googleGoogle WorkspaceGooglehttps://accounts.google.com
gitlabGitLabGitLabhttps://gitlab.com
oktaOktaOktahttps://oktaice.okta.com

위의 --issuer-url 값은 기본값으로 설정되며, IdP 구성에 따라 업데이트가 필요할 수 있습니다.

다음 플래그가 Google Workspace에 특정합니다:

이름설명
--google-acc-uri서비스 계정 자격 증명 파일의 URI. 예: file:///var/lib/teleport/gworkspace-creds.json.
--google-accGoogle 서비스 계정 자격 증명 문자열.
--google-admin가장 변제할 Google 관리자 이메일.
--google-legacy직접 회원 자격으로 팀을 필터링하는 하향 호환성을 위한 플래그 (우선 계정). 비활성화 설정. 자세한 내용
--google-id<GOOGLE_WORKSPACE_CLIENT_ID>.apps.googleusercontent.com--id 플래그를 설정하는 단축키.

글로벌 플래그

이 플래그는 모든 명령에 사용할 수 있습니다 --debug, --config. 실행하려면 tctl help <subcommand> 또는 글로벌 플래그 섹션을 참조하십시오.

예시

  1. 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
  1. 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
  1. 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
  1. 구성 생성을 즉시 테스트합니다. 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
  1. 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
  1. 구성을 생성하고 즉시 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, oidcsaml. 후자의 두 가지는 텔레포트 엔터프라이즈가 필요합니다.

tctl [<global-flags>] sso test [<auth-connector.yaml>]

테스팅은 제공된 인증 커넥터 정의를 사용하여 단일 끝에서 끝까지의 인증 요청을 실행하는 것으로 구성됩니다. 요청이 완료되면 결과가 표준 출력에 인쇄되고 문맥에 특정한 진단 정보가 함께 제공됩니다. 테스트 프로세스는 다음과 같은 부작용으로부터 안전합니다:

  • 구성된 인증 커넥터 목록을 변경하지 않습니다.
  • 감사 로그는 로그인 시도를 "테스트"로 명확하게 나타냅니다.
  • 인증된 사용자에 대해 인증서가 발급되지 않습니다.
중요

이 명령을 사용하려면 github_request, oidc_requestsaml_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 CA

pin 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토큰 레이블을 설정합니다.
--ttl1시간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,db

kubernetes_service에 대한 초대 토큰 생성

tctl tokens add --type=kube

app_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:3000

5초 새로 고침 주기로 통계 보기

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여야 합니다.
--ttl1시간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 사용자입니다.

플래그

이름기본 값허용 값설명
--ttl8h5s, 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의 역할을 accesseditor로 설정합니다:

tctl users update joe --set-roles=access,editor

사용자 priya의 Azure ID를 developerdba로 설정합니다:

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
Teleport 원문 보기