신뢰할 수 있는 클러스터 아키텍처
Teleport는 컴퓨팅 인프라를 여러 클러스터로 분할할 수 있습니다. 신뢰할 수 있는 클러스터를 통해 한 클러스터, 즉 루트 클러스터의 사용자가 단일 Auth Service에서만 인증된 상태로 다른 클러스터, 즉 리프 클러스터에 등록된 리소스에 접근할 수 있습니다.
Teleport는 컴퓨팅 인프라를 여러 클러스터로 분할할 수 있습니다. 클러스터는 Teleport에 연결된 리소스의 그룹입니다. 각 클러스터는 사용자와 리소스를 위한 일련의 인증서 기관(CA)을 관리합니다.
신뢰할 수 있는 클러스터를 통해 한 클러스터, 즉 루트 클러스터의 사용자가 단일 Auth Service에서만 인증된 상태로 다른 클러스터, 즉 리프 클러스터에 등록된 리소스에 접근할 수 있습니다. 리프 클러스터는 인그레스 포트를 열지 않고 방화벽 뒤에서 실행될 수 있습니다.
신뢰할 수 있는 클러스터의 사용 사례는 다음과 같습니다:
- 관리형 서비스 제공업체(MSP)가 클라이언트의 인프라를 원격으로 관리하는 경우.
- 장치 제조업체가 현장에 배포된 컴퓨팅 어플라이언스를 원격으로 유지 관리하는 경우.
- 대규모 클라우드 소프트웨어 공급업체가 여러 데이터 센터를 관리하는 경우.
개별 노드와 프록시는 새로운 클러스터를 만들지 않고도 프록시 서비스에 역방향 터널을 만들 수 있습니다. 방화벽 뒤에 몇 개의 서버, Kubernetes 클러스터 또는 데이터베이스를 연결하기 위해 신뢰할 수 있는 클러스터를 설정할 필요는 없습니다.
다중 데이터 센터 클러스터#
아래 예시에는 세 개의 독립 클러스터가 있습니다:
- 클러스터
sso.example.com은 루트 클러스터입니다. 이 클러스터는 조직의 단일 사인온 진입점으로 사용될 수 있습니다. 자체 독립 리소스가 연결되어 있거나, 감사 로그 수집 및 단일 사인온만을 위해 사용될 수 있습니다. - 클러스터
us-east-1a와us-east-1b는 서로 다른 가용 영역에 있는 두 개의 독립 클러스터입니다.
역할 매핑#
Teleport에서 리프 클러스터는 자율적입니다. 리프 클러스터는 자체 상태, 역할 및 로컬 사용자까지 보유합니다. 리프 클러스터는 외부 사용자의 신원을 로컬 역할에 매핑하는 방법을 자율적으로 결정합니다. 우리는 이 프로세스를 역할 매핑이라고 부릅니다. 작동 방식을 이해하려면 아래 흐름을 참조하십시오:
역할 매핑과 클러스터 수준 레이블#
루트 클러스터에 대해 발급된 인증서를 사용하여 리프 클러스터에 직접 연결할 수 있다는 점을 주의해야 합니다. 리프 클러스터는 기본적으로 루트 클러스터를 신뢰하기 때문입니다. 대부분의 경우 루트와 리프 클러스터 간의 신뢰 관계가 원하는 동작을 제공합니다.
그러나 이 신뢰 관계는 클러스터 레이블을 사용하여 인가 제한을 적용하는 경우에 악용될 수도 있습니다. 리프 클러스터는 루트 클러스터의 인증서 기관을 신뢰하므로, 해당 인증서는 리프 클러스터에 대한 접근을 제한하기 위한 리프별 cluster_labels 설정을 우회하는 데 사용될 수 있습니다. 예를 들어, 다음 명령을 사용하여 리프 클러스터에 레이블을 할당한다고 가정해 봅시다:
tctl update rc/leaf --set-labels=env=prod
이 레이블은 사용자가 루트 클러스터에 의해 서명된 인증서를 가지고 있다면 리프 클러스터에 대한 직접 접근을 막을 수 없습니다.
리프 클러스터에 대한 접근을 제한하는 주요 방법으로 역할 매핑을 사용하고, 리프 클러스터 리소스의 필터링 및 가시성 제한을 위해 cluster_labels를 사용해야 합니다.
다음 단계#
아키텍처 가이드의 나머지 부분을 읽어보십시오:
