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 서비스 또는 프록시 서비스의 주소와 함께 --auth-server 플래그를 제공해야 합니다.

Teleport Auth 서비스와 같은 호스트에서

tctl 이 실행되는 호스트에 Teleport 구성 파일이 있을 경우, tctl 은 해당 구성 파일에 명시된 Auth 서비스에 로컬 백엔드에 저장된 신원을 사용하여 인증을 시도합니다.

tctl/etc/teleport.yaml 에 구성 파일이 존재하거나 TELEPORT_CONFIG_FILE 이 다른 위치의 구성 파일을 가리키는 경우 이 방법으로 인증합니다. 만약 구성 파일에 auth_service 가 비활성화되어 있다면, 구성 파일은 무시됩니다.

Note

tctl 명령이 Auth 서비스에서 로컬로 실행될 경우, 감사 로그에는 Auth 서비스 자체에 의해 수행된 것으로 나타납니다.

정확한 감사 추적을 제공하기 위해, 관리자는 액세스 제어를 사용하여 Auth 서비스에 대한 직접 SSH 액세스를 제한하고 대신 원격으로 tctl 을 사용해야 합니다.

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

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

tctl 은 Teleport 구성 파일이 존재하는지 확인하기 위해 TELEPORT_CONFIG_FILE 환경 변수를 읽습니다. tctl 을 인증하기 위해 tsh 프로필을 사용하는 경우, 다음 조건 중 하나가 충족되어야 합니다:

신원 파일이 있는 원격 호스트에서

tctl 은 사용자 제공 신원 파일로 인증할 수 있습니다. 사용자가 tctl auth sign 또는 tsh login --out=<output-path>를 실행할 때 Teleport Auth 서비스가 신원 파일에 서명하며, 사용자는 tctl 명령을 실행할 때 --identity 플래그에 신원 파일의 경로를 포함할 수 있습니다.

--identity 플래그를 사용할 때, 사용자는 tctl 이 인증할 클러스터를 알 수 있도록 Auth 서비스 또는 프록시 서비스의 주소와 함께 --auth-server 플래그를 제공해야 합니다.

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

tctl 이 로컬 Teleport 구성 파일이나 사용자 제공 신원 파일을 찾을 수 없으면 사용자의 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 에 Proxy 서비스 주소를 지정할 때 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를 가진 경고는 24h0m0s 동안 전송되지 않습니다.

기존의 경고 확인을 지웁니다:

tctl alerts ack --clear upgrade-suggestion

tctl alerts ack ls

알림 확인 목록을 표시합니다.

tctl alerts ack ls
ID Reason Expires------------------ ---------------------- --------------------upgrade-suggestion "업그레이드가 예약됨" Wed Apr 12 16:52 UTC

tctl alerts create

클러스터 알림을 생성합니다. 클러스터 알림은 Teleport 사용자가 웹 UI에서 또는 tsh 를 통해 로그인할 때 표시될 수 있습니다.

tctl alerts create [<flags>] <message>

Arguments

  • <message>: 표시할 알림의 메시지

Flags

이름기본값허용 값설명
--severitylowlow , medium , high알림 심각도
--ttl없음모든 기간알림의 선택적 만료(만료 TTL이 지정되지 않으면 알림은 만료되지 않음)
--labels없음모든알림에 첨부할 레이블 목록입니다.

알림에 적용할 수 있는 레이블이 여러 개 있지만, 알림의 동작을 구성하는 데 사용할 수 있는 몇 가지 내부 레이블이 있습니다:

  • teleport.internal/alert-on-login: yes : 사용자의 로그인 시 알림이 표시되도록 보장합니다.
  • teleport.internal/alert-permit-all: yes : 모든 사용자에게 알림이 표시되도록 보장합니다.

레벨이 지정되지 않으면 tctl 은 자동으로 이 두 레이블을 추가합니다.

Examples

tctl alerts create \ --severity=low \ --ttl=4h \ "시스템이 유지 관리 중입니다. 기능이 제한될 수 있습니다."

tctl alerts list

