Infograb logo
데스크탑 접근 구성 참조

teleport.yaml의 데스크탑 접근 관련 필드:

# 데스크탑 접근을 담당하는 주요 서비스입니다.
#
# 클러스터에 여러 개의 데스크탑 서비스 인스턴스를 가질 수 있습니다 
# (하지만 동일한 teleport.yaml에서 사용하지 않음) 
# 동일하거나 다른 Active Directory 도메인에 연결되어 있습니다.
windows_desktop_service:
  enabled: 
  # 이것은 windows_desktop_service가 수신 대기할 주소입니다.
  listen_addr: "0.0.0.0:3028"
  # (선택 사항) 이것은 windows_desktop_service가
  # 데이터베이스의 나머지 부분에 광고할 주소입니다.
  # 다른 연결을 위해. 오직 proxy_service만이 windows_desktop_service에 연결해야 하며,
  # 사용자는 대신 프록시의 웹 UI에 연결합니다.
  public_addr: "desktop-access.example.com:3028"
  # (선택 사항) 데스크탑 세션이 사용자 선택 배경화면을 표시할지
  # 시스템 기본값 단색 배경화면을 표시할지 결정합니다.
  # 개선된 시각적 성능을 위해, 이를 false(기본값)로 설정하세요.
  show_desktop_wallpaper: false
  # (선택 사항) ldap는 Teleport
  # Active Directory 도메인에 연결할 때 사용되는 구성 키를 포함합니다.
  # 이것은 Teleport 접근을 위해 구성된 Active Directory 도메인에
  # 속한 Windows 데스크탑의 발견 서비스를 활성화합니다.
  ldap:
    # 보안 LDAP 연결을 위한 LDAP 서버의 주소입니다.
    # 일반적으로 이 주소는 포트 636을 사용하며, 예: ldap.example.com:636입니다.
    # 최상의 결과를 위해, 이 주소는 단일 도메인 컨트롤러보다
    # 고가용성 엔드포인트를 가리켜야 합니다.
    addr: '$LDAP_SERVER_ADDRESS'
    # 선택 사항: LDAP 서버의
    # 인증서를 검증할 때 사용할 서버 이름입니다. addr가 IP이고 서버가
    # 다른 호스트 이름으로 인증서를 제공하는 경우에 유용합니다.
    server_name: '$LDAP_SERVER_NAME'
    # LDAPS 인증서 검증을 건너뛰려면
    # 이를 true로 설정하세요. 이를 false로 설정하고
    # 시스템의 신뢰할 수 있는 저장소에 인증서를 추가하는 것이 권장됩니다.
    # 또는 ldap_ca_cert 변수를 사용해 PEM 인코딩된 인증서로 제공할 수 있습니다.
    # der_ca_file로 파일 경로를 제공할 수 있지만, 이 동작은 더 이상 지원되지 않습니다.
    insecure_skip_verify: false
    # PEM 인코딩된 LDAP CA 인증서입니다.
    ldap_ca_cert: |
      -----BEGIN CERTIFICATE-----
          *인증서 데이터*
      -----END CERTIFICATE-----
    # DER 인코딩된 LDAP CA 인증서입니다.
    # 사용되지 않음: 대신 ldap_ca_cert를 선호하세요.
    der_ca_file: /path/to/cert
    # 연결하려는 Active Directory 도메인 이름입니다.
    domain: '$LDAP_DOMAIN_NAME'
    # 인증을 위한 LDAP 사용자 이름입니다. 이 사용자 이름은 도메인
    # NetBIOS 이름을 포함해야 합니다. 여기서 단일 인용문의 사용은 의도적이며
    # 역슬래시(\) 문자를 이스케이프할 필요가 없습니다.
    #
    # 예를 들어, 도메인이 "example.com"인 경우, 해당 NetBIOS 이름은
    # 아마도 "EXAMPLE"일 것입니다. "svc-teleport" 사용자로 연결할 때는
    # 다음 형식을 사용해야 합니다: "EXAMPLE\svc-teleport".
    username: '$LDAP_USERNAME'
    # 위의 사용자 이름 필드에 의해 지정된 서비스 계정의 보안 식별자입니다.
    # 이 문자열은 "S-"로 시작합니다.
    #
    # 사용자 객체를 읽을 수 있는 권한을 가진 AD 사용자는 PowerShell을 열고
    # 다음을 실행하여 이 값을 얻을 수 있습니다.
    # ```
    # Get-AdUser -Identity $LDAP_USERNAME | Select SID
    # ```
    #
    # 이 값은 (objectCategory=person)(objectClass=user)(sAMAccountName=$LDAP_USERNAME)의
    # 필터로 질의를 구성하고 objectSid 속성을 요청함으로써 LDAP를 통해 얻을 수 있습니다.
    sid: '$LDAP_USER_SID'

  # (선택 사항) AD 지원이 사용될 때, 이 필드는 Teleport가 PKI 작업에 사용할
  # 도메인을 재정의할 수 있게 해줍니다. 비어 있으면, ldap 섹션의 도메인이 사용됩니다.
  # 이는 PKI가 루트 도메인에서 구성되어 있지만, Teleport가 자식 도메인의
  # 사용자와 컴퓨터에게 접근을 허용하기 위해 사용되는 경우에 유용할 수 있습니다.
  pki_domain: root.example.com

  # (선택 사항) Kerberos 키 분배 센터의 주소를 구성하며,
  # 이는 RDP 네트워크 수준 인증(NLA)을 지원하는 데 사용됩니다.
  # 비어 있으면, LDAP 주소가 대신 사용됩니다.
  #
  # 예: kdc.example.com:88.
  # 포트는 선택사항이며 지정하지 않으면 기본적으로 포트 88이 사용됩니다.
  #
  # 주의: NLA는 Active Directory 환경에서만 지원됩니다. 이 필드는 
  # 로컬 Windows 사용자로서 데스크탑에 연결할 때는 효과가 없습니다.
  kdc_address: '$KDC_SERVER_ADDRESS'

  # (선택 사항) static_hosts는 WindowsDesktop
  # 객체로 등록할 호스트의 목록입니다.
  # 호스트 이름 및 레이블을 직접 정의할 수 있습니다.
  static_hosts:
  - name: example1
    ad: 거짓
    addr: win1.dev.example.com
    labels:
      datacenter: dc1
  - ad: 
    addr: win2.dev.example.com # 이름은 주소에 따라 생성됩니다.
    labels:
      controller: all

  # (선택 사항) LDAP를 통한 자동 데스크탑 발견을 활성화하기 위한 설정입니다.
  discovery:
    # 와일드카드 '*' 문자는 Teleport가
    # Active Directory 도메인 내 모든 호스트를 발견하도록 지시합니다.
    # 검색을 세분화하려면 사용자 정의 DN을 지정하십시오.
    # 자동 발견을 비활성화하려면 이 필드를 비워 두십시오.
    base_dn: '*'
    # (선택 사항) LDAP 검색을 추가로 사용자 정의하기 위한 LDAP 필터입니다.
    # LDAP 필터 구문에 대한 세부사항은 https://ldap.com/ldap-filters를 참조하세요.
    filters:
    - '(location=Oakland)'
    - '(!(primaryGroupID=516))' # 도메인 컨트롤러 제외
    # (선택 사항) Teleport 레이블로 변환할 LDAP 속성입니다.
    # 레이블의 키는 "ldap/" + 속성 값이 됩니다.
    label_attributes:
    - location
  # 호스트 이름에 대해 정규 표현식을 기반으로 Windows 호스트에 레이블을 적용하는 규칙입니다.
  # 여러 규칙이 일치할 경우, 데스크탑은 모든 일치하는 레이블의 합집합을 갖습니다.
  #
  # 정적 호스트와 발견된 호스트의 일치 규칙은 다소 다릅니다.
  # 자세한 내용은 https://goteleport.com/docs/desktop-access/rbac/를 참조하세요.
  host_labels:
  - match: '^.*\.dev\.example\.com'
    labels:
      environment: dev
  - match: '^.*\.prod\.example\.com'
    labels:
      environment: prod
  - match: '^EC2AMAZ-'
    labels:
      environment: discovered-in-aws

  # Windows Desktop Service에 첨부할 레이블입니다. 이는 내부적으로 사용되므로,
  # 추가된 커스텀 레이블은 Windows 호스트에 영향을 미치지 않습니다.
  labels:
    teleport.internal/resource-id: "resource-id"

