대상(Targets)

대상(Targets)

대상은 연관된 권한 집합을 가진 네트워크 서비스를 나타내는 리소스예요. 사용자(user)가 세션을 통해 Boundary를 거쳐 연결하고 상호작용할 수 있어요.

대상은 프로젝트(project) 안에서만 정의할 수 있어요. 대상은 대상과 같은 프로젝트에 속한 호스트 카탈로그(host catalogs)의 호스트 셋(host sets)에 대한 참조를 포함할 수 있어요. 대상은 대상과 같은 프로젝트에 속한 자격 증명 저장소(credential stores)의 자격 증명 라이브러리(credential libraries)에 대한 참조를 포함할 수 있어요.

대상은 세션이 네트워크 리소스에 연결하는 데 사용하는 주소를 포함할 수 있어요. 대상은 주소를 가지면서 호스트 소스를 참조할 수는 없어요.

사용자가 네트워크 리소스와 주소를 통해 또는 대상이 참조하는 어떤 호스트 셋의 호스트와 세션을 수립하려면, 그 대상에 대해 authorize-session 권한(permission)을 가진 역할(role)이 사용자에게 할당되어야 해요.

출처: HashiCorp Boundary docs

본문

대상은 연관된 권한 집합을 가진 네트워크 서비스를 나타내는 리소스예요. 사용자가 세션을 통해 Boundary를 거쳐 연결하고 상호작용할 수 있어요.

대상은 프로젝트 안에서만 정의할 수 있어요. 대상은 대상과 같은 프로젝트에 속한 호스트 카탈로그의 호스트 셋에 대한 참조를 포함할 수 있어요. 대상은 대상과 같은 프로젝트에 속한 자격 증명 저장소의 자격 증명 라이브러리에 대한 참조를 포함할 수 있어요.

대상은 세션이 네트워크 리소스에 연결하는 데 사용하는 주소를 포함할 수 있어요. 대상은 주소를 가지면서 호스트 소스를 참조할 수는 없어요.

사용자에게 대상에 대해 authorize-session 권한을 가진 역할이 할당되어야, 네트워크 리소스와 주소를 통해 또는 대상이 참조하는 어떤 호스트 셋의 호스트와 세션을 수립할 수 있어요.

속성(Attributes)

대상은 다음의 구성 가능한 속성을 가져요.

  • name — (필수) name은 대상의 프로젝트 안에서 고유해야 해요.
  • description — (선택) 식별 목적으로 대상에 대한 선택적 설명이에요.
  • address — (선택) 이 값은 네트워크 리소스 주소를 나타내며 세션을 수립할 때 사용돼요. 포트는 받지 않고 IP 주소나 DNS 이름만 받아요. Kerberos 인증을 사용하는 RDP 대상에 대상 주소를 설정한다면 대상의 호스트 이름을 사용하고 도메인을 덧붙이세요. 예: target-hostname.mydomain.com. NTLM 인증을 사용하는 RDP 대상에는 대상 주소를 대상의 IP 주소로 설정하세요.
  • default_client_port — (선택) 이 대상에 대해 투명 세션(transparent session)을 수립할 때 Client Agent가 로컬 프록시 리스너를 바인딩하는 포트예요. 이 값은 클라이언트 애플리케이션이 기본적으로 다이얼링하는 포트와 일치해야 해요. 예를 들어 SSH 클라이언트는 22번 포트를, RDP 클라이언트는 3389번 포트를, HTTPS 클라이언트는 443번 포트를 다이얼링해요. default_client_port를 의도한 클라이언트 애플리케이션에 맞게 설정하세요. 이 값을 설정하지 않으면 Client Agent는 default_port로 폴백해요. 이 폴백은 서버 포트와 클라이언트 애플리케이션의 포트가 같을 때만 동작하므로, 이에 의존해서는 안 돼요. default_client_port가 클라이언트 애플리케이션과 일치하지 않으면 애플리케이션은 프록시가 수신 대기하지 않는 포트를 다이얼링해 투명 세션이 실패해요.
  • egress_worker_filter — (선택) 어떤 egress 워커가 이 대상의 세션을 처리할 수 있는지 필터링하는 부울 표현식이에요. Egress 워커 필터는 대상에 접근하는 데 어떤 워커가 사용될지 결정해요. 멀티홉(multi-hop) 연결을 활성화하기 위해 egress 필터를 구성할 수 있어요. egress 필터를 구성하지 않으면 Boundary는 컨트롤러에 연결하기 위해 단일 워커를 사용해요.
  • ingress_worker_filter — (선택) 어떤 ingress 워커가 이 대상의 세션을 처리할 수 있는지 필터링하는 부울 표현식이에요. Ingress 워커 필터는 세션을 시작하기 위해 어떤 워커로 연결하는지 결정해요. ingress 필터를 구성하지 않으면 Boundary는 세션에 대해 전방(front line) 워커를 선택해요. 전방 워커는 제어 플레인에 직접 연결된 모든 워커예요. HCP Boundary의 경우 HCP 워커가 될 거예요.
  • session_connection_limit — (필수) 세션 동안 허용되는 누적 연결 수예요. -1 값은 제한 없음을 의미해요. 기본값은 -1이에요. 값은 0보다 크거나 정확히 -1이어야 해요. Windows 원격 데스크톱 연결(RDC) 애플리케이션은 세션을 시작할 때 여러 연결을 소비해요. RDP 대상에 session_connection_limit을 1로 설정하면 이 클라이언트를 사용하는 모든 RDP 연결이 실패하게 돼요. 연결 제한을 설정하지 않거나 2 이상의 제한을 구성해 RDP 클라이언트가 사용하는 여러 연결을 감안할 수 있어요.
  • session_max_seconds — (필수) 사용자와 대상 사이의 개별 세션 최대 지속 시간이에요. 세션이 최대 지속 시간에 도달하면 세션의 모든 연결이 닫히고 세션이 종료돼요. 기본값은 8시간(28800초)이에요. 이 값은 0보다 커야 해요. 최대 지속 시간을 지정하지 않으면 Boundary는 기본값을 사용해요.
  • with-alias-authorize-session-host-id — (선택) 대상과 동시에 별칭을 만들 때 별칭이 사용하는 authorize session host ID 플래그예요.
  • with-alias-scope-id — (선택) 대상과 동시에 별칭을 만들 때 별칭이 만들어질 스코프 ID예요. 기본 스코프는 global이에요. 별칭은 global과 프로젝트 스코프에서 만들 수 있어요. 대상의 프로젝트 스코프에서 별칭을 만들기 전에 org와 프로젝트 접미사를 만들어야 해요. 그렇지 않으면 global 스코프에서만 별칭을 만들 수 있어요. 자세한 내용은 Create a suffix for a scope를 참고하세요.
  • with-alias-value — (선택) 대상과 동시에 별칭을 만들 때 대상의 별칭으로 사용할 문자열이에요.

대상 유형(Target types)

Boundary는 RDP, SSH, TCP 대상 유형을 지원해요. RDP와 SSH 대상은 연결을 수립하려면 반드시 최소한 하나의 주입된 애플리케이션 자격 증명이 있어야 해요. TCP 대상은 어떤 주입된 애플리케이션 자격 증명도 가질 수 없어요.

다음 대상 유형 요구 사항을 주의하세요.

  • SSH를 실행하는 대상에 브로커(brokered) 자격 증명을 사용해 연결하려면: tcp 대상 유형을 사용해야 해요.
  • SSH를 실행하는 대상에 주입된 애플리케이션 자격 증명을 사용해 연결하려면: ssh 대상 유형을 사용해야 해요.
  • SSH를 실행하는 대상에 세션 녹화를 활성화하려면: 주입된 애플리케이션 자격 증명과 ssh 대상 유형을 사용해야 해요.

SSH 대상에 초기 SSH 연결 수립 이외의 목적으로 브로커 자격 증명을 구성할 수 있어요.

RDP 대상 속성