클러스터 알림 목록을 표시합니다. 이 명령은 tctl alerts ls 로도 호출할 수 있습니다.

Flags

이름기본값허용 값설명
--verbose (-v )falseboolean설정하면 자세한 알림 정보 표시(확인된 알림 포함)
--labels없음쉼표로 구분된 문자열필터링할 레이블 목록입니다.

Examples

tctl alerts list
ID Severity Expires In 메시지------------------------------------ -------- ---------- ----------------------------------------------------------------da36b401-5688-426f-95b8-d0dd1ef27785 LOW 57m0s "시스템이 유지 관리 중입니다. 기능이 제한될 수 있습니다."

tctl auth export

공용 클러스터 CA 인증서를 내보냅니다. 이는 외부 시스템이 Teleport에서 발급한 인증서를 신뢰하도록 구성하는 데 유용합니다.

tctl auth export [<flags>]

Flags

이름기본값허용 값설명
--keys없음없음설정하면 개인 키만 내보냄
--fingerprint없음string e.g. SHA256:<fingerprint>지문으로 권한 필터링
--compat없음버전 번호특정 버전의 Teleport와 호환되는 인증서 내보내기
--type없음user , host , tls-host , tls-user , tls-user-der , windows , db , openssh , saml-idp인증서 유형

Global flags

이 플래그는 모든 명령에 사용 가능합니다 --debug, --config . 실행:

tctl help <subcommand>

또는 Global Flags section을 참조하십시오.

예제

모든 키 내보내기

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없음인증 호스트Teleport 호스트 이름
-o, --out없음파일 경로신원 출력
--overwrite없음없음지정 시, 이미 존재하더라도 새 신원 파일을 작성합니다.
--formatfilefile , openssh , tls 또는 kubernetes신원 형식
--identity없음fileAuth 서비스에 로그인할 때 사용할 신원 파일
--auth-server없음인증 호스트 및 포트원격 Teleport 호스트 이름
--ttl12h5s , 2m , 또는 3h 와 같은 상대 기간생성된 인증서의 TTL(유효 기간)
--compat""standard 또는 oldsshOpenSSH 호환성 플래그
--proxy""Teleport Proxy 서비스의 주소--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.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 실행 준비를 위해 인증 서버에서 신원 내보내기

tctl auth sign --user=admin --out=identity.pem

tctl 봇 추가

새로운 머신 ID 봇 만들기:

tctl bots add <name> [<flags>]

인수

  • <name> - 생성할 머신 ID 봇의 이름입니다.

플래그

이름기본 값허용 값설명
--roles없음콤마로 구분된 봇에 할당할 역할 목록입니다.필수입니다. 봇이 가장하여 생성될 자격 증명에 포함해야 하는 역할을 지정합니다.
--logins없음콤마로 구분된 용인 SSH 로그인을 봇의 로그인 특성으로 설정합니다.선택적입니다. 역할 템플릿 생성을 위해 봇의 로그인 특성으로 구성해야 할 값을 지정합니다.
--token없음기존의 조인 토큰의 문자열 이름입니다.선택적입니다. 봇 생성을 위한 일부로 새로운 토큰을 생성하는 대신 사용할 기존 조인 토큰을 지정합니다.
--ttl15m기간.선택적입니다. --token 이 지정되지 않은 경우 생성될 토큰의 TTL을 재정의합니다.
--formattexttext , jsonjson 으로 설정하면, 새 봇 정보를 기계가 읽을 수 있는 JSON 문자열로 반환합니다.

예제

access 역할을 맡고 root 로 로그인할 수 있는 새로운 봇 example 을 만듭니다:

tctl bots add example --roles=access --logins=root

글로벌 플래그

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

tctl bots instances add

기존 봇의 새로운 인스턴스를 일회용 조인 토큰으로 온보딩합니다:

tctl bots instances add <name> [flags]

새로운 인스턴스는 즉시 생성되지 않으며, 봇이 클러스터에 조인하고 UUID가 할당되면 tctl bots instances list 에 나타납니다.

