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_addr
를 unset으로 설정하고
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