RDP 대상은 Active Directory 인증을 사용하는 Windows 환경에서 클라이언트와 최종 호스트 사이의 RDP 세션을 인증하기 위해 주입된 애플리케이션 자격 증명을 사용해요. 주입된 자격 증명은 사용자가 유효한 자격 증명을 소유하지 않은 채 RDP로 원격 호스트에 안전하게 연결할 수 있게 해줘요.

RDP 세션 녹화는 사용자 이름, 비밀번호, 도메인 자격 증명을 제공하는 주입된 애플리케이션 자격 증명이 필요해요.

Boundary는 각 RDP 대상에 대해 자체 서명 인증서를 생성해요. 사용자가 처음 대상에 연결할 때 인증서를 수동으로 수락해야 해요. 대부분의 클라이언트에서 대상별 일회성 작업이지만, 동작은 다양해요.

  • Windows 클라이언트는 세션 간에 인증서를 기억해요.
  • macOS 클라이언트는 별칭(alias) 또는 엔드포인트별로 인증서 수락이 필요해요.
  • 커스텀 수신 주소는 인증서 불일치 경고를 생성해요.

Windows 원격 데스크톱 연결 애플리케이션은 세션을 시작할 때 여러 연결을 소비해요. RDP 대상에 session_connection_limit을 1로 설정하면 이 클라이언트를 사용하는 모든 RDP 연결이 실패하게 돼요. 연결 제한을 설정하지 않거나 2 이상의 제한을 구성해 RDP 클라이언트가 사용하는 여러 연결을 감안할 수 있어요.

RDP 대상은 다음의 추가 속성을 가져요.

  • default_port — (선택) 이 대상에 설정할 기본 포트예요. 지정하지 않으면 기본 포트는 3389예요.
  • enable_session_recording — (선택) 대상에 세션 녹화(session recordings)를 활성화하려면 true로 설정해요. 세션 녹화를 활성화하면 storage_bucket_id가 필요해요.
  • storage_bucket_id — (선택) 세션 녹화에 사용할 스토리지 버킷을 지정해요. enable_session_recording을 true로 설정하면 이 속성이 필요해요.

SSH 대상 속성

SSH 대상은 클라이언트와 최종 호스트 사이의 SSH 세션을 인증하기 위해 주입된 애플리케이션 자격 증명을 사용해요. 주입된 자격 증명은 사용자가 유효한 자격 증명을 소유하지 않은 채 SSH로 원격 호스트에 안전하게 연결할 수 있게 해줘요. 주입된 자격 증명은 Vault 자격 증명 라이브러리의 사용자 이름/비밀번호 또는 사용자 이름/개인 키 자격 증명일 수도 있고, 정적 자격 증명(credentials) 또는 Vault SSH 자격 증명 라이브러리의 SSH 인증서일 수도 있어요.

SSH 대상은 세션을 만들려면 주입된 자격 증명을 구성해야 해요. 주입된 자격 증명을 구성하지 않고 SSH 대상에 대해 세션을 만들려고 하면 오류가 발생해요. 그러나 SSH 대상에는 초기 SSH 연결 수립 이외의 목적으로 브로커 자격 증명을 사용할 수 있어요.

SSH 대상은 다음의 추가 속성을 가져요.

  • default_port — (선택) 이 대상에 설정할 기본 포트예요. 지정하지 않으면 기본 포트는 22예요.
  • enable_session_recording — (선택) 대상에 세션 녹화를 활성화하려면 true로 설정해요. 세션 녹화를 활성화하면 storage_bucket_id가 필요해요.
  • storage_bucket_id — (선택) 세션 녹화에 사용할 스토리지 버킷을 지정해요. enable_session_recording을 true로 설정하면 이 속성이 필요해요.

TCP 대상 속성

TCP 대상은 다음의 추가 속성을 가져요.

  • default_port — (필수) 이 대상에 설정할 기본 포트예요.

참조되는 곳(Referenced by)

  • Credential library
  • Host set
  • Project
  • Session
  • Session recordings
  • Worker filtering

서비스 API 문서

이 리소스와 관련된 서비스는 다음과 같아요.

  • Target service