worker 스탠자
worker 스탠자
worker 스탠자는 Boundary 워커 특화 파라미터를 구성해요. 워커의 공개 주소, 업스트림 연결, 세션 녹화를 위한 로컬 저장소, 태그 같은 것들을 여기서 정해요.
본문
worker 스탠자는 Boundary 워커 특화 파라미터를 구성해요.
다음 필드들은 모든 등록 메커니즘에 적용돼요.
worker {
public_addr = "5.1.23.198"
# Local storage path required if session recording is enabled
recording_storage_path = "tmp/boundary/"
# Minimum available disk space required in the local storage path if session recording is enabled
recording_storage_minimum_available_capacity = "500MB"
# Mutually exclusive with hcp_boundary_cluster_id
initial_upstreams = [
"10.0.0.1",
"10.0.0.2",
]
tags {
type = ["prod", "webservers"]
region = ["us-east-1"]
}
# HCP Boundary only
# hcp_boundary_cluster_id = "....."
}
public_addr— 클라이언트가 프록싱을 위해 워커에 도달할 수 있는 공개 호스트 또는 IP 주소(그리고 선택적으로 포트)를 지정해요. 기본적으로는proxy용도로 표시된 리스너의 주소를 사용해요. Amazon EIP처럼 공개적으로 접근 가능한 IP를 호스트의 NIC에 직접 바인딩하지 않는 클라우드 환경에서 유용해요. 이 self-managed 워커가 업스트림 HCP-managed 워커에 연결하는 멀티홉(multi-hop) 구성에서는 이 파라미터를 생략해야 해요. 이 값은 다음 중 하나를 참조할 수 있어요: 직접 주소 문자열, 디스크의 파일(file://)에서 주소를 읽거나, 환경 변수(env://)에서 주소를 읽는 것.initial_upstreams— Boundary 클러스터에 도달하기 위한 호스트/IP 주소와 선택적으로 포트의 목록이에요. 포트는 지정하지 않으면 기본적으로:9201로 설정돼요. 이 값은 주소를 가진 직접 접근 문자열 배열일 수도 있고, 주소를 읽어올 디스크의 파일(file://)을 가리키거나, 주소를 읽어올 환경 변수(env://)를 가리킬 수도 있어요. 환경 변수나 파일을 사용할 때 그 내용은 JSON 배열로 형식화되어야 해요:["127.0.0.1", "192.168.0.1", "10.0.0.1"]. HCP Boundary에 연결하는 self-managed 워커는, HCP-managed 워커를 인그레스(ingress) 워커로 구성하지 않는 한initial_upstreams대신hcp_boundary_cluster_id파라미터를 필요로 해요. self-managed 워커를initial_upstreams와hcp_boundary_cluster_id둘 다로 구성하면 워커 구성이 실패해요.hcp_boundary_cluster_id—initial_upstreams를 지정하는 대신, worker-led 또는 controller-led 등록을 사용하는 워커가 HCP Boundary 클러스터에 연결하도록 구성하는 데 필요한 문자열이에요. 이 파라미터는 worker-led 또는 controller-led 등록 방식을 사용하는 워커와 HCP Boundary에 직접 연결된 워커에만 유효해요.ssh_known_hosts_path— 워커가 SSH 대상의 SSH 호스트 키를 검증하는 데 사용하는known_hosts파일의 경로를 지정해요. 경로가 이미 존재해야 해요. 경로를 제공하지 않으면 워커는 호스트 키 검증을 건너뛰어요.SIGHUP에서known_hosts파일을 다시 파싱하고 새 값을 사용해요.recording_storage_path— 녹화된 세션을 위한 로컬 저장소 경로예요. Boundary는 세션이 진행되는 동안 세션 녹화를 로컬 저장소에 보관해요. 세션이 완료되면 Boundary는 로컬 세션 녹화를 원격 저장소로 옮기고 로컬 복사본을 삭제해요.recording_storage_minimum_available_capacity— 바이트 단위로 측정되는 값으로 워커의 로컬 저장소 상태를 정의해요. Boundary는 이 값을recording_storage_path에서 발견한 사용 가능한 로컬 디스크 공간과 비교해 워커가 세션 녹화 작업을 수행할 수 있는지 판단해요. 지원되는 접미사는 kb, kib, mb, mib, gb, gib, tb, tib이며 대소문자를 구분하지 않아요. 예: 2GB, 2gb, 2GiB, 2gib.recording_storage_minimum_available_capacity에 따른 가능한 저장소 상태는 다음과 같아요.- Available — 워커가 임계값 이상의 저장소를 가지며, 세션 녹화가 활성화된 세션을 프록시할 수 있어요.
- Low storage — 워커의 저장소가 임계값 이하예요. 기존 세션은 중단 없이 계속되도록 허용하지만, 세션 녹화가 활성화된 새 세션을 프록시하는 것은 막아요. 워커는 새 세션을 녹화할 수도, 기존 녹화를 재생할 수도 없어요.
- Critically low storage — 워커가 저장소 임계값의 절반 이하로 떨어졌어요. 세션 녹화가 있는 기존 세션을 강제로 닫아요. 워커는 새 세션을 녹화할 수도, 기존 녹화를 재생할 수도 없어요.
- Out of storage — 워커의 로컬 디스크 공간이 없어요. 새 세션을 녹화할 수도, 기존 녹화를 재생할 수도 없어요. 워커는 복구할 수 없는 상태에 들어가 관리자가 개입해 문제를 해결해야 해요.
- Not configured — 워커에 구성된 로컬 저장소 경로가 없어요.
- Unknown — 워커가 이 기본 로컬 저장소 상태로 시작해요. 워커의 로컬 저장소 상태가 아직 알려지지 않았음을 나타내요.
tags— 값이 문자열 배열인 키-값 쌍의 맵이에요. 워커가 프록시할 수 있는 대상을 워커 태그로 필터링하는 데 가장 흔히 사용돼요.SIGHUP에서 여기 설정한 태그를 다시 파싱하고 새 값을 사용해요. 디스크의 파일(file://)이나 환경 변수(env://)를 가리키는 문자열일 수도 있어요.
완전한 구성 예시
listener "tcp" {
purpose = "proxy"
tls_disable = true
address = "127.0.0.1"
}
worker {
# Path for worker storage, assuming worker-led or controller-led registration. Must be unique across workers
auth_storage_path="/boundary/demo-worker-1"
# Local storage path required if session recording is enabled
recording_storage_path = "tmp/boundary/"
# Minimum available disk space required in the local storage path if session recording is enabled
recording_storage_minimum_available_capacity = "500MB"
# Workers typically need to reach upstreams on :9201
initial_upstreams = [
"10.0.0.1",
"10.0.0.2",
"10.0.0.3",
]
public_addr = "myhost.mycompany.com"
tags {
type = ["prod", "webservers"]
region = ["us-east-1"]
}
}
# The following KMS config is an example only
# Use a production KMS such as AWS KMS for production installs
kms "aead" {
purpose = "worker-auth-storage"
aead_type = "aes-gcm"
key = "X+IJMVT6OnsrIR6G/9OTcJSX+lM9FSPN"
key_id = "worker-auth-storage"
}