Infograb logo
백업 및 복원

이 가이드는 백업해야 하는 Teleport 배포의 구성 요소를 설명하고 백업 수행을 위한 권장 접근 방식을 제시합니다.

Teleport Enterprise Cloud가 이 설정을 자동으로 처리하므로, 귀하는 즉시 안전한 인프라 접근을 제공할 수 있습니다.

무료 체험으로 Teleport Enterprise Cloud를 시작하세요.

백업해야 할 내용

Teleport 서비스

Teleport의 프록시 서비스와 노드는 무상태입니다. 이러한 구성 요소의 경우, teleport.yaml만 백업해야 합니다.

인증 서비스는 Teleport의 두뇌이며, 백엔드에 따라 정기적으로 백업해야 합니다.

예를 들어, DynamoDB에서 실행되는 AWS 클러스터의 경우, 다음 데이터를 백업해야 합니다:

항목위치 (예시 AWS 고객)
로컬 사용자 (SSO 아님)DynamoDB
인증 기관DynamoDB
신뢰할 수 있는 클러스터DynamoDB
커넥터: SSODynamoDB / 파일 시스템
RBACDynamoDB / 파일 시스템
teleport.yaml파일 시스템
teleport.service파일 시스템
license.pem파일 시스템
TLS 키/인증서파일 시스템 / AWS Certificate Manager
감사 로그DynamoDB
세션 녹화S3

이 고객의 경우, DynamoDB 백업을 위해 AWS 최고의 관례를 사용하는 것을 권장합니다. DynamoDB가 Teleport 감사 로그에 사용되는 경우, 기록된 이벤트의 TTL은 1년입니다.

백엔드권장 백업 전략
로컬 파일 시스템/var/lib/teleport/storage 디렉토리와 tctl get all --with-secrets의 출력을 백업하십시오.
DynamoDBAWS의 백업 및 복원 가이드라인을 따르세요
etcdetcd의 재해 복구 가이드라인을 따르세요
FirestoreGCP의 자동 백업 가이드라인을 따르세요

Teleport Enterprise Cloud는 모든 인증 서비스 및 프록시 서비스 백업을 관리합니다.

Teleport 노드는 무상태이지만, 그들의 구성 파일을 복원할 수 있어야 합니다.

Teleport 리소스

Teleport는 역할, 신뢰할 수 있는 클러스터, 로컬 사용자 및 인증 커넥터를 위한 YAML 리소스를 사용합니다. 이들은 tctl 또는 웹 UI를 통해 생성될 수 있습니다.

중단 상황의 경우 리소스 구성을 복원할 수 있도록 동적 리소스 구성을 백업해야 합니다.

권장 백업 관행

Teleport를 대규모로 운영하는 경우, 팀은 Teleport를 복원할 수 있는 자동화 방법이 필요합니다. 기본적으로, 우리의 권장 접근 방식은 다음과 같습니다:

  • 백엔드를 지속적으로 백업합니다.
  • 인증 서비스 인스턴스 간에 해당 백엔드를 공유합니다.
  • 동적 리소스 구성을 분리 파일로 git 저장소에 저장합니다.
  • CI 시스템이 git 저장소에서 tctl create -f *.yaml을 실행하도록 합니다. -f 플래그는 리소스가 이미 존재하는 경우 오류를 반환하지 않도록 tctl create에 지시하므로 이 명령어는 정기적으로 실행될 수 있습니다.
  • 동적 리소스 구성을 분리 파일로 git 저장소에 저장합니다.
  • CI 시스템이 git 저장소에서 tctl create -f *.yaml을 실행하도록 합니다. -f 플래그는 리소스가 이미 존재하는 경우 오류를 반환하지 않도록 tctl create에 지시하므로 이 명령어는 정기적으로 실행될 수 있습니다.

백엔드 마이그레이션

Teleport에서 리소스 모음을 내보내려면 아래 명령어를 사용할 수 있습니다. 이 기능은 한 백엔드에서 다른 백엔드로 마이그레이션하는 데 도움이 됩니다.

tctl get all --with-secrets를 사용하면 다음 항목이 검색됩니다:

  • 사용자
  • 인증 기관
  • 신뢰할 수 있는 클러스터
  • 커넥터:
    • GitHub
    • SAML
    • OIDC
  • 역할

백엔드를 마이그레이션할 때, 인증 서비스의 data_dir/storage를 직접 백업해야 합니다.

클러스터 백업 및 복원 예제

클러스터에 로그인하여 로컬 머신에서 tctl을 사용할 수 있도록 합니다.

"tsh login"을 먼저 실행하지 않고도 인증 서비스 호스트에서 tctl을 실행할 수 있습니다.

tsh login --proxy=teleport.example.com --user=myuser

이전 클러스터에서 동적 구성 상태를 내보냅니다.

tctl get all --with-secrets > state.yaml

새 비초기화 백엔드를 준비합니다 (이전 구성 파일에서 비기본 구성 값을 포팅해야 합니다)