인수

  • <name> - 새로운 조인 토큰이 생성되어야 하는 기존 봇의 이름

플래그

이름기본값허용값설명
--token없음기존 조인 토큰의 문자열 이름.선택사항. 봇 생성을 위한 조인 토큰을 새로 생성하는 대신 사용할 기존 조인 토큰을 지정합니다.
--formattexttext , jsonjson 으로 설정하면 새로운 봇 정보를 기계 읽기 가능한 JSON 문자열로 반환합니다.

예시

다음은 역할이나 기타 구성을 수정하지 않고 "example"이라는 봇을 위한 새로운 일회용 조인 토큰을 생성합니다:

tctl bots instances add example

글로벌 플래그

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

tctl bots instances list

Machine ID 봇의 모든 현재 인스턴스를 나열합니다:

tctl bots instances list [<name>]

인수

  • [<name>] - 선택적인 봇 이름. 제공되면 결과를 필터링하여 지정된 봇의 인스턴스만 표시합니다. 그렇지 않으면 모든 봇의 인스턴스를 보여줍니다.

예시

다음은 "example"이라는 봇의 모든 알려진 인스턴스를 보여줍니다:

tctl bots instance list example

글로벌 플래그

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

tctl bots instances show

특정 봇 인스턴스에 대한 세부 정보를 보여줍니다. 여기에는 조인 메타데이터 및 현재 상태가 포함됩니다:

tctl bots instances show <name>/<uuid>

인수

  • <name> - 기존 봇의 이름
  • <uuid> - tctl bots instance list 에 표시된 기존 봇 인스턴스의 UUID

예시

tctl bots instances show example/28e605c9-2fe1-423f-afe1-5122335e1c75

글로벌 플래그

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

tctl bots ls

모든 Machine ID 봇을 나열합니다:

tctl bots ls [<flags>]

글로벌 플래그

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

tctl bots rm

Machine ID 봇을 삭제합니다:

tctl bots rm <name> [<flags>]

인수

  • <name> - 삭제할 Machine ID 봇의 이름.

글로벌 플래그

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

tctl 봇 업데이트

Machine ID 봇을 업데이트합니다:

tctl bots update <bot> [<flags>]

인수

  • <name> - 업데이트할 봇의 이름

플래그

이름기본값허용값설명
--add-roles없음봇이 맡을 수 있는 역할의 쉼표로 구분된 목록주어진 역할을 봇이 맡을 수 있는 기존 역할에 추가합니다.
--set-roles없음봇이 맡을 수 있는 역할의 쉼표로 구분된 목록봇의 현재 역할을 제공된 목록으로 교체합니다.
--add-logins없음허용된 Unix 로그인의 쉼표로 구분된 목록주어진 로그인을 봇의 현재 허용된 로그인에 추가합니다.
--set-logins없음허용된 Unix 로그인의 쉼표로 구분된 목록봇의 현재 허용된 로그인을 주어진 목록으로 교체합니다.

예시

example 의 역할을 교체하고 새로운 허용된 Unix 로그인을 추가합니다:

tctl bots update example --add-logins=root --set-roles=access

example 의 모든 암묵적으로 허용된 Unix 로그인을 제거합니다:

tctl bots update example --set-logins=,

봇은 여전히 역할을 통해 추가 로그인을 부여받을 수 있습니다.

글로벌 플래그

모든 명령에서 사용할 수 있는 플래그: --debug, --config . tctl help <subcommand>를 실행하거나 글로벌 플래그 섹션을 참조하세요.

tctl 생성

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 디바이스 추가

디바이스를 등록합니다.

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]

Flags

NameDefault Value(s)Allowed Value(s)Description
--device-id없음문자열Teleport 장치 식별자
--asset-tag없음문자열장치 인벤토리 식별자 (예: Mac 시리얼 번호)

--device-id 또는 --asset-tag 중 하나는 반드시 존재해야 합니다.

Examples

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

Examples

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]

Flags

NameDefault Value(s)Allowed Value(s)Description
--device-id없음문자열Teleport 장치 식별자
--asset-tag없음문자열장치 인벤토리 식별자 (예: Mac 시리얼 번호)

--device-id 또는 --asset-tag 중 하나는 반드시 존재해야 합니다.

Examples

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 은 편집기 프로세스가 종료될 때를 제대로 감지하지 못합니다. 이를 해결하기 위해 편집기가 종료되기 전에 파일이 닫힐 때까지 기다리는 "wait" 옵션을 지원하는지 확인하십시오. 예를 들어 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 17.0.0-dev none none065ab336-1ac2-4314-8b16-32fc06a172a7 server1 Node 17.0.0-dev unit 17.0.0-deva24d4ad4-ead8-4b15-9ea6-357a5350369e teleport-auth-fb68b5df7 Auth,Discovery 17.0.0-dev none none

특정 서비스 및 버전에 대한 인벤토리 목록

tctl inventory ls --services=node --exact-version=17.0.0-dev
서버 ID 호스트 이름 서비스 에이전트 버전 업그레이더 업그레이더 버전------------------------------------ ------------------------------- -------------------------- ------------- -------- ----------------065ab336-1ac2-4314-8b16-32fc06a172a7 server1 Node 17.0.0-dev unit 17.0.0-deva24d4ad4-ead8-4b15-9ea6-357a5350369e server2 Node,App 17.0.0-dev unit 17.0.0-dev

새로 추가된 Teleport 서비스는 서비스가 조인되는 즉시 인벤토리에 나타나지 않습니다. 일반적인 상황에서는 인벤토리 집계에 나타나기까지 약 5분 정도 소요되며, 부하가 심할 경우 최대 15분이 소요될 수 있습니다.

tctl 인벤토리 상태

인벤토리 상태 요약 표시:

tctl inventory status [<flags>]

플래그

이름기본값허용 값설명
--formattextyaml, json 또는 text출력 형식
--[no-]connected--no-connected없음로컬로 연결된 인스턴스 요약 표시

전역 플래그

이들은 모든 명령에 대해 사용할 수 있는 --debug, --config 입니다. tctl help <subcommand>를 실행하거나 전역 플래그 섹션을 참조하십시오.

예제

인벤토리 상태 목록

tctl inventory status
버전: v17.0.0-dev: 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 17.0.0-dev none178d9301-2873-4020-895a-014edf067204 Node 17.0.0-dev unit

인벤토리 상태 목록

tctl inventory status
버전: v16.4.3: 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

클러스터에 설치하지 않고 로그인 규칙 리소스를 테스트합니다.

Arguments

  • <traits-file> 입력 특성 파일, JSON 또는 YAML 형식. 빈 값은 stdin용입니다.

Flags

이름기본값허용값설명
--resource-file없음문자열 파일 경로로그인 규칙 리소스 경로. 여러 파일에 대해 반복할 수 있습니다.
--load-from-clusterfalsetrue, falsetrue인 경우 클러스터에 현재 설치된 모든 로그인 규칙이 테스트를 위해 로드됩니다. 상호 작용을 테스트하기 위해 --resource-file 과 함께 사용할 수 있습니다.
--formatyamlyaml, json트레이트에 대한 출력 형식

Global flags

이 플래그는 모든 명령에 대해 사용 가능 --debug, --config . tctl help <subcommand> 또는 Global Flags 섹션을 참조하십시오.

Examples

rule1.yaml 및 rule2.yaml의 로그인 규칙 평가를 traits.json의 입력 특성과 함께 테스트합니다.

tctl login_rule test --resource-file rule1.yaml --resource-file rule2.yaml traits.json

클러스터에 이미 존재하는 모든 로그인 규칙과 함께 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>]

Flags

이름기본값허용값설명
--rolesnodeproxy, auth, node, db, app 또는 windowsdesktop새 노드가 수렴할 역할의 쉼표로 구분된 목록
--ttl30m상대적 기간 (예: 5s, 2m, 또는 3h)생성된 토큰의 수명
--token없음문자열 토큰 값사용할 사용자 지정 토큰, 제공하지 않으면 자동 생성됩니다. teleport start --token 과 설정한 토큰과 일치해야 합니다.

