워커(Workers)
워커(Workers)
워커는 주로 Boundary 세션의 네트워크 프록시로 쓰여서 프라이빗 대상에 접근할 수 있게 해줘요. 프라이빗 네트워크를 공개에 노출하거나 사용자가 프라이빗 네트워크 전체에 접근하도록 두는 대신, 워커가 사용자와 대상 사이에 직접 네트워크 터널을 만들어 줍니다.
본문
Boundary 아키텍처
Boundary의 아키텍처는 세 가지 핵심 구성요소로 이루어져 있어요:
- 컨트롤 플레인(Control plane) - 컨트롤러로 구성됨
- 데이터 플레인(Data plane) - 워커로 구성됨
- 클라이언트(Client) - 사용자 장치에 설치됨
컨트롤러는 사용자가 클라이언트로 인증하는 대상이며, Boundary의 리소스와 권한을 담고 있어요. 또한 컨트롤러는 데이터베이스, KMS(Key Management System), Vault, 신원 공급자, 플러그인 같은 외부 구성요소와도 통신해요.
워커 기능
필요에 따라 다양한 방식으로 워커를 사용할 수 있어요:
세션 프록시(Session proxying)
워커로 공용 또는 프라이빗 네트워크에 있는 클라이언트와 대상 사이의 세션을 프록시할 수 있어요. 또한 멀티홉 세션에서 워커를 구성해 프록시 체인을 형성해 보호된 네트워크 더 깊숙이 도달할 수 있죠.
워커 인증(Worker authentication)
워커는 컨트롤 플레인에 직접 인증하거나, 업스트림 워커를 통해 컨트롤 플레인에 인증할 수 있어요. 업스트림 워커를 통한 인증을 "멀티홉 워커 인증(multi-hop worker authentication)"이라고도 해요.
컨트롤러 프록시(Controller proxy)
컨트롤러가 프라이빗 서비스에 접근해야 하는데 네트워크로 닿을 수 없는 상황에서 워커가 통신을 위한 프록시 역할을 할 수 있어요. 현재는 컨트롤러가 프라이빗 Vault 환경에 연결할 때 지원됩니다.
프로토콜 복호화(Protocol decryption)
워커는 자격 증명 주입과 세션 녹화를 위해 SSH 프로토콜 복호화를 수행할 수 있어요. 세션 녹화의 경우 워커는 녹화된 세션 내용을 스토리지 버킷에 직접 기록하기도 합니다.
멀티홉 세션(Multi-hop sessions)
대부분의 조직은 프라이빗 네트워크를 노출하지 않고 인프라에 접근을 제공하고 싶어 해요. 또한 많은 조직은 대상 시스템에 도달하기 위해 인바운드 트래픽이 여러 네트워크 인클레이브(enclave)를 거쳐 라우팅되어야 하는 복잡한 네트워크 토폴로지를 갖고 있죠.
멀티홉 세션은 여러 네트워크에 걸쳐 워커 두 개 이상을 연결해 사용자와 대상 사이에 리버스 프록시 연결을 형성하게 해줘요. 엄격한 아웃바운드 전용 정책을 가진 복잡한 네트워크에서도 가능하죠.
태그(Tags)
멀티 데이터센터와 멀티 클라우드 운영 모델에서는 컨트롤러, 워커, 대상을 적절한 지역이나 네트워크로 나누는 패턴이 자주 필요해요. 지연을 줄이거나 보안 표준을 준수하기 위해서죠. 워커에 태그를 할당하면 Boundary가 태그를 필터링해 세션에 사용할 적절한 워커를 찾을 수 있어요. 예를 들어 Boundary가 "Network A"의 대상에 연결하려고 "A" 태그가 붙은 워커로 필터링할 수 있답니다.
상태와 건강(Status and health)
Boundary 워커는 정기적으로 컨트롤러에 상태를 보고해요. 워커가 마지막으로 상태를 보고한 시각을 관리 UI에서는 Last Seen으로, CLI에서는 Last Status Time으로 볼 수 있어요. 워커가 최근에 상태를 보고하지 않았다면 건강하지 않은 워커일 가능성이 있어요.
워커의 건강 상태를 확인하려면 워커 상태 엔드포인트를 조회하면 돼요. 엔드포인트는 워커 상태, 활성 세션 수, 워커의 연결 상태를 반환합니다.
워커 튜토리얼
자격 증명 주입 구성을 연습하려면 HCP private Vault 자격 증명 주입 튜토리얼을, 워커 인지 대상 구성과 워커 필터 적용을 연습하려면 워커 인지 대상(Worker-aware targets) 튜토리얼을 참고하세요.
더 알아보기 (Learn more)
다음 주제를 참고하세요.
- Boundary의 TLS
- 자격 증명 주입(Credential injection)
- 세션 녹화(Session recording)
- 워커를 통한 트래픽 라우팅(Route traffic through a worker)
- Boundary 상태 엔드포인트
- 멀티홉 세션(Multi-hop sessions)
- 리소스 필터링 및 나열