인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
TLS 라우팅 마이그레이션
TLS 라우팅 모드에서는 모든 Teleport 클라이언트 연결이 TLS로 래핑되고 하나의 Teleport Proxy Service 포트에 다중화됩니다.
TLS 라우팅은 각 프로토콜이 별도의 포트에서 제공되는 배포와 비교하여 여러 가지 이점을 제공합니다:
- 모든 클라이언트가 단일 포트를 통해 Teleport 프록시에 연결되므로 네트워크 정책 구성이 간단합니다.
- 클라이언트와 Teleport 프록시 간의 통신은 상호 TLS로 인증됩니다.
- 사용자는 SSH와 같이 내부 네트워크에서 일반적으로 차단될 수 있는 프로토콜을 터널링할 수 있습니다.
Teleport를 업그레이드하면 기본적으로 TLS 라우팅이 활성화되지 않으며 클러스터는 이전 호환성 모드로 계속 작동합니다. 이 가이드를 따라 Teleport 설치를 TLS 라우팅으로 마이그레이션하십시오.
Teleport Enterprise Cloud는 프록시 서비스의 네트워킹 구성을 관리해줍니다. 무료 체험으로 Teleport Enterprise Cloud를 시작하십시오.
필수 조건
TLS 라우팅을 지원하는 레이어 7 (HTTP/HTTPS) 로드 밸런서 및 리버스 프록시는 Teleport 13.0
부터 사용할 수 있습니다.
Teleport Cloud를 사용하는 경우, Teleport Cloud 테넌트에서 프록시 서비스가 구성된 포트 및 네트워킹 설정을 확인하십시오. 다음 명령을 실행하여 mytenant.teleport.sh
를 테넌트 주소로 바꾸십시오:
curl https://mytenant.teleport.sh/webapi/ping | jq '.proxy'
1/7단계. Teleport 업그레이드
다운로드 페이지 또는 귀하의 기업 포털에서 Teleport를 다운로드하고 표준 업그레이드 절차를 따르십시오. 루트와 리프 클러스터, 그리고 tsh
클라이언트 모두를 업그레이드해야 합니다.
2/7단계. 프록시 다중화 활성화
루트 클러스터 인증 서버의 구성을 업데이트하여 프록시 리스너 모드를 "다중화"로 설정하십시오:
auth_service:
proxy_listener_mode: multiplex
이 설정은 클라이언트(tsh
또는 리버스 터널 에이전트)가 TLS 라우팅을 사용하여 웹 프록시 포트에 연결해야 함을 나타냅니다.
호환성
다중화를 활성화해도 신뢰된 클러스터, 리버스 터널 에이전트 및 tsh/ssh 클라이언트의 기존 연결에 영향을 미치지 않습니다. 레거시 리스너가 활성화된 한(아래 7단계 참조), 모든 클라이언트는 tsh/ssh의 경우 아래 설명된 대로 다시 시작하거나 다시 로그인/재구성될 때까지 이전 호환성 모드로 계속 연결됩니다.
3/7단계. 신뢰된 클러스터 다시 연결
웹 프록시 포트에서 신뢰된 클러스터 연결을 이미 다중화하고 있는 경우(즉, web_listen_addr
및 tunnel_listen_addr
가 프록시 구성에서 동일한 포트를 사용하는 경우), 이 단계를 건너뛸 수 있습니다.
그렇지 않은 경우, 신뢰된 클러스터를 업데이트하여 web_proxy_addr
와 tunnel_addr
둘 다 루트 클러스터의 웹 프록시 주소를 가리키도록 하고 재생성하십시오:
kind: trusted_cluster
version: v2
metadata:
name: "root"
spec:
enabled: true
web_proxy_addr: root.example.com:443
tunnel_addr: root.example.com:443
...
4/7단계. 리버스 터널 에이전트 다시 연결
리버스 터널을 통해 클러스터의 프록시에 연결되는 모든 SSH, Kubernetes, 애플리케이션 및 데이터베이스 에이전트를 재시작하십시오.
이렇게 하면 TLS 라우팅 모드에서 클러스터에 다시 연결됩니다.
5/7단계. tsh로 재로그인
tsh logout
명령을 실행한 후, 클러스터에 다시 로그인하려면 tsh login
명령을 사용하여 tsh
가 TLS 라우팅 모드를 사용하도록 설정합니다.
6/7단계. OpenSSH 구성 업데이트
tsh config
에서 생성된 구성을 사용하여 Teleport 클러스터 내의 노드에 연결하기 위해 OpenSSH 클라이언트 ssh
를 사용하는 경우, 구성을 다시 생성해야 합니다.
tsh config
명령을 다시 실행하여 SSH 라우팅 설정과 호환되는 SSH 구성을 생성합니다. 참조용으로 OpenSSH 가이드 문서를 확인하세요.
7/7단계. 레거시 리스너 비활성화
이 지점에서 모든 루트 클러스터의 클라이언트는 TLS 라우팅 모드에서 웹 프록시 포트에 연결합니다. 마지막 단계는 Teleport 프록시가 기본적으로 SSH, 역 터널, Kubernetes 및 데이터베이스 클라이언트를 위한 레거시 리스너를 생성하지 않도록 지시하는 것입니다.
프록시 구성에 version: v2
를 추가하고 web_listen_addr
을 제외한 모든 수신 주소를 제거합니다:
version: v2
proxy_service:
enabled: "yes"
web_listen_addr: 0.0.0.0:443
...
구성 버전 v2
는 프록시 서비스 구성에서 명시적으로 설정되지 않는 한 다른 리스너가 생성되지 않도록 방지합니다.
Rollback
레거시 분리 리스너 모드로 돌아가려면 다음 단계를 수행합니다:
- 프록시 구성에서
version: v1
을 설정하고 프록시를 재시작하여 레거시 리스너를 생성하도록 합니다. - 클라이언트가 레거시 리스너에 연결하도록 인증 서비스 구성에서
proxy_listener_mode: separate
를 설정합니다. - 위에서 설명한 대로 모든 클라이언트(신뢰할 수 있는 클러스터, 역 터널 에이전트,
tsh
)를 재연결합니다. - OpenSSH 클라이언트를 사용하는 경우,
tsh config
명령을 사용하여 SSH 구성을 다시 생성합니다.
Next steps
- TLS 라우팅이 어떻게 작동하는지 알아보세요.