Global flags

이 플래그는 모든 명령에 대해 사용 가능 --debug, --config . tctl help <subcommand> 또는 Global Flags 섹션을 참조하십시오.

Examples

클러스터에 조인할 수 있는 노드에 대해 생성된 토큰, 기본 TTL은 30분입니다.

tctl nodes add

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

이 노드는 프록시 서비스와 노드(ssh) 서비스를 모두 실행합니다.

이 토큰은 한 시간 이내에 사용할 수 있습니다.

tctl nodes add --roles=node,proxy --ttl=1h

tctl nodes ls

클러스터 내의 모든 활성 SSH 노드를 나열합니다:

tctl nodes ls [<flags>]

Flags

이름기본값허용값설명
--namespace없음문자열 네임스페이스노드의 네임스페이스

Global flags

이 플래그는 모든 명령에 대해 사용 가능 --debug, --config . tctl help <subcommand> 또는 Global Flags 섹션을 참조하십시오.

tctl 요청 승인

사용자의 요청을 승인합니다:

tctl request approve [token]

인수

  • <tokens> - 쉼표로 구분된 Teleport 토큰 목록.

예시

tctl request approve request-id-1, request-id-2

tctl 요청 생성

대기 중인 액세스 요청을 생성합니다.

tctl request create <username>

인수

  • <username> - 대상 사용자의 이름(필수).

플래그

이름기본 값허용 값설명
roles없음쉼표로 구분된 문자열 목록요청할 역할
resource없음쉼표로 구분된 문자열 목록요청할 자원 ID
reason없음문자열선택적 이유 메시지
dry-run없음부울실제 액세스 요청을 생성하지 않음

dry-run 플래그를 사용하여 사용자의 고정 역할을 고려하여 username 인수로 지정된 사용자에 대한 액세스 요청을 Teleport가 생성할 수 있는지 확인합니다.

전역 플래그

이 플래그는 모든 명령에 대해 사용 가능합니다 --debug, --config . tctl help <subcommand>를 실행하거나 전역 플래그 섹션를 확인하십시오.

예시

prod 역할에 대해 사용자 myuser 의 액세스 요청을 이유와 함께 생성합니다:

tctl request create myuser --roles=prod --reason="Fix an outage"

tctl 요청 거부

사용자의 요청을 거부합니다:

tctl request deny [token]

인수

  • <tokens> - 쉼표로 구분된 Teleport 토큰 목록.

예시

tctl request deny request-id-1, request-id-2

tctl 요청 목록

열린 요청 목록:

tctl request ls

예시

tctl request ls

토큰 요청자 메타데이터 생성 시간 (UTC) 상태

------------------------------------ --------- -------------- ------------------- -------

request-id-1 alice roles=dictator 07 Nov 19 19:38 UTC PENDING

tctl 요청 제거

사용자 역할 요청을 삭제합니다:

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 앱 등록에서 가져오며, 이에 대한 자세한 내용은 GitHub 문서를 참조하십시오.

--teams-to-roles 플래그는 여러 번 제공되어 어떤 GitHub 팀이 어떤 역할을 부여받는지를 지정할 수 있습니다. 이 예에서는 GitHub 조직 octocatsdevs 팀 구성원이 Teleport에서 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,...teams-to-roles 매핑을 설정합니다. 반복 가능.
--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 , editor , auditor 역할을 받습니다.
  • 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 비어 있음, 자동으로 해결 중입니다.INFO [CLIENT] RedirectURL이 "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,...를 사용하여 claim-to-roles 매핑을 설정합니다. 반복 가능.
--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--id 플래그를 <GOOGLE_WORKSPACE_CLIENT_ID>.apps.googleusercontent.com 으로 설정하는 단축키입니다.

전역 플래그

이 플래그는 모든 명령에서 사용할 수 있습니다: --debug, --config . tctl help <subcommand> 를 실행하거나 Global Flags section을 참조하십시오.

