이 가이드는 백업해야 하는 Teleport 배포의 구성 요소를 설명하고 백업 수행을 위한 권장 접근 방식을 제시합니다.
Teleport Enterprise Cloud가 이 설정을 자동으로 처리하므로, 귀하는 즉시 안전한 인프라 접근을 제공할 수 있습니다.
무료 체험으로 Teleport Enterprise Cloud를 시작하세요.
백업해야 할 내용
Teleport 서비스
Teleport의 프록시 서비스와 노드는 무상태입니다. 이러한 구성 요소의 경우,
teleport.yaml
만 백업해야 합니다.
인증 서비스는 Teleport의 두뇌이며, 백엔드에 따라 정기적으로 백업해야 합니다.
예를 들어, DynamoDB에서 실행되는 AWS 클러스터의 경우, 다음 데이터를 백업해야 합니다:
항목 | 위치 (예시 AWS 고객) |
---|---|
로컬 사용자 (SSO 아님) | DynamoDB |
인증 기관 | DynamoDB |
신뢰할 수 있는 클러스터 | DynamoDB |
커넥터: SSO | DynamoDB / 파일 시스템 |
RBAC | DynamoDB / 파일 시스템 |
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 의 출력을 백업하십시오. |
DynamoDB | AWS의 백업 및 복원 가이드라인을 따르세요 |
etcd | etcd의 재해 복구 가이드라인을 따르세요 |
Firestore | GCP의 자동 백업 가이드라인을 따르세요 |
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
를 실행하는 권장 백업 관행을 따르십시오.
이렇게 하면 저장소 백엔드와 관계없이 구성 리소스를 최신 상태로 유지할 수 있습니다.