Infograb logo
GCP와 서비스 연결하기

이 가이드는 GCP 조인 방법을 사용하여 비밀을 공유하지 않고 GCP VM에서 실행되는 Teleport 프로세스를 Teleport 클러스터에 조인하는 방법을 설명합니다.

GCP 조인 방법은 GCP VM에서 실행 중인 모든 Teleport 프로세스에서 사용 가능합니다. VM에는 서비스 계정 이 할당되어 있어야 하며(기본 서비스 계정도 괜찮습니다). 클러스터에 조인하는 Teleport 프로세스에는 IAM 역할이 필요하지 않습니다.

전제 조건

  • 실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.

  • tctl 관리 도구와 tsh 클라이언트 도구.

    tctltsh 다운로드에 대한 지침은 설치를 방문하세요.

  • Teleport 서비스 호스팅을 위한 GCP VM, 이 VM에 서비스 계정 할당 및 Teleport 바이너리 설치 필요.
  • 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면, tsh login으로 로그인한 다음 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 16.2.0

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결하고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속 tctl 명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.

단계 1/3. GCP 조인 토큰 생성하기

GCP 프로젝트의 서비스가 Teleport 클러스터에 조인할 수 있도록 특별한 동적 토큰으로 Teleport Auth 서비스에 구성하세요.

본질적으로, 서비스는 GCP 조인 토큰에 설정된 허용 규칙과 일치하는 서명된 ID 토큰을 전송하여 GCP 프로젝트에서 실행 중임을 증명합니다.

다음과 같은 token.yaml 파일을 생성하여 GCP 프로젝트 ID, 서비스 계정 및 GCP 인스턴스가 실행될 위치를 지정하는 gcp.allow 규칙을 설정하세요:

# token.yaml
kind: token
version: v2
metadata:
  # 토큰 이름은 비밀이 아닙니다. 인스턴스는 이 토큰을 사용하기 위해
  # GCP 프로젝트에서 실행 중임을 증명해야 합니다.
  name: gcp-token
spec:
  # 필요한 최소 역할 집합을 사용하세요 (예: Node, Proxy, App, Kube, DB, WindowsDesktop)
  roles: [Node]

  # 이 토큰에 대해 허용되는 조인 방법을 설정하세요
  join_method: gcp

  gcp:
    allow:
      # VM이 조인할 수 있는 GCP 프로젝트 ID입니다.
      - project_ids: ["example-project-id"]
        # (선택 사항) VM이 조인할 수 있는 위치입니다. 주의: 지역과
        # 존 모두 허용됩니다.
        locations: ["us-west1", "us-west2-a"]
        # (선택 사항) VM이 조인할 수 있는 서비스 계정의 이메일 주소입니다.
        service_accounts: ["example@example.com"]

다음 명령어를 실행하여 토큰을 생성하세요:

tctl create token.yaml

단계 2/3. 서비스 구성하기

GCP 조인 방법은 SSH(Node), Proxy, Kubernetes, Application, Database 또는 Windows Desktop Services에서 실행 중인 Teleport 프로세스에 사용될 수 있습니다. Teleport 프로세스는 GCP VM에서 직접 실행되어야 합니다.

teleport.yaml 파일을 사용하여 Teleport 프로세스를 구성하세요. join_params 섹션을 사용하여 1단계에서 생성한 토큰과 일치하는 token_namemethod: gcp를 아래의 예제 구성처럼 설정하세요:

# /etc/teleport.yaml
version: v3
teleport:
  join_params:
    token_name: gcp-token
    method: gcp
  proxy_server: https://teleport.example.com:443
ssh_service:
  enabled: yes
auth_service:
  enabled: no
proxy_service:
  enabled: no

단계 3/3. Teleport 프로세스를 시작하세요

호스트가 부팅될 때 your Teleport instance가 자동으로 시작되도록 시스템 데몬 서비스를 생성하여 구성합니다. 지침은 your Teleport instance를 설치한 방법에 따라 다릅니다.

your Teleport instance를 실행할 호스트에서 Teleport를 활성화하고 시작하십시오:

sudo systemctl enable teleport
sudo systemctl start teleport

your Teleport instance를 실행할 호스트에서 Teleport에 대한 시스템 데몬 서비스 구성을 생성하고, Teleport 서비스를 활성화한 후 Teleport를 시작하십시오:

sudo teleport install systemd -o /etc/systemd/system/teleport.service
sudo systemctl enable teleport
sudo systemctl start teleport

your Teleport instance의 상태는 systemctl status teleport로 확인할 수 있으며, 로그는 journalctl -fu teleport로 볼 수 있습니다.

Teleport를 시작한 후, 서비스가 클러스터에 연결하고 조인할 수 있는지 확인하세요.

Teleport 원문 보기