멀티홉 세션
멀티홉 세션 (Multi-hop sessions)
사설 네트워크 안에 있는 타깃에 접근하려면 보통 인바운드 방화벽 규칙을 열어야 하는데, 많은 보안 정책은 그걸 금지하죠. Boundary의 멀티홉 세션은 두 개 이상의 worker를 서로 연결해서 이 문제를 해결해요. 각 worker는 자신의 위쪽 worker에 아웃바운드로 연결되고, 그 연결이 클라이언트에서 타깃까지 이어지는 리버스 프록시 경로를 만들어 줍니다.
이런 구성 덕분에 여러 네트워크 구획(엔클레이브)에 걸쳐 있는 타깃에도 보안 수준을 낮추지 않고 접근할 수 있어요.
본문
인바운드 네트워크 규칙
멀티홉 배포에서는 모든 연결이 체인의 가장 아래쪽(downstream) worker에서 아웃바운드로 시작돼요. Boundary가 worker들 사이의 최초 연결을 맺은 다음부터는, 그 연결을 그대로 재사용해서 이후의 모든 연결을 처리합니다.
이렇게 TCP 연결이 지속되기 때문에 결과적으로 아웃바운드 연결만 있으면 돼요. 인그레스(ingress) worker와 이그레스(egress) worker 사이에 방화벽이 하나 이상 있더라도, Boundary 멀티홉 배포를 위해 추가로 인바운드 네트워크 규칙을 만들 필요가 없습니다. 이건 인프라 구성을 단순하게 해 줄 뿐 아니라, 보안 수준이 약해지거나 뚫리지 않도록 지켜 주기도 해요.
멀티홉 worker 유형
멀티홉 시나리오에서 worker는 ingress(인그레스), intermediate(중간), egress(이그레스) 세 가지 역할을 수행합니다.
Tip — 'ingress', 'intermediate', 'egress'는 각 worker가 리소스와 어떻게 상호작용하는지를 일반적으로 표현하는 말이에요. 따라서 하나의 worker가 동시에 한 개 이상의 역할을 하기도 합니다. 예를 들어 아래 다이어그램에서 intermediate worker는 타깃에 접근할 수 있으므로 egress worker이기도 해요.
각 역할과 그 역할이 필요로 하는 네트워크 접근을 다음 절에서 설명할게요.
Ingress workers
Ingress worker는 클라이언트가 접근할 수 있는 worker예요. 클라이언트가 ingress worker에 연결을 시작합니다.
타깃 연결을 프록시 하려면 ingress worker는 Boundary 컨트롤 플레인에 대한 아웃바운드 접근과, 클라이언트로부터의 인바운드 접근이 필요해요.
HCP Boundary 클러스터는 HCP 관리형 worker를 자동으로 배포하는데, 이걸 ingress worker로 쓸 수 있습니다. 인바운드 접근을 전부 금지하는 엄격한 네트워크 보안 정책이 있는 조직이라면 HCP 관리형 worker가 특히 유용해요. 이런 경우 사설 네트워크 안의 intermediate나 egress worker가 HCP 관리형 ingress worker로 리버스 프록시 연결을 맺게 됩니다.
Intermediate workers
Intermediate worker는 선택 사항이에요. 멀티홉 체인에서 ingress와 egress worker 사이에 위치하며, 체인에 intermediate worker가 한 개 이상 들어갈 수도 있습니다.
Intermediate worker는 위쪽 worker(ingress worker 또는 다른 intermediate worker)에 대한 아웃바운드 접근이 필요해요. 그리고 아래쪽 worker(egress worker 또는 다른 intermediate worker)로부터의 인바운드 접근도 필요합니다.
Egress workers
Egress worker는 타깃에 접근할 수 있는 worker예요. Egress worker가 intermediate나 ingress worker로 리버스 프록시 연결을 시작합니다.
타깃 연결을 프록시 하려면 egress worker는 위쪽 worker에 대한 아웃바운드 접근과, 목적지 호스트나 서비스에 대한 아웃바운드 접근이 필요해요.
세션 경로
Boundary가 worker들 사이의 지속적인 연결 체인을 맺고 나면, 타깃 호스트에 연결할 때 다음과 같은 경로로 프록시 됩니다:
- Boundary 클라이언트 → ingress worker
- ingress worker → (체인에 있는 모든 intermediate worker를 거쳐) → egress worker
- egress worker → 타깃
멀티홉 worker 기능
멀티홉 세션, Vault 프라이빗 액세스 같은 멀티홉 기능은 세션이나 Vault 자격 증명 요청이 한 개 이상의 worker를 거칠 때 사용돼요. 멀티홉 기능을 활성화하려면 두 개 이상의 worker를 어떤 식으로든 서로 연결해야 합니다. 멀티홉 세션 구성에 허용되는 worker 수에는 제한이 없어요.
멀티홉의 맥락에서 '업스트림(upstream)'과 '다운스트림(downstream)' 노드를 생각해 보면 이해하기 쉬워요. 컨트롤러를 멀티홉 체인의 '맨 위' 노드라고 보면, 어떤 노드에 연결된 worker는 그 노드의 '다운스트림'이에요. 그리고 어떤 노드가 연결하는 대상(worker 또는 컨트롤러)이 그 노드의 '업스트림'입니다. 예를 들어 아래 다이어그램에서 Worker 2의 업스트림은 Worker 1이고, 다운스트림은 Worker 3이에요.
멀티홉 worker는 인바운드 네트워크 트래픽이 허용되지 않는 환경에서도 배포할 수 있어요. 사설 네트워크 안의 worker는 업스트림 worker로 아웃바운드 통신을 보내고, 리버스 프록시를 만들어 세션을 맺을 수 있습니다.
멀티홉 worker와 함께 타깃 worker 필터를 구성하면, 타깃으로 가는 세션 트래픽의 ingress와 egress를 처리할 worker를 세밀하게 제어할 수 있어요. Ingress worker 필터는 세션을 시작할 때 사용할 worker를 지정하고, egress worker 필터는 타깃에 접근할 때 사용할 worker를 지정합니다.
완전한 worker 구성
전체 worker 파라미터와 완전한 구성 예시는 worker stanza 문서를 참고하세요.
더 알아보기 (Learn more)
멀티홉 세션을 구성하려면 다음 주제를 참고하세요: