웹 TCP 대상 생성하기

웹 TCP 대상 생성하기

TCP 대상은 Boundary가 접근할 수 있는 어떤 서비스에든 연결할 수 있는 범용적인 방법을 제공해요. HTTP와 HTTPS 서비스도 그중 하나죠.

출처: HashiCorp Boundary docs

본문

TCP 대상을 사용해 HTTP 리다이렉트에 의존하는 웹 애플리케이션(SSO 흐름이나 OAuth 기반 ID 공급자 같은)에 접근한다면, 인증 흐름이 실패할 수 있어요. Boundary가 초기 TCP 연결을 프록시하지만, 리다이렉트가 클라이언트에게 새 호스트에 직접 연결하라고 지시하거든요. 그 호스트가 Boundary 프록시 밖에 있으면 연결이 실패해요.

아래 예시들은 단순함을 위해 직접 대상 주소(direct target address)를 사용하지만, HashiCorp는 확장된 프로덕션 배포에서는 호스트 카탈로그와 호스트 셋을 구성할 것을 권장해요.

웹 서비스에 연결할 TCP 대상을 만들려면 다음 단계를 따르세요. 이 예시는 HTTPS 서비스를 가정해요.

Admin UI로 생성:

  • Boundary에 로그인해요.
  • 조직을 선택하고, 대상을 만들 프로젝트를 선택해요.
  • Project Actions 아래에서 Targets를 선택해요.
  • New Target을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요.
    • Description — (선택) 식별을 위한 대상 설명
    • Type — (필수) TCP 대상을 만들려면 TCP를 선택해요.
    • Target Address — (선택) 호스트 카탈로그와 호스트 셋을 사용하지 않는다면, 대상 주소를 입력해 대상을 단일 주소에 매핑할 수 있어요. 유효한 IP 주소나 DNS 이름이어야 해요.
    • Default Port — (필수) 연결할 기본 포트. 예: 443
    • Aliases — (선택) 대상의 유일한 식별자로, CLI나 투명 세션으로 대상에 더 쉽게 연결하게 해줘요. 앨리어스를 만들려면 다음 필드를 작성하고 Add를 클릭해요:
      • Select scope — 앨리어스를 만들 스코프를 선택해요. 대상의 프로젝트 스코프에 앨리어스를 만들려면 먼저 org와 project suffix를 만들어야 해요. 그렇지 않으면 글로벌 스코프에만 앨리어스를 만들 수 있어요. 스코프 suffix 생성 문서를 참고하세요.
      • Alias value — 대상을 나타내는 앨리어스로 사용할 문자열을 입력해요. 앨리어스 값은 호스트 이름이나 DNS 형태의 문자열일 수 있어요.
  • Save를 클릭해요.

CLI로 생성:

  • Boundary에 로그인해요.
  • BOUNDARY_PROJECT_ID 환경 변수를 설정하거나, 다음 단계에서 스코프 ID(예: p_1234567890)를 제공해요.
  • 직접 대상 주소 10.0.0.30, 기본 연결 포트 443을 가진 test-example-web-server라는 TCP 대상을 만들려면 다음 명령을 사용해요:
$ boundary targets create tcp \
  -scope-id $BOUNDARY_PROJECT_ID \
  -name "test-example-web-server" \
  -with-alias-value "test.example.com" \
  -address "10.0.0.30" \
  -default-port 443

대상을 만들 때는 scope-id 필드를 반드시 제공해야 해요. TCP 대상을 만들 때 사용할 수 있는 속성은 다음과 같아요:

  • -description=<string> — 식별용 대상 설명(선택)
  • -name=<string> — 식별용 대상 이름(선택)
  • -scope-id=<string> — 대상을 만들 스코프. 기본값은 global이에요. BOUNDARY_SCOPE_ID 환경 변수로도 스코프를 지정할 수 있어요.
  • -address=<string> — 대상이 연결할 유효한 네트워크 주소(선택). 호스트 소스와 함께 사용할 수 없어요.
  • -default-client-port=<string> — 이 대상에 투명 세션을 설정할 때 Client Agent가 로컬 프록시 리스너를 바인딩하는 포트. 클라이언트 애플리케이션이 기본적으로 다이얼하는 포트와 일치하도록 설정해야 해요. 예를 들어 SSH 클라이언트는 22, RDP 클라이언트는 3389, HTTPS 클라이언트는 443을 다이얼해요. 이 값을 설정하지 않으면 Client Agent는 -default-port로 폴백해요. -default-client-port가 클라이언트 애플리케이션과 일치하지 않으면 투명 세션이 실패해요.
  • -default-port=<string> — 설정된 경우 대상의 기본 포트
  • -egress-worker-filter=<string> — 대상의 세션을 처리할 수 있는 egress 워커를 필터링하는 부울 표현식
  • -ingress-worker-filter=<string> — 대상의 세션을 처리할 수 있는 ingress 워커를 필터링하는 부울 표현식
  • -session-connection-limit=<string> — 세션에서 허용되는 최대 연결 수. -1이면 무제한이에요.
  • -session-max-seconds=<string> — 모든 연결을 포함한 세션의 최대 수명. 정수 초 또는 지속 시간 문자열로 지정할 수 있어요. 최대 기간을 지정하지 않으면 Boundary는 기본값인 8시간(28800초)을 사용해요.
  • -with-alias-authorize-session-host-id=<string> — 앨리어스가 대상의 세션을 승인할 때 사용하는 호스트 ID
  • -with-alias-scope-id=<string> — 대상 생성 시 앨리어스를 만들 스코프 ID. 기본값은 global이에요. 앨리어스는 글로벌과 프로젝트 스코프에 만들 수 있어요. 대상의 프로젝트 스코프에 앨리어스를 만들려면 먼저 org와 project suffix를 만들어야 해요. 그렇지 않으면 글로벌 스코프에만 앨리어스를 만들 수 있어요. 스코프 suffix 생성 문서를 참고하세요.
  • -with-alias-value=<string> — 대상을 나타내는 앨리어스 값. 이 파라미터로 앨리어스와 대상을 동시에 만들고 서로 연결할 수 있어요. 프로젝트 스코프에 있는 대상의 앨리어스를 만들 때는 alias.projectsuffix.orgsuffix 형식으로 org와 project suffix를 값에 붙여야 해요. 값은 DNS 네이밍 규칙을 따라야 해요.

Terraform으로 생성:

Boundary Terraform provider로 대상과 대상 앨리어스를 정의할 수 있어요:

resource "boundary_target" "example" {
  name         = "test-example-web-server"
  description  = "Apache web server for test.example.com"
  type         = "tcp"
  address      = "10.0.0.30"
  default_port = "443"
  scope_id     = boundary_scope.project.id
}

resource "boundary_alias_target" "test.example.com" {
  name                      = "test-example-web-server"
  description               = "Target alias for test-example-web-server"
  scope_id                  = "global"
  value                     = "test.example.com"
  destination_id            = boundary_target.example.id
}

브로커링된 애플리케이션 크레덴셜 구성하기

최종 사용자가 대상에 연결할 수 있도록 브로커링된 애플리케이션 크레덴셜(brokered application credential)을 구성할 수 있어요. 브로커링된 크레덴셜은 최종 사용자에게 노출되어, 대상에 수동으로 또는 connect helpers를 사용해 인증할 수 있게 해요.

TCP 대상에 크레덴셜을 구성하는 방법:

  • Static 크레덴셜(username_password 또는 ssh_private_key)
  • Vault generic credential library

크레덴셜 브로커링으로 대상 구성하는 방법은 Configure targets with credential brokering 문서를 참고하세요.

예시(Example)

다음 시나리오는 다음을 가정해요:

  • 사설 네트워크에 웹 서버가 배포되어 있음(Nginx, Apache, IIS 등)
  • 네트워크에 Boundary 워커가 배포되고 Boundary 컨트롤 플레인에 등록되어 있음
  • 애플리케이션 도메인에 등록된 DNS A 레코드가 있고 네트워크의 인증된 사용자에게 해석 가능함
  • 웹 서버에 SSL 서명 인증서가 설치되어 있고, 웹 대상에 연결할 클라이언트에게 루트 인증서를 배포했음. 클라이언트는 인증서를 키체인에 추가해 인증서를 생성한 CA를 신뢰해야 해요.
  • 사용자가 수동으로 또는 OIDC, LDAP 같은 인증 방법으로 Boundary에 온보딩되어 있음
  • 웹 대상을 설정할 org와 project를 만들었음. 이 예시는 org를 dev-projects, project를 web-infrastructure라고 부르는데, UI/CLI/Terraform 워크플로우에 따라 ID(예: o_c2Ah7bPMj5, p_UXVxIgpZ8U)로 참조할 수도 있어요.

