인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
tbot CLI 참조
tbot
는 Machine ID와 함께 사용되는 CLI 도구로서, 서비스 계정(예: CI/CD 서버)에게 짧은 유효 기간을 가진 인증서를 프로그래밍적으로 발급하고 갱신합니다.
tbot
의 주요 명령은 다음과 같습니다:
Command | Description |
---|---|
tbot help | tbot 명령 사용에 대한 안내를 출력합니다. |
tbot version | 현재 tbot 바이너리의 버전을 출력합니다. |
tbot configure | 필요에 따라 조정할 수 있는 기본 Machine ID 클라이언트 구성 파일을 출력합니다. |
tbot start | Machine ID 클라이언트 tbot 을 시작하여 설정된 간격으로 인증서를 가져오고 디스크에 기록합니다. |
tbot init | 별도의 봇 사용자의 쓰기를 위한 인증서 대상 디렉토리를 초기화하며, 파일 또는 POSIX ACL 권한을 구성합니다. |
tbot db | 기본 클라이언트를 사용하여 데이터베이스에 연결하고 데이터베이스 정보를 쿼리합니다. tsh 의 래퍼로 동작하며, tsh 설치가 필요합니다. |
tbot proxy | TLS 라우팅을 사용하여 클러스터의 Teleport 리소스에 접근할 수 있도록 합니다. tsh 의 래퍼로 동작하며, tsh 설치가 필요합니다. |
tbot tpm identify | 시스템에서 감지된 TPM(신뢰할 수 있는 플랫폼 모듈)과 관련된 식별 정보를 출력합니다. |
tbot db
기본 클라이언트를 사용하여 데이터베이스에 연결하고 데이터베이스 정보를 쿼리합니다. 이는 테스트 및 검증 목적으로 가장 잘 사용됩니다; 대부분의 사용자는 tbot proxy db
를 사용하여 자신의 데이터베이스를 로컬 프록시에 연결하는 것을 선호할 것입니다.
이 명령을 사용하려면 tsh
가 설치되어 있어야 합니다.
플래그
Flag | Description |
---|---|
-d/--debug | stderr에 자세한 로깅을 활성화합니다. |
-c/--config | Machine ID 구성 파일의 경로입니다. 다른 필수 구성 플래그를 사용하지 않을 경우 필수입니다. |
--destination-dir | 인증에 사용할 Machine ID 대상 디렉토리의 경로입니다. 필수입니다. |
--proxy-server | 리소스에 접근하기 위해 사용할 Teleport Proxy Service의 host:port 입니다. 필수입니다. |
--cluster | 리소스에 접근해야 하는 클러스터의 이름입니다. 설정되지 않은 경우 봇 ID에서 추출됩니다. |
모든 다른 플래그와 인수는 tsh db ...
로 직접 전달되며, Machine ID 식별자를 사용하여 tsh
의 로그인 단계를 건너뛰기 위한 인증 매개변수와 함께 전달됩니다.
일부 CLI 매개변수(예: --help
)는 tbot
에 의해 캡처될 수 있으며, 이는 래핑된 tsh
로 전달할 의도가 있을 경우입니다. --
인수를 사용하여 모든 후속 인수가 tsh
에 전달되고 tbot
에서 무시되도록 할 수 있습니다.
또한, tbot db
의 다음 제한 사항을 인식해야 합니다:
tbot db connect
는 특정 데이터베이스 유형(예: MySQL)에 대해 추가 연결 매개변수를 로컬 구성 파일에 기록할 수 있도록tbot db login
이 필요합니다.tbot db env
는 완전히 지원되지 않습니다.
tbot init
별도의 봇 사용자로부터의 접근을 위해 인증서 대상 디렉토리를 초기화합니다. 이는 머신 ID 클라이언트 외의 디스크에 인증서를 쓸 수 있도록 하며, 파일 또는 POSIX ACL 권한을 구성합니다.
대부분의 사용 사례는 대상 구성에서 허용된 읽기 사용자 및 그룹을 지정하여 tbot의 런타임 ACL 관리 기능을 사용해야 합니다.
플래그
Flag | 설명 |
---|---|
-d/--debug | stderr로 상세 로그를 활성화합니다. |
-c/--config | Machine ID 구성 파일의 경로입니다. |
--destination-dir | 단기 머신 인증서를 쓸 디렉토리입니다. |
--owner | --destination-dir 의 Linux user:group 소유자를 정의합니다. 지정하지 않으면 tbot 을 실행하는 Linux 사용자로 기본 설정됩니다. |
--bot-user | POSIX ACL을 활성화하고 --destination-dir 에 단기 인증서를 읽고 쓸 수 있는 Linux 사용자를 정의합니다. |
--reader-user | POSIX ACL을 활성화하고 --destination-dir 에서 단기 인증서를 읽을 Linux 사용자를 정의합니다. |
--init-dir | 구성 파일을 사용하고 여러 대상을 구성하는 경우, 어떤 대상 디렉토리를 구성할지를 제어합니다. |
--clean | 설정된 경우, 대시보드에 예상치 못한 파일과 디렉토리를 제거합니다. |
--log-format | 출력 로그의 형식을 제어합니다. json 또는 text 일 수 있습니다. 기본값은 text 입니다. |
예제
파일 권한을 사용하는 예제.
다음 명령은 사용자와 그룹 jenkins:jenkins
를 사용하여 Linux 그룹을 통해 tbot
의 권한을 설정하는 방법을 보여줍니다.
tbot
을 Linux 사용자 root
로 실행하는 경우, 단기 인증서 디렉토리 /opt/machine-id
를 소유자 jenkins:jenkins
로 초기화하기 위해 다음과 같이 tbot init
을 호출합니다.
tbot init \ --destination-dir=/opt/machine-id \ --owner=jenkins:jenkins
POSIX ACL을 사용하는 예제.
Linux 사용자 teleport
로 tbot
을 실행하는 경우, /opt/machine-id
의 소유자를 teleport:teleport
로 설정하되, jenkins
가 /opt/machine-id
에서 읽을 수 있도록 하려면 다음과 같이 tbot init
을 호출합니다.
tbot init \ --destination-dir=/opt/machine-id \ --bot-user=teleport \ --reader-user=jenkins
tbot 프록시
TLS 라우팅 모드에서 로컬 TLS 프록시를 통해 Teleport 리소스에 액세스할 수 있습니다.
tbot proxy
명령은 다양한 프로토콜에 대한 로컬 프록시 기능을 제공하기 위해 tsh proxy
의 래퍼 역할을 합니다.
이 명령을 사용하려면 tsh
가 설치되어 있어야 합니다.
가능한 경우 다음의 전용 터널 모드 중 하나를 사용하는 것을 고려하세요:
플래그
Flag | 설명 |
---|---|
-d/--debug | stderr로 상세 로그를 활성화합니다. |
-c/--config | 머신 ID 구성 파일의 경로입니다. 다른 필수 구성 플래그를 사용하지 않는 경우 필요합니다. |
--destination-dir | 인증을 위해 사용해야 할 Machine ID 대상 디렉토리의 경로입니다. 필요합니다. |
--proxy-server | 리소스에 접근할 Teleport 프록시 서비스의 host:port 입니다. 필요합니다. |
--cluster | 리소스에 접근해야 하는 클러스터의 이름입니다. 설정하지 않으면 봇 ID에서 추출됩니다. |
모든 다른 플래그와 인수는 tsh proxy ...
에 직접 전달되며, Machine ID 아이덴티티를 사용하여 tsh
의 로그인 단계를 건너뛰도록 인증 매개 변수가 사용됩니다.
또한 다음 사항에 주의해야 합니다:
- 예를 들어
--help
와 같은 특정 CLI 매개 변수가 의도된 경우에도tbot
에 의해 캡처될 수 있습니다.--
인수를 사용할 수 있으며, 이 인수는 이후 모든 인수가tsh
에 전달되고tbot
에 의해 무시되도록 보장합니다. - 구성 파일이 제공되지 않는 경우,
tbot
은 제공된 CLI 플래그를 기반으로 샘플 구성을 적용합니다. 이 때문에 프로덕션에서 설정이 구성 파일에 명시적으로 적용되는 것이 권장됩니다.
예시
OpenSSH 사용 예
다음 명령어는 OpenSSH ProxyCommand
로 SSH 접근에 적합한 프록시를 통해 표준 입력 및 출력을 전달합니다:
tbot proxy --destination-dir=./tbot-user --proxy-server=proxy.example.com:3080 ssh alice@node:3022
이 경우:
alice
는 원격 사용자 이름입니다node
는 Teleport 노드 이름입니다3022
는 원격 SSH 포트이며, Teleport SSH 서비스가 실행 중인 노드에서는3022
입니다.
데이터베이스 접근 사용 예
다음 예는 주어진 데이터베이스에 로컬 프록시 서버를 여는 것입니다. 데이터베이스 클라이언트는 여전히 클라이언트 TLS 인증서로 구성되어야 합니다:
tbot proxy --destination-dir=./tbot-user --proxy-server=proxy.example.com:3080 db --port=1234 example
이 경우:
example
은 Teleport에 존재하는 데이터베이스 서버의 이름입니다1234
는 프록시를 실행할 임의의 포트입니다
추가 클라이언트 인증 필요성을 피하기 위해 권장되지는 않지만, --tunnel
플래그를 사용하여 로컬 프록시에서 인증을 수행할 수 있습니다:
tbot proxy --destination-dir=./tbot-user --proxy-server=proxy.example.com:3080 db --tunnel --port=1234 example
이 점은 보안을 감소시킵니다:
- 시스템의 모든 사용자가
localhost
를 통해 데이터베이스에 접근할 수 있도록 허용합니다. - 데이터베이스에 대한 연결은
localhost
에서 실행 중인tbot
프록시까지 암호화되지 않습니다.
데이터베이스 프록시 사용에 대한 자세한 정보는 데이터베이스 가이드를 참조하십시오.
플래그
플래그 | 설명 |
---|---|
-d/--debug | stderr로 자세한 로깅을 활성화합니다. |
-c/--config | 구성 파일의 경로입니다. |
-a/--auth-server | Teleport Auth 서비스의 주소입니다. 가능하면 --proxy-server 사용을 선호하세요. |
--proxy-server | Teleport 프록시 서버의 주소입니다. |
--token | 새로운 봇을 온보딩하려고 할 경우의 봇 조인 토큰입니다; 첫 연결 시 사용됩니다. 또한 토큰이 포함된 파일의 절대 경로일 수도 있습니다. |
--ca-pin | Teleport Auth 서버를 검증하는 CA 핀입니다; 첫 연결 시 사용됩니다. |
--data-dir | 내부 봇 데이터를 저장할 디렉토리입니다. 운영 환경에서는 이 디렉토리에 대한 접근을 0600 권한을 가진 고립된 리눅스 사용자로 제한해야 합니다. |
--destination-dir | 단기적으로 생성된 머신 인증서를 쓰기 위한 디렉토리입니다. |
--certificate-ttl | 단기적으로 생성된 머신 인증서의 TTL입니다. |
--renewal-interval | 단기 인증서가 갱신되는 간격입니다; 인증서 TTL보다 작아야 합니다. |
--join-method | 클러스터에 조인하는 데 사용할 방법입니다. token 또는 iam 일 수 있습니다. |
--oneshot | 설정 시, 첫 갱신 후 종료합니다. |
tbot 구성
tbot configure
명령은 tbot start
CLI 호출을 YAML 구성 파일로 변환하는 데 사용됩니다. tbot start
와 동일한 모든 하위 명령 및 플래그를 지원하지만, 봇을 시작하는 대신 동등한 구성을 출력합니다.
예를 들어, 다음 tbot start identity
CLI 호출을 고려해 보십시오:
tbot start identity \ --destination=./example \ --join-method=token \ --token=foo \ --proxy-server=teleport.example.com:443
이 CLI 명령을 구성 파일로 변환하려면 tbot start
를 tbot configure
로 교체합니다:
tbot configure identity \ --destination=./example \ --join-method=token \ --token=foo \ --proxy-server=teleport.example.com:443
동등한 YAML 구성은 출력되며, 파일에 기록할 수 있습니다. 그런 다음 이 구성 파일을 사용하여 클라이언트를 시작할 수 있습니다:
tbot configure identity \ --destination=./example \ --join-method=token \ --token=foo \ --proxy-server=teleport.example.com:443 > tbot.yamltbot start -c tbot.yaml
플래그
이 하위 명령은 tbot start
와 동일한 약속 외에 하나의 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
-o/--output | 설정하면 생성된 구성이 표준 출력 대신 주어진 파일 경로에 기록됩니다. |
tbot start
tbot start
명령 집합은 접근할 자원의 유형에 따라 다양한 모드로 Machine ID 클라이언트를 시작합니다:
tbot start legacy
: YAML 구성 파일 또는 레거시 출력 모드로 시작합니다.tbot start identity
: SSH 및 Teleport API 접근을 위한 아이덴티티 출력을 사용하여 시작합니다.tbot start database
: 데이터베이스 자격 증명 출력을 사용하여 시작합니다.tbot start kubernetes
: Kubernetes 출력을 사용하여 시작합니다.tbot start application
: 애플리케이션 TLS 자격 증명 출력을 사용하여 시작합니다.tbot start application-tunnel
: 로컬 애플리케이션 터널을 시작합니다.tbot start database-tunnel
: 로컬 데이터베이스 터널을 시작합니다.tbot start spiffe-svid
: Workload ID SPIFFE SVID 출력을 사용하여 시작합니다.
단지 tbot start
만 지정하면 기본적으로 tbot start legacy
로 추론됩니다; 이는 YAML 구성 파일과 함께 사용하기 위한 올바른 모드입니다.
공통 시작 플래그
이 플래그들은 모든 tbot start
명령에서 사용할 수 있습니다. tbot start legacy
는 약간 다른 옵션을 지원하므로, YAML 구성 파일 또는 레거시 출력을 사용할 때 참고하십시오.
플래그 | 설명 |
---|---|
-d/--debug | stderr에 자세한 로깅을 활성화합니다. |
--[no-]fips | tbot을 FIPS 준수 모드로 실행할지 여부입니다. 이는 FIPS tbot 이진 파일이 필요합니다. |
--log-format | 출력 로그의 형식을 제어합니다. json 또는 text 로 설정할 수 있습니다. 기본값은 text 입니다. |
-a/--auth-server | Teleport Auth 서비스의 주소입니다. 가능한 경우 --proxy-server 를 사용하는 것이 좋습니다. |
--proxy-server | Teleport 프록시 서버의 주소입니다. |
--token | 새 봇을 온보딩하려고 할 때 사용할 봇 조인 토큰 또는 토큰 값이 포함된 파일의 경로입니다; 첫 연결 시 사용됩니다. |
--ca-pin | Teleport Auth 서비스를 검증하기 위한 CA 핀입니다; 첫 연결 시 사용됩니다. |
--certificate-ttl | 단기 머신 인증서의 TTL입니다. |
--renewal-interval | 단기 인증서를 갱신하는 간격입니다; 인증서 TTL보다 작아야 합니다. |
--join-method | 클러스터에 조인하기 위해 사용할 방법입니다. 다음 중 하나: azure , circleci , gcp , github , gitlab , iam , kubernetes , spacelift , token , tpm , terraform_cloud |
--[no-]oneshot | 설정하면 첫 번째 갱신 후 종료합니다. |
--diag-addr | 설정하면 봇이 디버그 모드일 경우 특정 주소에서 진단 서비스가 대기합니다. |
--storage | tbot의 내부 저장소를 위한 대상 URI, 예: file:///foo/bar 입니다. 자세한 정보는 대상 URI를 참조하십시오. |
tbot 시작 레거시
tbot
머신 ID 클라이언트를 시작하며, 설정된 간격으로 인증서를 디스크에 가져오고 작성합니다. 이 명령은 -c
가 지정된 경우 구성 파일에서 시작하거나 기본 레거시 호환성 있는 아이덴티티 출력으로 시작합니다.
다른 명령이 지정되지 않은 경우 기본 tbot start
하위 명령입니다. 구성 파일을 사용하지 않는 경우, tbot start identity
또는 다른 전용 모드를 사용하는 것을 고려하십시오.
플래그
플래그 | 설명 |
---|---|
-d/--debug | stderr에 자세한 로깅을 활성화합니다. |
-c/--config | 머신 ID 구성 파일의 경로입니다. |
--[no-]fips | FIPS 준수 모드에서 tbot을 실행할 것인지 여부입니다. 이는 FIPS tbot 바이너리를 필요로 합니다. |
-a/--auth-server | Teleport 인증 서비스의 주소입니다. 가능하다면 --proxy-server 사용을 선호합니다. |
--proxy-server | Teleport 프록시 서버의 주소입니다. |
--token | 새 봇 온보딩을 시도하는 경우 봇 조인 토큰입니다; 첫 번째 연결 시 사용됩니다. 또한 토큰이 포함된 파일의 절대 경로일 수 있습니다. |
--ca-pin | Teleport Auth Server를 검증하기 위한 CA 핀입니다; 첫 번째 연결 시 사용됩니다. |
--data-dir | 내부 봇 데이터를 저장하는 디렉터리입니다. 운영 환경에서는 이 디렉터리에 대한 접근을 0600 권한을 가진 제한된 리눅스 사용자에게만 허용해야 합니다. |
--destination-dir | 단기 머신 인증서를 작성할 디렉터리입니다. |
--certificate-ttl | 단기 머신 인증서의 TTL입니다. |
--renewal-interval | 단기 인증서를 갱신하는 간격입니다; 인증서 TTL보다 작아야 합니다. |
--join-method | 클러스터에 가입하는 데 사용할 방법입니다. token , azure , circleci , gcp , github , gitlab 또는 iam 이 될 수 있습니다. |
--oneshot | 설정하면 첫 번째 갱신 후 종료합니다. |
--log-format | 출력 로그의 형식을 제어합니다. json 또는 text 가 될 수 있으며 기본값은 text 입니다. |
예제
tbot start \ --data-dir=/var/lib/teleport/bot \ --destination-dir=/opt/machine-id \ --token=00000000000000000000000000000000 \ --join-method=token \ --ca-pin=sha256:1111111111111111111111111111111111111111111111111111111111111111 \ --proxy-server=example.teleport.sh:443
tbot start \ --data-dir=/var/lib/teleport/bot \ --destination-dir=/opt/machine-id \ --token=00000000000000000000000000000000 \ --join-method=token \ --ca-pin=sha256:1111111111111111111111111111111111111111111111111111111111111111 \ --proxy-server=teleport.example.com:443
tbot 시작 신원
tbot
머신 ID 클라이언스를 신원 출력을 사용하여 시작하며, --destination
으로 지정된 출력에 정기적으로 인증서를 가져오고 작성합니다.
tbot start identity --destination=DESTINATION [<flags>]
플래그
공통 tbot start
플래그 외에 이 명령은 다음 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--destination | file:///foo/bar와 같은 대상 URI. 자세한 내용은 대상 URI를 참조하십시오. 필수. |
--reader-user | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 사용자 이름 또는 UID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--reader-group | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 그룹 이름 또는 GID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--cluster | 리프 클러스터를 사용하는 경우 신원을 발급할 특정 클러스터의 이름 |
예제
일회성 조인 토큰으로 봇을 시작하려면:
tbot start identity \ --proxy-server=example.teleport.sh:443 \ --join-type=token \ --token=TOKEN \ --destination=./tbot-user \ --storage=./tbot-data
tbot 시작 데이터베이스
tbot
머신 ID 클라이언스를 데이터베이스 출력을 사용하여 시작하며, --destination
으로 지정된 출력에 정기적으로 데이터베이스 인증서를 가져오고 작성합니다.
tbot start database --destination=DESTINATION --service=SERVICE --username=USERNAME --database=DATABASE [<flags>]
플래그
공통 tbot start
플래그 외에 이 명령은 다음 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--destination | file:///foo/bar와 같은 대상 URI. 자세한 내용은 대상 URI를 참조하십시오. 필수. |
--reader-user | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 사용자 이름 또는 UID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--reader-group | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 그룹 이름 또는 GID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--format | 필요한 경우 데이터베이스 출력 형식 |
--service | Teleport 및 tsh db ls 에 나타나는 데이터베이스의 서비스 이름. 필수. |
--username | 데이터베이스 사용자 이름. 봇 사용자는 이 사용자로 연결할 수 있는 권한이 있어야 합니다. 필수. |
--database | 요청된 서비스에서 사용 가능한 데이터베이스의 이름. 필수. |
tbot 시작 쿠버네티스
tbot
머신 ID 클라이언스를 쿠버네티스 출력을 사용하여 시작하며, --destination
으로 지정된 출력에 정기적으로 쿠버네티스 자격 증명 및 kubeconfig.yaml
을 가져오고 작성합니다.
tbot start kubernetes --destination=DESTINATION --kubernetes-cluster=KUBERNETES-CLUSTER [<flags>]
플래그
공통 tbot start
플래그 외에 이 명령은 다음 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--destination | file:///foo/bar와 같은 대상 URI. 자세한 내용은 대상 URI를 참조하십시오. 필수. |
--reader-user | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 사용자 이름 또는 UID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--reader-group | 이 대상을 읽을 수 있도록 ACL에 허용되어야 하는 추가 그룹 이름 또는 GID. Linux에서의 파일 대상을 위한 경우에만 유효합니다. |
--kubernetes-cluster | 자격 증명을 가져올 Teleport의 쿠버네티스 클러스터 이름 |
tbot 애플리케이션 시작
애플리케이션 출력을 가진 Machine ID 클라이언트 tbot
을 시작하고, --destination
으로 지정된 출력에 정기적으로 애플리케이션 TLS 자격 증명을 가져오고 작성합니다.
tbot start application --destination=DESTINATION --app=APP [<flags>]
플래그
공통 tbot start
플래그 외에도 이 명령은 다음과 같은 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--destination | file:///foo/bar와 같은 대상 URI. 자세한 내용은 Destination URIs를 참조하세요. 필수사항입니다. |
--reader-user | ACL에서 이 대상을 읽도록 허용해야 하는 추가 사용자 이름 또는 UID입니다. Linux의 파일 대산에만 유효합니다. |
--reader-group | ACL에서 이 대상을 읽도록 허용해야 하는 추가 그룹 이름 또는 GID입니다. Linux의 파일 대산에만 유효합니다. |
--app | Teleport 내의 앱 이름입니다. |
tbot 애플리케이션 터널 시작
특정 애플리케이션에 대한 로컬 터널로 Machine ID 클라이언트를 시작합니다. 이 터널은 지속적으로 실행되며 자동으로 인증서를 갱신합니다.
이 터널은 암호화되지 않은 점에 유의하세요. 선택한 수신 주소에 주의하고, 가능하다면 localhost
또는 동등한 루프백 인터페이스 주소를 사용하는 것이 좋습니다. 또한, 로컬 시스템의 모든 사용자가 이 소켓에 접근할 수 있음을 유의하세요.
하나의 봇 인스턴스에서 여러 앱을 터널링하려면 tbot configure application-tunnel ...
을 사용하여 구성 파일을 생성하고 원하는 대로 services:
아래에서 생성된 블록을 반복하세요.
이 터널링 방법은 레거시 tbot proxy app
보다 선호됩니다.
tbot start application-tunnel --listen=LISTEN --app=APP [<flags>]
플래그
플래그 | 설명 |
---|---|
--listen | 수신할 소켓 URI, 예: tcp://localhost:1234 . 필수사항입니다. |
--app | Teleport 내의 앱 이름입니다. |
tbot 데이터베이스 터널 시작
특정 데이터베이스에 대한 로컬 터널로 Machine ID 클라이언트를 시작합니다. 이 터널은 지속적으로 실행되며 자동으로 인증서를 갱신합니다.
이 터널은 암호화되지 않은 점에 유의하세요. 선택한 수신 주소에 주의하고, 가능하다면 localhost
또는 동등한 루프백 인터페이스 주소를 사용하는 것이 좋습니다. 또한, 로컬 시스템의 모든 사용자가 이 소켓에 접근할 수 있음을 유의하세요.
하나의 봇 인스턴스에서 여러 데이터베이스를 터널링하려면 tbot configure database-tunnel ...
을 사용하여 구성 파일을 생성하고 원하는 대로 services:
아래에서 생성된 블록을 반복하세요.
이 터널링 방법은 레거시 tbot proxy db
보다 선호되며, 대략적으로 tbot proxy db --tunnel
과 동등합니다.
tbot start database-tunnel --listen=LISTEN --service=SERVICE --username=USERNAME --database=DATABASE [<flags>]
플래그
공통 tbot start
플래그 외에도 이 명령은 다음과 같은 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--listen | 수신할 소켓 URI, 예: tcp://localhost:1234 . 필수사항입니다. |
--service | Teleport 및 tsh db ls 에서 보이는 데이터베이스의 서비스 이름. 필수사항입니다. |
--username | 데이터베이스 사용자 이름. 봇 사용자가 이 사용자로 연결할 수 있는 권한을 가져야 합니다. 필수사항입니다. |
--database | 요청된 서비스에서 사용 가능한 데이터베이스 이름. 필수사항입니다. |
tbot 시작 spiffe-svid
플래그
공통 tbot start
플래그 외에,
이 명령은 다음 추가 플래그를 지원합니다:
플래그 | 설명 |
---|---|
--destination | file:///foo/bar와 같은 대상 URI입니다. 자세한 내용은 대상 URIs를 참조하세요. 필수입니다. |
--reader-user | ACL에 의해 이 대상을 읽도록 허용되어야 하는 추가 사용자 이름 또는 UID입니다. Linux의 파일 대상에 대해서만 유효합니다. |
--reader-group | ACL에 의해 이 대상을 읽도록 허용되어야 하는 추가 그룹 이름 또는 GID입니다. Linux의 파일 대상에 대해서만 유효합니다. |
--[no-]include-federated-trust-bundles | 설정 시, 출력에 연합 신뢰 번들을 포함합니다. |
--svid-path | 요청할 SPIFFE ID로, '/'로 시작합니다. 필수입니다. |
--svid-hint | SVID 소비자에게 도움을 주기 위해 선택적으로 제공할 수 있는 힌트입니다. |
--dns-san | SVID에 포함되어야 하는 DNS 이름입니다. 반복 가능합니다. |
--ip-san | SVID에 포함되어야 하는 IP 주소입니다. 반복 가능합니다. |
tbot install systemd
특정 tbot 구성에 대한 systemd 유닛 파일을 생성하고 설치합니다.
플래그
플래그 | 설명 |
---|---|
-d/--debug | stderr에 대한 자세한 로깅을 활성화합니다. |
-c/--config | 구성 파일의 경로입니다. |
--write | systemd 유닛 파일을 작성합니다. 지정하지 않으면 이 명령은 생성된 내용을 stdout으로 출력하는 드라이 런 모드에서 실행됩니다. |
--systemd-directory | systemd 유닛 파일이 작성될 경로입니다. 기본값은 '/etc/systemd/system'입니다. |
--force | 존재하는 systemd 유닛 파일이 있을 경우 덮어씁니다. |
--name | systemd 유닛의 이름입니다. 기본값은 'tbot'입니다. |
--user | 서비스가 실행될 사용자입니다. 기본값은 'teleport'입니다. |
--group | 서비스가 실행될 그룹입니다. 기본값은 'teleport'입니다. |
예시
tbot install systemd \ --config=/etc/tbot.yaml \ --write
대상 URIs
많은 tbot start
하위 명령은 --storage
및
--destination
플래그를 통해 대상 URIs를 받습니다.
프로토콜 | 설명 |
---|---|
file:// | file:///foo/bar/ 와 같은 로컬 디렉토리 대상입니다. |
memory:// | 메모리 내의 대상입니다. 지속성이 필요하지 않은 내부 봇 저장소에 유용합니다. |
kubernetes-secret:// | kubernetes-secret:///my-secret 와 같은 Kubernetes 비밀 대상입니다. |
Plain 파일 경로도 file://
접두어 없이 수용되며, 이러한 경로는 디렉토리 출력으로 처리됩니다.
tbot start legacy
는 --destination-dir
플래그를 통한 디렉토리 출력 대상을 지원하지만, --storage
에 대한 URI는 지원합니다. 모든 다른 tbot start
하위 명령은 관련된 경우 이러한 URIs를 수용합니다.