이 가이드는 tbot
이진 파일을 실행하고 이를 Teleport 클러스터에 연결함으로써 Google Cloud Platform(GCP)에서 Machine ID를 배포하는 방법을 설명합니다.
GCP에서 가상 머신은 서비스 계정을 할당받을 수 있습니다. 이러한 머신은 GCP로부터 서명된 JSON 웹 토큰을 요청할 수 있으며, 이를 통해 제 3자는 GCP 공개 키를 사용하여 해당 머신에 대한 정보, 포함된 서비스 계정 등을 확인할 수 있습니다. Teleport의 gcp
가입 방법은 Machine ID 봇이 이 서비스 계정 JWT를 사용하여 Teleport 인증 서비스에 자신의 신원을 증명하고 긴 기간 동안 비밀을 사용하지 않고 Teleport 클러스터에 가입하도록 지시합니다.
이 페이지의 가이드는 GCP 가상 머신에서 Machine ID를 배포하는 데 명확하게 중점을 두고 있지만, gcp
가입 방법을 Google Kubernetes Engine에서 실행 중인 작업에도 사용할 수 있습니다. 이를 위해서는 클러스터와 tbot
포드에서 사용할 Kubernetes 서비스 계정에 대해 GCP Workload Identity를 구성해야 합니다. Kubernetes에서 작업으로서 Machine ID를 배포하는 방법에 대한 추가 지침은 Kubernetes 플랫폼 가이드를 참조하세요.
전제 조건
-
실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.
-
tctl
관리 도구와tsh
클라이언트 도구.tctl
과tsh
다운로드에 대한 지침은 설치를 방문하세요.
- 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오. 예를 들어:클러스터에 연결하고tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다. - Teleport 클러스터에 액세스할 수 있도록 부여할 GCP 서비스 계정. GCP 기본 서비스 계정이 아니어야 합니다.
- Machine ID를 설치할 GCP Compute Engine VM. GCP 서비스 계정으로 구성되어 있어야 합니다.
1단계/5. tbot
설치하기
이 단계는 GCP VM에서 완료됩니다.
먼저, Machine ID를 사용할 VM에 tbot
을 설치해야 합니다.
플랫폼에 맞는 Teleport 패키지를 다운로드하고 설치합니다:
Linux 서버에 Teleport 설치하기:
-
Teleport 에디션에 따라 edition을(를) 다음 중 하나로 지정합니다:
에디션 값 Teleport Enterprise Cloud cloud
Teleport Enterprise (자체 호스팅) enterprise
Teleport Community Edition oss
-
설치할 Teleport의 버전을 확인합니다. 클러스터에서 자동 에이전트 업데이트가 활성화되어 있는 경우, 업데이터와 호환되는 최신 Teleport 버전을 쿼리합니다:
TELEPORT_DOMAIN=example.teleport.comTELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/automaticupgrades/channel/default/version | sed 's/v//')"그렇지 않으면, Teleport 클러스터의 버전을 확인합니다:
TELEPORT_DOMAIN=example.teleport.comTELEPORT_VERSION="$(curl https://$TELEPORT_DOMAIN/v1/webapi/ping | jq -r '.server_version')" -
Linux 서버에 Teleport를 설치합니다:
curl https://cdn.teleport.dev/install-v16.2.0.sh | bash -s ${TELEPORT_VERSION} edition설치 스크립트는 Linux 서버에서 패키지 관리자를 감지하고 이를 사용하여 Teleport 바이너리를 설치합니다. 설치를 사용자 지정하려면 설치 가이드에서 Teleport 패키지 리포지토리에 대해 알아보세요.
2단계/5. 봇 생성하기
이 단계는 로컬 컴퓨터에서 완료됩니다.
다음으로, 봇을 생성해야 합니다. 봇은 기계 또는 기계 그룹에 대한 Teleport 아이덴티티입니다. 사용자와 마찬가지로, 봇은 액세스할 수 있는 내용을 정의하는 일련의 역할과 특성을 가지고 있습니다.
bot.yaml
을 생성하세요:
kind: bot
version: v1
metadata:
# name은 클러스터 내에서 봇의 고유 식별자입니다.
name: example
spec:
# roles는 봇에 부여할 역할의 목록입니다. 여기에 어떤 역할을 지정해야 할지 모르는 경우 걱정하지 마세요.
# Access Guides가 이미 생성된 봇에 역할을 생성하고 할당하는 방법을 안내해 드립니다.
roles: []
example
을 봇에 대한 고유하고 설명적인 이름으로 교체하는 것을 잊지 마세요.
이 파일을 적용하려면 tctl
을 사용하세요:
tctl create bot.yaml
3단계/5. 가입 토큰 생성하기
이 단계는 로컬 컴퓨터에서 완료됩니다.
bot-token.yaml
을 생성합니다:
kind: token
version: v2
metadata:
# 이 토큰을 사용하기 위해 `tbot`에서 지정된 이름
name: example-bot
spec:
roles: [Bot]
# bot_name은 이 가이드에서 이전에 생성한 봇의 이름과 일치해야 합니다.
bot_name: example
join_method: gcp
gcp:
# allow는 인증 서버가 `tbot`이 가입할 수 있는지 판단하는 규칙을 지정합니다.
allow:
- project_ids:
- my-project-123456
service_accounts:
# GCP 서비스 계정의 전체 "이름"이어야 합니다. 기본
# 컴퓨트 서비스 계정은 지원되지 않습니다.
- my-service-account@my-project-123456.iam.gserviceaccount.com
다음 항목을 교체합니다:
my-project-123456
를 GCP 프로젝트 ID로.example
을 두 번째 단계에서 생성한 봇의 이름으로.my-service-account@my-project-123456.iam.gserviceaccount.com
을 이전 단계에서 구성한 서비스 계정의 이메일로. 기본 컴퓨트 서비스 계정은 지원되지 않습니다.
이 파일을 적용하기 위해 tctl
을 사용합니다:
tctl create -f bot-token.yaml
4단계/5. tbot
구성하기
이 단계는 GCP VM에서 완료됩니다.
/etc/tbot.yaml
을 생성합니다:
version: v2
proxy_server: example.teleport.sh:443
onboarding:
join_method: gcp
token: example-bot
storage:
type: memory
# 출력은 액세스 가이드 완료 중에 채워질 것입니다.
outputs: []
다음 항목을 교체합니다:
example.teleport.sh:443
을 Teleport Proxy 또는 Auth 서버의 주소로. Teleport Proxy 주소를 사용하는 것이 좋습니다.example-bot
을 두 번째 단계에서 생성한 토큰의 이름으로.
이제 tbot
을 데몬으로 실행할지 일회성 모드로 실행할지 결정해야 합니다.
데몬 모드에서는 tbot
이 지속적으로 실행되며, 구성된 출력에 대한 단기 자격 증명을 고정 간격으로 갱신합니다. 이는 종종 tbot
을 백그라운드에서 실행하기 위해 서비스 관리자(예: systemd)와 함께 사용됩니다. 이것은 tbot
의 기본 동작입니다.
일회성 모드에서는 tbot
이 단기 자격 증명을 생성한 다음 종료됩니다. 이는 tbot
을 스크립팅(CI/CD 등)과 결합할 때 유용하며, 추가 단계가 tbot
이 성공했을 때 의존하도록 합니다. 자격 증명이 갱신되지 않으면 만료되며, CI/CD 작업의 길이를 충족할 수 있도록 인증서의 TTL이 충분히 긴지 확인하는 것이 중요합니다.
tbot
을 데몬으로 구성하기
기본적으로, tbot
는 데몬 모드에서 실행됩니다. 그러나 이를 Linux 호스트의 서비스 관리자 내에서 서비스로 구성해야 합니다. 서비스 관리자는 부팅 시 tbot
를 시작하고 실패할 경우 다시 시작되도록 보장합니다. 이 안내서에서는 systemd를 시연하지만 tbot
는 모든 일반적인 대안과 호환되어야 합니다.
tbot install systemd
를 사용하여 systemd 서비스 파일을 생성합니다:
tbot install systemd \ --write \ --config /etc/tbot.yaml \ --user teleport \ --group teleport \ --anonymous-telemetry
다음 항목을 바꾸는 것을 잊지 마세요:
teleport
를tbot
를 실행하려는 Linux 사용자 이름으로 바꿉니다./etc/tbot.yaml
을 생성한 구성 파일의 경로로 바꿉니다.
--write
를 생략하면 systemd 서비스 파일이 디스크에 작성되는 대신 콘솔에 출력됩니다.
--anonymous-telemetry
는 익명 사용 수집을 제출할 수 있게 합니다. 이는 tbot
의 향후 개발을 형성하는 데 도움이 됩니다. 이를 생략하여 비활성화할 수 있습니다.
다음으로 서비스를 활성화하여 부팅 시 시작되도록 하고 서비스를 시작합니다:
sudo systemctl daemon-reloadsudo systemctl enable tbotsudo systemctl start tbot
서비스가 성공적으로 시작되었는지 확인합니다:
sudo systemctl status tbot
일회성 모드로 tbot
구성하기
tbot
을 일회성 모드로 사용하려면 /etc/tbot.yaml
을 수정하여 oneshot: true
를 추가하십시오:
version: v2
oneshot: true
auth_server: ...
이제 tbot
구성을 테스트해야 합니다. 시작되면 여러 로그 메시지가 출력되고 상태 0으로 종료됩니다:
export TELEPORT_ANONYMOUS_TELEMETRY=1tbot start -c /etc/tbot.yaml
TELEPORT_ANONYMOUS_TELEMETRY
는 익명 사용 통계를 제출할 수 있도록 합니다. 이는 tbot
의 향후 개발 방향을 형성하는 데 도움이 됩니다. 이를 생략하여 비활성화할 수 있습니다.
5단계/5. 출력 구성하기
당신은 이제 tbot
의 기본 설정을 완료했습니다. 현재 이 시점에서 tbot
은 Teleport 클러스터에 자신을 식별하고 자체 자격 증명을 갱신하지만 다른 애플리케이션에서 사용할 수 있는 자격 증명을 출력하지는 않습니다.
액세스 가이드 중 하나를 따라 귀하의 액세스 요구 사항을 충족하는 출력을 구성하세요.
다음 단계
- 액세스 가이드를 따라 환경에 맞게
tbot
구성을 마무리하세요. - 구성 참조를 읽어 모든 가능한 구성 옵션을 탐색하세요.
TELEPORT_ANONYMOUS_TELEMETRY
에 대한 더 많은 정보.