예제

  1. myauth 라는 OIDC 인증 커넥터 구성을 생성합니다. OIDC 클레임과 역할 간의 두 가지 매핑이 정의됩니다:
    • admin 그룹의 구성원은 access , editorauditor 역할을 받습니다.
    • developer 그룹의 구성원은 access 역할을 받습니다.

--secret , --id--issuer-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 에서 로드되도록 설정됩니다 (--google-acc-uri 사용).
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 . 이러한 플래그는 다른 플래그가 존재할 때 비필수로 변경될 수 있습니다; 아래 표를 참조하십시오.

이름필요 여부설명
-p/--preset프리셋. 다음 중 하나: okta , onelogin , ad , adfs .
-n/--name예, --preset 가 주어지지 않은 경우.커넥터 이름.
-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.
--certIdP의 인증서 PEM 파일 경로. 이 인증서를 사용하여 응답에 서명합니다.
--acs서비스 제공자(텔레포트 쪽)의 어설션 소비자 서비스 URL.
--audience서비스 제공자를 고유하게 식별합니다.
--service-provider-issuer서비스 제공자(텔레포트)의 발급자.
--signing-key-file요청 서명 키가 포함된 파일입니다. --signing-cert-file 과 함께 사용해야 합니다.
--signing-cert-file요청 인증서가 포함된 파일입니다. --signing-key-file 과 함께 사용해야 합니다.
--assertion-key-fileSAML 어설션 보호에 사용되는 키가 포함된 파일입니다. --assertion-cert-file 과 함께 사용해야 합니다.
--assertion-cert-fileSAML 어설션 보호에 사용되는 인증서가 포함된 파일입니다. --assertion-key-file 과 함께 사용해야 합니다.
--provider외부 신원 제공자 유형을 설정하며, 우회 작업을 활성화합니다. 예시: ping, adfs.
--ignore-missing-roles--attributes-to-roles 에서 참조된 누락된 역할을 무시합니다.

지원하는 프리셋:

이름설명표시
oktaOktaOkta
oneloginOneLoginOneLogin
adAzure Active DirectoryMicrosoft
adfsActive Directory Federation ServicesADFS

전체 플래그

모든 명령에 대해 사용할 수 있는 플래그: --debug, --config . tctl help <subcommand>를 실행하거나 전체 플래그 섹션을 참조하세요.

예제

  1. myauth 라는 SAML 인증 커넥터 구성 생성. SAML 속성과 역할 간의 두 가지 매핑이 지정됩니다:
    • admin 그룹의 구성원은 access , editorauditor 역할을 부여받습니다.
    • developer 그룹의 구성원은 access 역할을 부여받습니다. IdP 메타데이터는 entity-desc.xml 파일에서 읽어옵니다.
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 파일 대신, -e 플래그에 URL이 제공되어 런타임 동안 Teleport에 의해 가져옵니다.
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 . 후자의 두 가지는 Teleport Enterprise가 필요합니다.

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

테스트는 제공된 인증 커넥터 정의를 사용하여 단일 엔드 투 엔드 인증 요청을 실행하는 것입니다. 요청이 완료되면 결과는 표준 출력과 컨텍스트별 진단 정보와 함께 인쇄됩니다. 테스트 프로세스는 부작용으로부터 안전합니다:

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

이 명령을 사용하려면 github_request , oidc_requestsaml_request 리소스에 접근할 수 있어야 합니다 (테스트 중인 커넥터 유형에 따라 다름).

"권한 거부" 오류가 발생하는 경우, 다음 리소스에 접근할 수 있는지 확인하세요:

- 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 에서 auth 커넥터를 테스트합니다:

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

기존의 auth 커넥터를 테스트하려면 tctl get 명령과 결합하여 사용할 수 있습니다:

$ tctl get saml/your-connector-name --with-secrets | tctl sso test
중요

--with-secrets 플래그를 포함해야 하며, 그렇지 않으면 내보낸 auth 커넥터는 테스트할 수 없습니다.

tctl 상태