이 예시는 또한 다음 권한을 가진 접근 모델을 설정한다고 가정해요:

  • 인증되지 않은 사용자는 주소 범위에 접근할 수 없음
  • 인증됐지만 권한이 없는 사용자는 웹 대상을 볼 수 없음
  • 인증되고 권한이 있는 사용자는 웹 대상에 세션을 시작할 수 있음

이 접근 모델은 Boundary를 통해 웹 대상에 연결된 사용자가 주소 범위에 접근할 수 있게 하지만, 사용자에게 대상 접근 권한을 부여하지 않으면 대상에 연결할 수는 없어요.

이런 전제 조건이 갖춰지면, 웹 대상 접근을 인증된 사용자로 제한하도록 권한과 대상을 설정할 수 있어요. 이 예시는 단일 사용자에게 접근을 부여하지만, 실제로는 인증된 사용자 그룹을 사용하는 것이 더 현실적이에요.

사용자와 권한 구성

서로 다른 접근 프로토콜을 모델링하려면 권한 있는(authorized) 사용자와 권한 없는(unauthorized) 사용자를 만들어야 해요. 이들은 대상에 호스팅된 웹 애플리케이션에 접근해야 하는 사용자와 접근하면 안 되는 사용자를 나타내요.

권한 없는 사용자와 권한 있는 사용자 만들기(Admin UI):

  • Boundary에 로그인해요.
  • 글로벌 스코프에 있는지 확인해요. 왼쪽 사이드바가 Global Level에 있음을 확인해 줄 거예요.
  • Global IAM 아래에서 Users를 선택해요.
  • 권한 없는 사용자를 만들어요: New User를 클릭하고 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 사용자를 unauthorized라고 불러요.
    • Description — (선택) 식별을 위한 설명
  • 권한 있는 사용자를 만들어요: Users 페이지로 돌아가 New User를 클릭하고 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 사용자를 authorized라고 불러요.
    • Description — (선택) 식별을 위한 설명
    • Save를 클릭해요.

글로벌 스코프에서 권한 없는 사용자에게 최소 권한 할당(Admin UI):

  • 글로벌 스코프에 있는지 확인해요.
  • 사이드바에서 Roles를 클릭하고 New Role을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 역할을 unauthorized_global_role이라고 불러요.
    • Description — (선택) 식별을 위한 설명
  • Save를 클릭해요.
  • 새 역할의 Principals 탭을 선택하고 Add Principals를 클릭해요.
  • 글로벌 스코프에서 권한 없는 사용자 옆의 박스를 선택하고 Add Principals를 클릭해요.
  • 역할의 Grants 탭을 선택해요.
  • New Grant 필드에 grant 문자열 type=auth-token;ids=*;actions=read:self를 입력하고 Add를 클릭해요.
  • New Grant 필드에 또 다른 grant type=user;actions=list-resolvable-aliases;ids=*를 추가하고 Add를 클릭해요.
  • Save를 클릭해요.

위 예시에는 두 개의 grant 문자열이 있어요:

  • "type=auth-token;ids=*;actions=read:self" — 이 grant는 투명 세션 워크플로우를 사용한다면 사용자가 Client Agent에 인증할 수 있게 해줘요.
  • "type=user;actions=list-resolvable-aliases;ids=*" — 이 grant는 투명 세션 워크플로우에서 사용자가 앨리어스를 읽을 수 있게 해줘요.

글로벌 스코프에서 권한 있는 사용자에게 읽기 권한 할당(Admin UI):

  • 글로벌 스코프에 있는지 확인해요.
  • 사이드바에서 Roles를 클릭하고 New Role을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 역할을 authorized_global_role이라고 불러요.
    • Description — (선택) 식별을 위한 설명
  • Save를 클릭해요.
  • 새 역할의 Principals 탭을 선택하고 Add Principals를 클릭해요.
  • 글로벌 스코프에서 권한 있는 사용자 옆의 박스를 선택하고 Add Principals를 클릭해요.
  • 역할의 Grants 탭을 선택해요.
  • New Grant 필드에 grant 문자열 ids=*;type=*;actions=read를 입력하고 Add를 클릭해요.
  • New Grant 필드에 또 다른 grant type=auth-token;ids=*;actions=read:self를 추가하고 Add를 클릭해요.
  • New Grant 필드에 또 다른 grant type=user;actions=list-resolvable-aliases;ids=*를 추가하고 Add를 클릭해요.
  • Save를 클릭해요.

grant 문자열 "ids=*;type=*;actions=read"는 사용자가 글로벌 스코프의 모든 자원을 읽을 수 있게 해줘요.