mkdir fresh && cat > fresh.yaml << EOFteleport: data_dir: freshEOF

새 서버를 부트스트랩합니다 (먼저 이전 서버를 종료하세요!)

sudo teleport start --config fresh.yaml --bootstrap state.yaml

다른 터미널에서 상태가 올바르게 이전되었는지 확인합니다.

tctl --config fresh.yaml get all

<당신의 상태>

--bootstrap 플래그는 인증 서비스가 첫 시작 시 백엔드 초기화를 수행할 때만 효과가 있으며, 따라서 관리되는/고가용성 맥락에서 사용해도 안전합니다.

제한 사항

--bootstrap 플래그는 신뢰할 수 있는 클러스터 핸드셰이크를 다시 트리거하지 않으므로 신뢰할 수 있는 클러스터 리소스는 수동으로 재생성해야 합니다.

기존 클러스터의 구성 파일 수정에 따른 동일한 제한 사항이 이전 클러스터의 상태에서 부트스트랩되는 새로운 클러스터에에도 적용됩니다:

  • 클러스터 이름을 변경하면 CA가 중단됩니다. 이는 확인할 수 있으며, Teleport는 시작을 거부합니다.
  • 일부 사용자 인증 메커니즘(예: WebAuthn)은 웹 UI의 공용 엔드포인트가 동일해야 합니다. 이는 Teleport에서 확인할 수 없으므로 주의해야 합니다!
  • 인증 서비스의 구성 파일에 초대 토큰이 정의된 노드는 자동으로 가입할 수 있지만, 동적으로 추가된 노드는 재초대가 필요합니다.

Teleport에서 리소스 모음을 내보내려면 아래 명령어를 사용할 수 있습니다. 이 기능은 한 백엔드에서 다른 백엔드로 마이그레이션하는 데 도움이 됩니다.

tctl get all --with-secrets를 사용하면 다음 항목이 검색됩니다:

  • 사용자
  • 인증 기관
  • 신뢰할 수 있는 클러스터
  • GitHub 커넥터
  • 역할

백엔드를 마이그레이션할 때, 인증 서비스의 data_dir/storage를 직접 백업해야 합니다.

클러스터 백업 및 복원 예제

클러스터에 로그인하여 로컬 머신에서 tctl을 사용할 수 있도록 합니다.

"tsh login"을 먼저 실행하지 않고도 인증 서비스 호스트에서 tctl을 실행할 수 있습니다.

tsh login --user=myuser --proxy=teleport.example.com

이전 클러스터에서 동적 구성 상태를 내보냅니다.

tctl get all --with-secrets > state.yaml

새 비초기화 백엔드를 준비합니다 (이전 구성 파일에서 비기본 구성 값을 포팅해야 합니다)

mkdir fresh && cat > fresh.yaml << EOFteleport: data_dir: freshEOF

새 서버를 부트스트랩합니다 (먼저 이전 서버를 종료하세요!)

sudo teleport start --config fresh.yaml --bootstrap state.yaml

다른 터미널에서 상태가 올바르게 이전되었는지 확인합니다.

tctl --config fresh.yaml get all

<당신의 상태>

--bootstrap 플래그는 인증 서비스가 첫 시작 시 백엔드 초기화를 수행할 때만 효과가 있으며, 따라서 관리되는/고가용성 맥락에서 사용해도 안전합니다.

제한 사항

--bootstrap 플래그는 신뢰할 수 있는 클러스터 핸드셰이크를 다시 트리거하지 않으므로 신뢰할 수 있는 클러스터 리소스는 수동으로 재생성해야 합니다.

기존 클러스터의 구성 파일 수정에 따른 동일한 제한 사항이 이전 클러스터의 상태에서 부트스트랩되는 새로운 클러스터에에도 적용됩니다:

  • 클러스터 이름을 변경하면 CA가 중단됩니다. 이는 확인할 수 있으며, Teleport는 시작을 거부합니다.
  • 일부 사용자 인증 메커니즘(예: WebAuthn)은 웹 UI의 공용 엔드포인트가 동일해야 합니다. 이는 Teleport에서 확인할 수 없으므로 주의해야 합니다!
  • 인증 서비스의 구성 파일에 초대 토큰이 정의된 노드는 자동으로 가입할 수 있지만, 동적으로 추가된 노드는 재초대가 필요합니다.

Teleport Enterprise Cloud에서는 백엔드 데이터가 자동으로 관리됩니다.

구성 리소스를 자기 호스팅된 Teleport 클러스터로 마이그레이션하고 싶다면, 구성 리소스를 git 저장소에 저장하고 각 리소스에 대해 정기적으로 tctl create -f를 실행하는 권장 백업 관행을 따르십시오.

이렇게 하면 저장소 백엔드와 관계없이 구성 리소스를 최신 상태로 유지할 수 있습니다.

Teleport 원문 보기