Infograb logo
셀프 호스팅에서 클라우드 호스팅 Teleport Enterprise로 마이그레이션

셀프 호스팅 Teleport Enterprise 배포에서 클라우드 호스팅

Teleport Enterprise 배포로의 마이그레이션은 확장성, 신뢰성 및 관리 용이성을 제공합니다. 이 가이드에 설명된 단계를 따름으로써, 운영에 최소한의 방해를 주면서 귀하의 Teleport 배포를 성공적으로 클라우드로 전환할 수 있습니다.

작동 방식

클라우드 호스팅 Enterprise Teleport 계정에서 Teleport는 Auth Service와 Proxy Service를 대신 관리합니다. 귀하는 동적 리소스와 Teleport 서비스를 직접 마이그레이션해야 합니다.

셀프 호스팅 Teleport Enterprise 클러스터를 클라우드 호스팅 Teleport Enterprise 클러스터로 마이그레이션하려면:

  1. 별도의 클라우드 호스팅 Teleport 계정을 설정합니다.
  2. 셀프 호스팅 클러스터의 Auth Service 백엔드에서 동적 Teleport 리소스를 검색하고 이를 클라우드 호스팅 클러스터의 Auth Service 백엔드에 적용합니다.
  3. 클라우드 호스팅 Teleport 클러스터에 연결하도록 Teleport 에이전트와 플러그인을 재구성합니다.
  4. 마이그레이션이 성공했는지 확인합니다.

전제 조건

  • 기존 Teleport Enterprise(셀프 호스팅) 클러스터.
  • tshtctl 클라이언트 도구. 이 가이드는 동적 리소스를 관리하기 위해 tctl을 사용하고 있다고 가정하지만, Teleport Terraform 제공Kubernetes 운영자와 같은 사용자 정의 스크립트도 사용할 수 있습니다.
  • 신뢰할 수 있는 클러스터가 등록되지 않은 계정. 신뢰할 수 있는 클러스터는 클라우드 호스팅 Teleport Enterprise 계정에서는 지원되지 않습니다. 신뢰할 수 있는 클러스터 리소스를 마이그레이션할 수 없습니다.

1단계/4단계. 클라우드 호스팅 Teleport Enterprise 클러스터 배포

  1. 새로운 클라우드 호스팅 Teleport Enterprise 계정을 위해 사용할 teleport.sh 하위 도메인을 결정합니다.

  2. 셀프 호스팅 Teleport Enterprise 클러스터의 라이센스 대시보드가 이미 원하는 하위 도메인을 사용하고 있다면, Teleport 지원에 연락하여 도메인을 재사용할 수 있도록 해제할 수 있습니다.

    문의하기 귀하의 계정 관리 팀에 클라우드 호스팅 Teleport Enterprise 테넌트를 설정하도록 요청합니다.

  3. 클라우드 호스팅 Teleport Enterprise 테넌트 버전보다 낮은 버전의 Teleport Enterprise 에이전트를 실행하고 있는지 확인합니다. Teleport Enterprise 에이전트의 버전을 확인하려면, 다음 tctl 명령어를 사용하여 연결된 에이전트의 인벤토리 및 버전을 나열할 수 있습니다:

    tctl inventory ls --older-than=<version>

새로운 클라우드 호스팅 Teleport Enterprise 클러스터와 셀프 호스팅 Teleport Enterprise 클러스터 모두에 연결할 수 있는지 확인합니다. 두 Teleport 클러스터 모두에 연결하고 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있어야 합니다.

  1. 셀프 호스팅 Teleport Enterprise 클러스터에 로그인합니다:

    Single Sign-On으로 로그인하기 위해 --user 대신 --auth 플래그를 사용합니다.

    tsh login --proxy=enterprise.example.com --user=myuser
    tctl status
  2. 클라우드 호스팅 Teleport Enterprise 클러스터에 로그인합니다:

    Single Sign-On으로 로그인하기 위해 --user 대신 --auth 플래그를 사용합니다.

    tsh login --proxy=example.teleport.sh --user=myuser
    tctl status
  3. 클라우드 호스팅 클러스터의 성능에 영향을 미치는 문제에 대해 정보를 유지하려면 Teleport Enterprise 상태 웹사이트를 구독합니다.

클라우드 호스팅 Teleport Enterprise 테넌트를 처음 설정할 때 표시된 복구 코드를 안전하게 저장하여 접근 권한을 잃지 않도록 해야 합니다. 귀하의 보안을 위해, Teleport 지원은 비밀번호 재설정이나 분실된 자격 증명 복구를 도와줄 수 없습니다.

2단계/4단계. Teleport 리소스 마이그레이션

셀프 호스팅 및 클라우드 호스팅 Teleport Enterprise 클러스터가 모두 실행 중임을 확인한 후, 하나의 클러스터에서 다른 클러스터로 동적 Teleport 리소스를 마이그레이션할 수 있습니다.