배포

Windows 데스크탑 서비스는 두 가지 모드로 배포할 수 있습니다.

직접 모드

직접 모드에서는 Windows 데스크탑 서비스가 Teleport Auth Server에 직접 등록되고 Teleport Proxy에서의 데스크탑 연결을 수신합니다. 직접 모드를 활성화하려면 teleport.yaml에서 windows_desktop_service.listen_addr를 설정하고, teleport.auth_server가 Auth Server를 직접 가리키도록 해야 합니다.

직접 모드는 두 가지 네트워크 연결이 필요합니다:

  • Teleport Proxy에서 Windows 데스크탑 서비스로.
  • Windows 데스크탑 서비스에서 Auth 서비스로.

이러한 이유로 직접 모드는 Teleport 클라우드에서 사용할 수 없으며, 자체 호스팅하는 Teleport 클러스터에서만 사용할 수 있습니다.

IoT 모드 (역 터널)

IoT 모드에서는 Windows 데스크탑 서비스가 Teleport Proxy에 아웃바운드 연결을 할 수 있어야 합니다. Windows 데스크탑 서비스는 프록시로 역 터널을 설정하고 Auth Server에 등록 및 데스크탑 세션이 이 터널을 통해 수행됩니다. 이 모드를 활성화하려면 windows_desktop_service.listen_addrunset으로 설정하고 teleport.proxy_server를 Teleport Proxy로 지정해야 합니다.

화면 크기

기본적으로 Teleport는 원격 데스크탑 세션의 화면 크기를 브라우저 창의 크기를 기준으로 설정합니다. 일부 경우에 특정 호스트가 특정 화면 크기를 사용하도록 구성하고 싶을 수 있습니다. 이 경우 windows_desktop 리소스에서 screen_size 속성을 설정합니다:

kind: windows_desktop
metadata:
  name: fixed-screen-size
spec:
  host_id: 307e091b-7f6b-42e0-b78d-3362ad10b55d
  addr: 192.168.1.153:3389
  non_ad: true

  # 선택 사항 - 모든 세션이 동일한 화면 크기를 사용하도록 보장합니다,
  # 브라우저 창의 크기와 상관없이.
  # 브라우저 창의 크기를 사용하려면 비워 두십시오.
  screen_size:
    width: 1024
    height: 768
Teleport 원문 보기