클러스터 및 인증서 기관 상태를 보고합니다:

tctl status

예시

클러스터 상태 확인.

tctl status
Cluster: example.teleport.shVersion: 17.0.0CA pins: sha256:a5322b9f89cb94fff13da4bc9c7b2e633626e35161a75f7662a179a01be84ccc
authority rotation protocol status algorithm storage--------- ----------------------------------------------- -------- ------ ----------- --------host standby (never rotated) SSH active Ed25519 software TLS active ECDSA P-256 softwareuser standby (last rotated: Oct 3 2024 22:12:09 UTC) SSH active ECDSA P-256 AWS KMS TLS active ECDSA P-256 AWS KMSdb standby (never rotated) TLS active RSA 2048 softwaredb_client standby (never rotated) TLS active RSA 2048 softwareopenssh standby (never rotated) SSH active Ed25519 softwarejwt standby (never rotated) JWT active ECDSA P-256 softwaresaml_idp standby (never rotated) TLS active RSA 2048 softwareoidc_idp standby (never rotated) JWT active RSA 2048 softwarespiffe standby (never rotated) JWT active ECDSA P-256 software TLS active ECDSA P-256 softwareokta standby (never rotated) JWT active ECDSA P-256 software
tctl status \ --auth-server=192.168.99.102:3025 \ --identity=identity.pem

tctl 토큰 추가

초대 토큰을 생성합니다:

tctl tokens add --type=TYPE [<flags>]

플래그

이름기본값허용값설명
--format 없음text , json , yaml출력 형식
--labels없음text토큰 레이블 설정
--ttl1h5s, 2m, 또는 3h와 같은 기간토큰이 유효한 기간을 설정합니다.
--type없음proxy , auth , trusted_cluster , node , db , kube , app , windowsdesktop추가할 토큰 유형
--value없음문자열 토큰 값추가할 토큰의 값

전역 플래그

이 플래그는 모든 명령에서 사용 가능합니다: --debug, --config .
tctl help <subcommand> 를 실행하거나 전역 플래그 섹션을 확인하세요.

예시

신뢰할 수 있는 클러스터에 대한 초대 토큰 생성

tctl tokens add --type=trusted_cluster --ttl=5m

라벨이 있는 신뢰할 수 있는 클러스터에 대한 초대 토큰 생성

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 노드 11 10월 19 22:17 UTC

efgh456-insecure-do-not-use-this 신뢰할 수 있는 클러스터 11 10월 19 22:19 UTC

ijkl789-insecure-do-not-use-this 사용자 가입 11 10월 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 목록. URI 전체를 반드시 사용해야 함
--ttl1h상대적인 기간 예: 5s, 2m, 또는 3h, 최대 48h토큰의 만료 시간 설정
--host-user-uid없음Unix UID자동 프로비전된 호스트 사용자가 사용할 UID
--host-user-gid없음Unix GID자동 프로비전된 호스트 사용자가 사용할 GID

전역 플래그

이 플래그는 모든 명령어에 대해 사용할 수 있습니다 --debug, --config .
tctl help <subcommand> 를 실행하거나 전역 플래그 섹션을 참조하세요.

예시

OS 사용자 "joe"에 대한 매핑과

"joe"와 "ubuntu"에 대한 {{ internal.logins }}을 추가합니다.

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 와 같은 상대적 기간토큰의 만료 시간을 설정하며, 기본값은 8h0m0s , 최대값은 24h0m0s 입니다.

예시

tctl users reset jeff

사용자 jeff가 재설정되었습니다. 비밀번호 재설정을 완료하려면 이 URL을 사용자와 공유하세요. 링크는 8h0m0s 동안 유효합니다:

https://teleport.example.com:3080/web/reset/8a4a40bec3a31a28db44fa64c0c70ca3

jeff의 비밀번호와 연결된 모든 2단계 인증을 재설정합니다. 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를 제공된 것으로 변경하며, 현재 허용된 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 버전

tctl 바이너리의 버전을 출력합니다:

tctl version
Teleport 원문 보기