역할 및 로컬 사용자와 같은 동적 Teleport 리소스는 Teleport Auth Service 백엔드에 저장됩니다. 셀프 호스팅 Teleport Enterprise 클러스터는 클라우드 호스팅 클러스터와 별도의 Auth Service 백엔드를 사용하므로, 먼저 첫 번째 백엔드에서 리소스를 검색한 다음 두 번째 백엔드에 대해 이를 다시 적용해야 합니다.

동적 리소스 목록을 검토하여 마이그레이션해야 할 다른 리소스가 있는지 확인하십시오. 일반적인 동적 리소스는 다음과 같습니다:

  • windows_desktop
  • apps
  • dbs
  • login_rule

인프라 기반 코드 도구를 사용하는 경우, 이를 달성하기 위해:

  1. 기존 Teleport Enterprise(셀프 호스팅) 클러스터에 로그인하고 tctl 관리 도구를 사용하여 위의 동적 리소스 구성 컬렉션을 내보냅니다. 예시는 다음과 같습니다:

    Single Sign-On으로 로그인하기 위해 --user 대신 --auth 플래그를 사용합니다.

    tsh login --proxy=teleport.example.com --user=admin@example.com
    tctl get roles > roles.yaml
    tctl get users > users.yaml
  2. 위에서 가져온 리소스 구성 파일로 클라우드 호스팅 Teleport Enterprise 테넌트에 관리자 사용자로 로그인하고 내보낸 파일에서 리소스를 생성합니다:

    Single Sign-On으로 로그인하기 위해 --user 대신 --auth 플래그를 사용합니다.

    tsh login --proxy=example.teleport.sh --user=admin@example.com
    tctl create -f roles.yaml
    tctl create -f users.yaml

귀하의 SSO 인증 연결자에 대해, 대부분의 SSO 통합은 단일 구성된 엔드포인트에서만 작동합니다. 클라우드 호스팅 Teleport Enterprise 엔드포인트 전용으로 IdP에서 별도의 SSO 연결자를 생성하고 클라우드 호스팅 Teleport Enterprise 테넌트에 새 Auth Connector를 구성하는 것이 좋습니다.

3단계/4단계. Teleport 서비스 및 플러그인 마이그레이션

Teleport 에이전트, 머신 ID 봇 및 플러그인과 같은 서비스를 마이그레이션하려면, 관리하고 있는 다양한 서비스를 소프트웨어 목록을 작성하는 것부터 시작하십시오. 마이그레이션을 고려해야 할 다음 리소스가 있습니다:

  • Teleport 에이전트
  • 머신 ID 봇
  • 액세스 요청 플러그인
  • Teleport 이벤트 핸들러

서비스를 마이그레이션하기 전에 클라우드 호스팅 Teleport Enterprise 계정에 로그인했는지 확인하십시오.

비즈니스 요구 사항에 따라 Teleport 서비스를 한 번에 마이그레이션하거나 점진적으로 마이그레이션할 수 있습니다. Teleport를 대규모로 운영하는 경우, 에이전트 구성 마이그레이션과 관련된 작업을 수행하는 프로세스를 자동화하고 간소화할 수 있도록 구성 관리 도구를 사용하는 것이 일반적입니다.

Teleport 에이전트 마이그레이션

Teleport 에이전트를 마이그레이션하려면:

  1. 각 에이전트와 머신 ID 봇의 유효한 조인 토큰을 얻습니다. 위임된 조인 방법 사용을 권장합니다.

  2. 일시적인 토큰을 사용하는 경우, Teleport 서비스와 일치하는 적절한 토큰 유형을 지정해야 합니다. 토큰 유형에는 node, app, kube, db, windowsdesktop 및 귀하의 Teleport 클러스터에 합류하려는 서비스에 따라 다른 종류가 포함될 수 있습니다.

  3. 다음 예에서, 새로운 토큰이 15분의 TTL로 생성됩니다:

    tctl tokens add --type node,app,db --ttl 15m

    이 명령에서, 우리는 토큰에 node, app, db 유형을 지정했으며, 이는 해당 서비스가 실행되고 있는 Teleport ssh_service, db_serviceapp_service에 에이전트가 합류하도록 허용할 것입니다.

    이 토큰을 복사하여 가이드를 나중에 사용할 수 있도록 합니다.

  4. 에이전트에서 Teleport 서비스를 중지합니다(해당하는 경우).

  5. 에이전트 구성 파일에서 proxy_server 또는 auth_servers 필드를 클라우드 호스팅 Teleport Enterprise 클러스터의 주소로 업데이트합니다. 기본적으로 Linux 서버에서 구성은 /etc/teleport.yaml 디렉토리에 있습니다:

    version: v3
    teleport:
       proxy_server: example.teleport.sh:443
    

    에이전트 구성에 teleport.proxy_server 필드가 포함되어 있지 않고, 대신 teleport.auth_server 또는 teleport.auth_servers 필드가 있는 경우, 구성 파일을 version: v3로 마이그레이션하고 teleport.proxy_server를 사용하는 것이 좋습니다.

    teleport.proxy_server 필드를 사용하면 에이전트는 여러 모드가 아닌 단일 모드로 Teleport 클러스터에 연결을 시도하므로, 시간이 단축되고 문제를 해결하는 기능이 줄어듭니다.

  6. 새로 생성된 토큰으로 auth_token 또는 join_params.token_name 필드를 업데이트합니다.

    teleport:
      join_params:
        method: token
        token_name: new-token-goes-here
    
  7. Linux 서버에서 로컬 에이전트 캐시를 삭제하여 에이전트가 새로운 클라우드 호스팅 Teleport Enterprise 클러스터에 다시 합류하도록 강제합니다. 기본적으로 데이터는 /var/lib/teleport 디렉토리에 위치합니다:

    rm -rf /var/lib/teleport
  8. Linux 서버에서 각 에이전트의 Teleport 프로세스를 재시작하거나, teleport-kube-agent Helm 차트를 사용하는 경우 새로운 구성을 적용하기 위해 Kubernetes 포드를 재활용합니다. 이렇게 하면 에이전트는 클라우드 호스팅 Teleport Enterprise 클러스터에 다시 등록되고 새로운 클러스터 인증 기관의 서명된 새 인증서를 획득하게 됩니다.

머신 ID 봇 마이그레이션

일반적으로, 다음 단계를 사용하여 머신 ID 봇을 마이그레이션할 수 있습니다:

  1. 새로운 조인 토큰을 얻습니다.
  2. tbot 구성 파일에서 proxy_server 구성 필드를 새로운 Teleport 클러스터 주소 및 443 포트를 가리키도록 편집합니다.
  3. tbot을 재시작합니다.

인프라에서 머신 ID 봇을 재시작하고 구성하는 방법에 대한 자세한 내용은 전체 문서를 참조하십시오.

액세스 요청 플러그인 및 이벤트 핸들러

일반적으로, 다음 단계를 사용하여 Teleport 플러그인을 마이그레이션할 수 있습니다:

  1. 머신 ID를 사용하여 플러그인에 대한 자격 증명을 생성하는 경우, 머신 ID 봇을 새 Teleport 클러스터에 연결하도록 재구성하고 봇을 재시작합니다.

    그렇지 않은 경우, tctl로 새 Teleport 클러스터에 연결하고 수동으로 ID 파일을 생성한 후, 이를 플러그인에 제공하십시오.

  2. 플러그인 구성 파일에서 teleport.address 필드를 새로운 Teleport 클러스터의 주소(포트 443 포함)를 가리키도록 편집하여 플러그인을 재구성합니다.

  3. 플러그인을 재시작합니다.

인프라에서 실행되는 특정 플러그인에 대한 자세한 내용은 다음의 전체 문서를 참조하십시오:

4단계/4단계. 최종 사용자 접근성과 성능 검증

동적 리소스를 마이그레이션하고 서비스를 새 Teleport 클러스터에 연결하도록 재구성한 후 설정이 완료되었는지 확인하십시오.

  1. Teleport 클러스터에 모든 예상 리소스가 있는지 확인하고 상태 및 연결성을 검증하여 적절히 등록되고 연결 가능하도록 확인합니다. 웹 UI를 통해 확인하거나, tctl을 사용하여 모든 리소스의 목록을 가져와 등록 및 상태를 확인할 수 있습니다.

    예를 들어, Teleport 클러스터에 등록된 모든 노드를 나열하려면 다음 명령어를 실행할 수 있습니다:

    tctl nodes ls

    유사하게, 다른 등록된 리소스를 나열하려면 다음 명령어를 실행할 수 있습니다:

    등록된 모든 Kubernetes 클러스터 나열:

    tctl kube ls

    등록된 모든 데이터베이스 나열:

    tctl db ls

    등록된 모든 애플리케이션 나열:

    tctl apps ls

    등록된 모든 Windows 데스크탑 나열:

    tctl desktop ls
  2. 최종 사용자가 귀하의 인프라에 예상된 SSO 접근 권한을 가지고 있는지 확인하십시오.

  3. 클라우드 호스팅 Teleport Enterprise 클러스터가 사용할 수 없게 된 경우 인프라에 접근할 수 있는 비상 접근 절차를 수립하십시오.

    예를 들어, How to SSH properly의 모범 사례에 따라 제한된 키로 OpenSSH를 실행할 수 있습니다.

    시스템을 시작할 때 OpenSSH를 5분 동안 시작한 후 종료하도록 systemd를 구성하는 것을 권장합니다. 마스터 키는 안전한 금고에 보관해야 합니다. 비상 시에는 마스터 키를 얻어서 서버를 재부팅한 후 5분 이내에 OpenSSH 클라이언트를 사용하여 연결합니다.

추가 읽기

클라우드 호스팅 Teleport Enterprise 사용에 대한 자세한 정보는 클라우드 호스팅 Teleport Enterprise 계정 가입에 대한 문서를 참조하십시오.

Teleport 원문 보기