org 스코프에서 권한 있는 사용자에게 전체 접근 권한 할당(Admin UI):

  • 페이지 오른쪽 위의 Back to Global을 클릭해요.
  • Orgs 페이지에서 org 이름(예: dev-projects 또는 ID o_c2Ah7bPMj5)을 선택해요.
  • 사이드바에서 Roles를 클릭하고 New Role을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 역할을 authorized_org_role이라고 불러요.
    • Description — (선택) 식별을 위한 설명
  • Save를 클릭해요.
  • 새 역할의 Principals 탭을 선택하고 Add Principals를 클릭해요.
  • 글로벌 스코프에서 권한 있는 사용자 옆의 박스를 선택하고 Add Principals를 클릭해요.
  • 역할의 Grants 탭을 선택해요.
  • New Grant 필드에 grant 문자열 ids=*;type=*;actions=*를 입력하고 Add를 클릭해요.
  • Save를 클릭해요.

grant 문자열 "ids=*;type=*;actions=*"는 사용자가 스코프에서 모든 작업을 수행할 수 있게 해줘요.

project 스코프에서 권한 있는 사용자에게 전체 접근 권한 할당(Admin UI):

  • 왼쪽 사이드바의 Org Level 아래에서 Projects를 선택해요.
  • Projects 페이지에서 project 이름(예: web-infrastructure 또는 ID p_UXVxIgpZ8U)을 선택해요.
  • 사이드바에서 Roles를 클릭하고 New Role을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요. 이 예시에서는 역할을 authorized_project_role이라고 불러요.
    • Description — (선택) 식별을 위한 설명
  • Save를 클릭해요.
  • 새 역할의 Principals 탭을 선택하고 Add Principals를 클릭해요.
  • 글로벌 스코프에서 권한 있는 사용자 옆의 박스를 선택하고 Add Principals를 클릭해요.
  • 역할의 Grants 탭을 선택해요.
  • New Grant 필드에 grant 문자열 ids=*;type=*;actions=*를 입력하고 Add를 클릭해요.
  • Save를 클릭해요.

권한 없는 사용자와 권한 있는 사용자 만들기(CLI):

권한 없는 사용자를 만들고 그 권한을 제한해요.

  • Boundary에 로그인해요.
  • BOUNDARY_PROJECT_ID 환경 변수를 설정하거나, 다음 단계에서 스코프 ID(예: p_1234567890)를 제공해요.
  • 권한 없는 사용자를 만들어요:
$ boundary users create -scope-id $BOUNDARY_PROJECT_ID -name "unauthorized"
User information:
  Created Time:        Thu, 15 Jan 2026 19:25:48 MST
  ID:                  u_2pA1bPrvjl
  Name:                unauthorized
  Updated Time:        Thu, 15 Jan 2026 19:25:48 MST
  Version:             1
  Scope:
    ID:                o_c2Ah7bPMj5
    Name:
    Parent Scope ID:   global
    Type:              org
  Authorized Actions:
    no-op
    read
    update
    delete
    add-accounts
    set-accounts
    remove-accounts
    list-resolvable-aliases
  • 사용자 ID(예: u_2pA1bPrvjl)를 복사해요.
  • 권한 없는 사용자를 위한 unauthorized_global_role이라는 새 역할을 만들어요:
$ boundary roles create -scope-id global -name "unauthorized_global_role"
Role information:
  Created Time:        Thu, 15 Jan 2026 19:22:38 MST
  ID:                  r_jOyos6VIZR
  Name:                unauthorized_global_role
  Updated Time:        Thu, 15 Jan 2026 19:22:38 MST
  Version:             1
  Scope:
    ID:                global
    Name:              global
    Type:              global
  Authorized Actions:
    add-grant-scopes
    update
    set-grant-scopes
    no-op
    add-principals
    delete
    remove-principals
    remove-grant-scopes
    read
    set-principals
    add-grants
    set-grants
    remove-grants
  Grant Scope IDs:
    ID:             this
  • 역할 ID(예: r_jOyos6VIZR)를 복사해요.
  • 역할에 권한을 추가해요. 명령에 자신의 역할 ID를 사용하세요:
$ boundary roles add-grants -id r_jOyos6VIZR -grant "type=auth-token;ids=*;actions=read:self" -grant "type=user;actions=list-resolvable-aliases;ids=*"

