tctl 시작하기
이 가이드는 Teleport 동적 리소스를 관리하기 위한 명령줄 도구인 tctl의 개요를 제공합니다. 동적 리소스가 무엇인지에 대한 개요는 Infrastructure as Code를 참조하세요. tctl 명령, 인수, 플래그 및 환경 변수의 포괄적인 목록은 tctl CLI 참조를 참조하세요.
이 가이드는 Teleport 동적 리소스를 관리하기 위한 명령줄 도구인 tctl의 개요를 제공합니다.
동적 리소스가 무엇인지에 대한 개요는 Infrastructure as Code를 참조하세요.
tctl 명령, 인수, 플래그 및 환경 변수의 포괄적인 목록은 tctl CLI 참조를 참조하세요.
tctl 사용 시기#
tctl은 동적 리소스를 관리하는 Teleport Auth 서비스 클라이언트입니다. 다음 Teleport Auth 서비스 클라이언트도 동적 리소스를 관리할 수 있습니다:
tctl은 클러스터에 대한 데이터 조회나 예상치 못한 구성 변경과 같은 임시 작업에 가장 적합합니다. 소규모 Teleport 클러스터에서 리소스를 관리하는 데도 사용할 수 있습니다.
Teleport 리소스 수가 증가함에 따라 Terraform 또는 Kubernetes 오퍼레이터와 같은 IaC 도구로 전환하는 것을 권장합니다. 이러한 도구는 더 강력한 리소스 수명 주기 관리를 제공합니다.
tctl 권한#
모든 Teleport Auth 서비스 클라이언트는 Teleport 사용자 이름과 역할 목록이 있는 ID를 가집니다. ID는 작업을 수행할 권한이 있는 모든 Teleport 리소스와 수행할 권한이 있는 모든 작업을 나열해야 합니다. 예를 들어, 다음 Teleport 역할은 app 리소스에 대한 모든 작업을 수행할 권한이 있지만 Teleport 역할에 대한 읽기 전용 작업만 수행할 수 있습니다:
allow:
rules:
- resources:
- role
verbs: [list, read]
- resources:
- app
verbs: [list, create, read, update, delete]
Teleport 리소스에 대한 접근 구성에 대한 자세한 내용은 역할 참조를 참조하세요.
감사 로그#
tctl로 리소스를 만들거나 수정하면, Teleport는 감사 로그에 작업을 기록합니다. 각 감사 이벤트와 연결된 Teleport 사용자 이름을 사용하여 tctl을 사용한 리소스 수정과 Terraform 프로바이더, Kubernetes 오퍼레이터 또는 사용자 정의 API 클라이언트를 사용한 수정을 구별할 수 있습니다.
이벤트의 전체 목록은 감사 이벤트 참조를 참조하세요.
인증#
tctl 명령을 실행하기 전에 관리자는 Teleport 클러스터에 인증해야 합니다. 다음 명령을 실행하여 클러스터에 인증할 수 있습니다:
$ tsh login --user=TELEPORT_USER --proxy=PROXY_SERVICE_ADDRESS
tsh login 플래그의 전체 목록은 tsh login 참조 항목을 참조하세요.
로컬 Auth 서비스 백엔드 사용#
자체 호스팅 Teleport 클러스터의 관리자는 Teleport Auth 서비스를 실행하는 호스트에 인증하여 클러스터를 관리할 수 있습니다. tctl이 실행되는 호스트에 Teleport 구성 파일이 있으면, tctl은 로컬 백엔드에 저장된 ID를 사용하여 구성 파일에 명시된 Auth 서비스에 인증을 시도합니다.
tctl은 /etc/teleport.yaml에 구성 파일이 있거나 TELEPORT_CONFIG_FILE 환경 변수가 다른 위치의 구성 파일을 가리키는 경우 이 방법으로 인증합니다. 구성 파일에서 auth_service가 비활성화된 경우, 구성 파일은 무시됩니다.
워크스테이션에 데모 Teleport 클러스터를 설정하는 경우, 완료 후 구성 파일을 제거하여 tctl이 의도한 대로 작동하도록 해야 합니다. tctl이 로컬 머신의 Teleport 클러스터에 연결을 시도하면 다음과 유사한 오류가 표시됩니다:
ERROR: open /var/lib/teleport/host_uuid: permission denied
Auth 서비스에서 tctl 명령을 로컬로 실행하면, 감사 로그에는 Auth 서비스 자체가 수행한 것으로 표시됩니다.
정확한 감사 추적을 제공하려면, 접근 제어로 Auth 서비스에 대한 직접 SSH 접근을 제한하고 관리자가 원격으로 tctl을 사용하도록 해야 합니다.
ID 파일 사용#
tctl은 사용자 제공 ID 파일로 인증할 수 있습니다. 사용자가 tctl auth sign 또는 tsh login --out=<output-path>를 실행하면 Teleport Auth 서비스가 ID 파일에 서명하고, 사용자는 tctl 명령을 실행할 때 --identity 플래그에 ID 파일 경로를 포함할 수 있습니다.
--identity 플래그를 사용할 때, 사용자는 --auth-server 플래그에 Auth 서비스 또는 Proxy 서비스의 주소를 제공하여 tctl이 어떤 클러스터에 인증할지 알 수 있도록 해야 합니다.
조회할 수 있는 리소스#
tctl get 명령으로 다음 리소스를 조회할 수 있습니다:
access_graph_settingsaccess_listaccess_monitoring_ruleaccess_requestappapp_serveraudit_queryauth_serverautoupdate_agent_reportautoupdate_agent_rolloutautoupdate_bot_instance_reportautoupdate_configautoupdate_versionbotbot_instancecert_authoritycluster_auth_preferencecluster_maintenance_configcluster_networking_configconnectorscrown_jeweldbdb_objectdb_object_import_ruledb_serverdb_servicedevicediscovery_configdynamic_windows_desktopexternal_audit_storagegit_servergithubhealth_check_configinference_modelinference_policyinference_secretinstallerintegrationkube_clusterkube_serverlocklogin_rulenamespacenetwork_restrictionsnodeoidcokta_assignmentokta_import_rulepluginproxyrelay_serverremote_clusterrolesamlsaml_idp_service_providerscoped_rolescoped_role_assignmentsecurity_reportsemaphoreserver_infosession_recording_configsigstore_policyspiffe_federationstatic_host_usertokentrusted_clustertunnelui_configuseruser_groupuser_taskvnet_configwindows_desktopwindows_desktop_serviceworkload_identityworkload_identity_x509_issuer_overrideworkload_identity_x509_revocation
