Infograb logo
GCP로 서비스 연결하기

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

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

전제 조건

  • 실행 중인 Teleport 클러스터 버전 17.0.0-dev 이상. Teleport를 시작하려면 가입하여 무료 평가판을 이용하거나 데모 환경 설정 방법을 확인하십시오.

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

    tctltsh 다운로드 방법에 대한 지침은 설치를 방문하십시오.

  • Teleport 서비스 호스팅을 위한 GCP VM, 서비스 계정이 할당되어 있고 Teleport 바이너리가 설치되어 있어야 합니다.
  • 연결이 가능한지 확인하기 위해 tsh login 으로 로그인한 다음, 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 17.0.0-dev

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

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

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

Teleport Auth Service를 구성하여 GCP 프로젝트의 서비스가 Teleport 클러스터에 조인할 수 있도록 하는 특별한 동적 토큰을 설정합니다.

내부적으로, 서비스는 GCP 프로젝트에서 실행 중임을 증명하기 위해 GCP 조인 토큰에 구성된 허용 규칙과 일치하는 서명된 ID 토큰을 전송합니다.

다음 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가 자동으로 시작되도록 systemd 서비스를 생성하여 구성합니다. 지침은 your Teleport instance를 설치한 방법에 따라 다릅니다.

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

sudo systemctl enable teleport
sudo systemctl start teleport

your Teleport instance를 실행할 호스트에서 Teleport의 systemd 서비스 구성을 만들고, Teleport 서비스를 활성화한 후 Teleport를 시작합니다:

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

systemctl status teleport 로 your Teleport instance의 상태를 확인하고, journalctl -fu teleport 로 로그를 볼 수 있습니다.

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

Teleport 원문 보기