위 예시에는 두 개의 grant 문자열이 있어요:

  • "type=auth-token;ids=*;actions=read:self" — 이 grant는 투명 세션 워크플로우를 사용한다면 사용자가 Client Agent에 인증할 수 있게 해줘요.

  • "type=user;actions=list-resolvable-aliases;ids=*" — 이 grant는 투명 세션 워크플로우에서 사용자가 앨리어스를 읽을 수 있게 해줘요.

  • 권한 없는 사용자를 권한 없는 역할의 principal로 할당해요. 예시 역할 ID와 사용자 ID를 자신의 것으로 바꾸세요. 여기서 그룹을 사용할 수도 있다는 점에 유의하세요:

$ boundary roles add-principals -id r_jOyos6VIZR -principal u_2pA1bPrvjl

권한 있는 사용자 만들고 글로벌 스코프에서 읽기 권한 부여(CLI):

  • 권한 있는 사용자를 만들어요:
$ boundary users create -scope-id $BOUNDARY_PROJECT_ID -name "authorized"
  • 사용자 ID(예: u_JogL5yWuKP)를 복사해요.
  • 권한 있는 사용자를 위한 글로벌 스코프의 새 역할을 만들어요:
$ boundary roles create -scope-id global -name "authorized_global_role"
  • 역할 ID(예: r_6MuGPBkg8d)를 복사해요.
  • 역할에 권한을 추가해요. 명령에 자신의 역할 ID를 사용하세요:
$ boundary roles add-grants -id r_6MuGPBkg8d -grant "ids=*;type=*;actions=read" -grant "type=auth-token;ids=*;actions=read:self" -grant "type=user;actions=list-resolvable-aliases;ids=*"

grant 문자열 "ids=*;type=*;actions=read"는 사용자가 글로벌 스코프의 모든 자원을 읽을 수 있게 해줘요.

org와 project 스코프에서 권한 있는 사용자에게 전체 접근 부여(CLI):

전체 접근 권한이 있는 authorized_org_role과 authorized_project_role을 만들어요.

  • 권한 있는 사용자를 위한 org 스코프의 authorized_org_role이라는 새 역할을 만들어요. 자신의 org ID(예: o_c2Ah7bPMj5)를 제공하세요:
$ boundary roles create -scope-id o_c2Ah7bPMj5 -name "authorized_org_role"
  • 역할 ID(예: r_92hVjrgcEN)를 복사해요.
  • 역할에 전체 접근 권한을 추가해요. 명령에 자신의 역할 ID를 사용하세요:
$ boundary roles add-grants -id r_92hVjrgcEN -grant "ids=*;type=*;actions=*"

grant 문자열 "ids=*;type=*;actions=*"는 사용자가 스코프에서 모든 작업을 수행할 수 있게 해줘요.

  • 권한 있는 사용자를 authorized_org_role의 principal로 할당해요. 예시 역할 ID와 사용자 ID를 자신의 것으로 바꾸세요:
$ boundary roles add-principals -id r_92hVjrgcEN -principal u_JogL5yWuKP
  • 이 과정을 반복해 권한 있는 사용자를 위한 전체 접근 권한 "ids=*;type=*;actions=*"을 가진 authorized_project_role을 만들어요.

Terraform으로 사용자와 권한 만들기:

Boundary Terraform provider로 Boundary 자원을 정의할 수 있어요.

권한 없는 사용자 만들기:

resource "boundary_account_password" "unauthorized_user" {
  auth_method_id = boundary_auth_method.password.id
  login_name     = "unauthorized"
  password       = "unauthorized"
}

권한 없는 사용자에게 최소 권한 할당:

resource "boundary_role" "unauthorized" {
  description = "Unauthorized user read-auth-token"
  grant_strings = [
    "type=auth-token;ids=*;actions=read:self",
    "type=user;actions=list-resolvable-aliases;ids=*",
  ]
  name          = "unauthorized_global_role"
  principal_ids = [boundary_user.unauthorized_user.id]
  scope_id      = "global"
}

위 예시에는 두 개의 grant 문자열이 있어요:

  • "type=auth-token;ids=*;actions=read:self" — 이 grant는 투명 세션 워크플로우를 사용한다면 사용자가 Client Agent에 인증할 수 있게 해줘요.
  • "type=user;actions=list-resolvable-aliases;ids=*" — 이 grant는 투명 세션 워크플로우에서 사용자가 앨리어스를 읽을 수 있게 해줘요.

권한 있는 사용자 만들기:

resource "boundary_account_password" "authorized_user" {
  auth_method_id = boundary_auth_method.password.id
  login_name     = "authorized"
  password       = "authorized"
}

글로벌 스코프에서 권한 있는 사용자에게 읽기 권한을, org와 project 스코프에서 전체 접근 권한을 할당:

resource "boundary_role" "authorized_global_role" {
  name          = "authorized_global_role"
  description   = "Authorized Global Role"
  scope_id      = "global"
  principal_ids = [boundary_user.authorized_user.id]
  grant_strings = [
    "ids=*;type=*;actions=read",
    "type=auth-token;ids=*;actions=read:self",
    "type=user;actions=list-resolvable-aliases;ids=*",
  ]
}

resource "boundary_role" "authorized_org_role" {
  name          = "authorized_org_role"
  description   = "Authorized Org Role"
  scope_id      = boundary_scope.org.id
  principal_ids = [boundary_user.authorized_user.id]
  grant_strings = ["ids=*;type=*;actions=*"]
}

resource "boundary_role" "authorized_project_role" {
  name          = "authorized_project_role"
  description   = "Authorized Project Role"
  scope_id      = boundary_scope.project.id
  principal_ids = [boundary_user.authorized_user.id]
  grant_strings = ["ids=*;type=*;actions=*"]
}

위 예시에는 두 개의 새 grant 문자열이 있어요:

  • "ids=*;type=*;actions=read" — 이 grant는 사용자가 할당된 스코프의 모든 자원을 읽을 수 있게 해줘요.
  • "ids=*;type=*;actions=*" — 이 grant는 사용자가 스코프에서 모든 작업을 수행할 수 있게 해줘요. 본질적으로 그 스코프에서 관리자 권한을 부여하죠.

웹 대상 구성

테스트 사용자가 생겼으니 웹 대상을 설정해요. 이 예시는 웹 대상의 호스트에 포트 443에서 실행되는 샘플 웹 애플리케이션이 있고, Boundary를 통해 연결했을 때 권한 있는 사용자가 접근할 수 있다고 가정해요.

웹 서버용 TCP 대상을 만들어요. 이 예시는 HTTPS용 포트 443을 가정해요.

Admin UI로 웹 대상 생성:

  • Project Actions 아래에서 Targets를 선택해요.
  • New Target을 클릭해요.
  • 다음 필드를 작성해요:
    • Name — (필수) 식별을 위한 이름. 이름은 유일해야 해요.
    • Description — (선택) 식별을 위한 대상 설명
    • Type — (필수) TCP 대상을 만들려면 TCP를 선택해요.
    • Target Address — (선택) 호스트 카탈로그와 호스트 셋을 사용하지 않는다면, 대상 주소를 입력해 대상을 단일 주소에 매핑할 수 있어요. 유효한 IP 주소나 DNS 이름이어야 해요.
    • Default Port — (필수) 연결할 기본 포트. 예: 443
    • Aliases — (선택) 대상의 전역 범위 유일 식별자로, CLI나 투명 세션으로 대상에 더 쉽게 연결하게 해줘요. 앨리어스를 만들면 Add를 클릭해 할당해요.
  • Save를 클릭해요.

CLI로 웹 대상 생성:

웹 서버용 TCP 대상을 만들어요. 이 예시는 HTTPS용 포트 443을 가정해요.

  • 별칭 test.example.com, 직접 대상 주소 10.0.0.30, 기본 연결 포트 443을 가진 test-example-web-server라는 TCP 대상을 만들려면 다음 명령을 사용해요:
$ boundary targets create tcp \
  -scope-id $BOUNDARY_PROJECT_ID \
  -name "test-example-web-server" \
  -with-alias-value "test.example.com" \
  -address "10.0.0.30" \
  -default-port 443

대상을 만들 때는 scope-id 필드를 반드시 제공해야 해요. 대상 생성 시 사용할 수 있는 더 많은 필드는 targets 도메인 모델 문서를, 모든 CLI 옵션은 targets create 명령을 참고하세요.

Terraform으로 웹 대상 생성:

HTTPS용 포트 443을 가정한 TCP 대상을 만들어요:

resource "boundary_target" "example" {
  name         = "test-example-web-server"
  description  = "Apache web server for test.example.com"
  type         = "tcp"
  address      = "10.0.0.30"
  default_port = "443"
  scope_id     = boundary_scope.project.id
}

선택한 연결 워크플로우에 유용하다면 앨리어스를 만들 수 있어요:

resource "boundary_alias_target" "test.example.com" {
  name                      = "test-example-web-server"
  description               = "Target alias for test-example-web-server"
  scope_id                  = "global"
  value                     = "test.example.com"
  destination_id            = boundary_target.example.id
}

더 알아보기 (Learn more)