인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
데스크톱 액세스 구성 참조
teleport.yaml
데스크톱 액세스와 관련된 필드:
# 데스크톱 액세스를 담당하는 주요 서비스입니다.
#
# 클러스터 내에서 여러 개의 데스크톱 서비스 인스턴스를 가질 수 있으며(하지만 같은
# teleport.yaml 내에서는 불가능), 동일하거나 다른 Active Directory
# 도메인에 연결될 수 있습니다.
windows_desktop_service:
enabled: yes
# windows_desktop_service가 수신 대기할 주소입니다.
listen_addr: "0.0.0.0:3028"
# (선택 사항) windows_desktop_service가 Teleport의 나머지 부분에 광고할 주소입니다.
# 사용자는 프록시의 웹 UI를 통해 연결하며, proxy_service만 windows_desktop_service에 연결해야 합니다.
public_addr: "desktop-access.example.com:3028"
# (선택 사항) 데스크톱 세션에서 사용자가 선택한 배경화면을 표시할지 여부를 결정합니다.
# 시스템 기본값인 단색 배경화면을 사용하는 경우 성능이 개선됩니다.
# 기본값은 false입니다.
show_desktop_wallpaper: false
# (선택 사항) Teleport를 Active Directory 도메인에 연결할 때 사용하는 LDAP 설정 키입니다.
# 이를 통해 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-----
*certificate data*
-----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'
# 위 username 필드에 지정된 서비스 계정의 보안 식별자(SID)입니다. SID는 "S-"로 시작하는 문자열처럼 보입니다.
#
# PowerShell에서 다음 명령어를 실행하여 AD 사용자 객체를 읽을 권한이 있는 모든 AD 사용자가 값을 얻을 수 있습니다:
#
# ```
# Get-AdUser -Identity $LDAP_USERNAME | Select SID
# ```
#
# LDAP를 통해 값을 얻으려면 필터 = (&(objectCategory=person)(objectClass=user)(sAMAccountName=$LDAP_USERNAME))로 쿼리를 구성하고
# 요청 속성 = objectSid로 설정하면 됩니다.
sid: '$LDAP_USER_SID'
# (선택 사항) AD 지원이 사용되는 경우, Teleport가 PKI 작업에 사용하는 도메인을 재정의할 수 있습니다.
# 비워두면 ldap 섹션에서 지정된 도메인이 사용됩니다. 이는 PKI가 루트 도메인에 구성되었지만,
# Teleport가 하위 도메인에서 사용자와 컴퓨터에 대한 액세스를 제공하는 경우 유용합니다.
pki_domain: root.example.com
# (선택 사항) Kerberos Key Distribution Center(KDC)의 주소를 구성합니다. 이는 RDP 네트워크 수준 인증(NLA)을 지원하는 데 사용됩니다.
# 비워두면 LDAP 주소가 대신 사용됩니다.
#
# 예시: kdc.example.com:88
# 포트는 선택 사항이며 지정하지 않으면 기본적으로 포트 88이 사용됩니다.
#
# 참고: NLA는 Active Directory 환경에서만 지원되며, 로컬 Windows 사용자로 데스크톱에 연결할 때는 효과가 없습니다.
kdc_address: '$KDC_SERVER_ADDRESS'
# (선택 사항) static_hosts는 Teleport에서 WindowsDesktop 객체로 등록할 호스트 목록입니다.
# 호스트 이름과 레이블을 직접 정의할 수 있습니다.
static_hosts:
- name: example1
ad: false
addr: win1.dev.example.com
labels:
datacenter: dc1
- ad: true
addr: win2.dev.example.com # 주소 기반으로 이름이 생성됩니다
labels:
controller: all
# (선택 사항) LDAP를 통한 자동 데스크톱 검색 활성화를 위한 설정입니다.
discovery:
# 와일드카드 '*' 문자는 Active Directory 도메인의 모든 호스트를 검색하도록 Teleport에 지시합니다.
# 검색 범위를 좁히려면 사용자 지정 DN을 지정하세요. 자동 검색을 비활성화하려면 이 필드를 비워두세요.
base_dn: '*'
# (선택 사항) LDAP 검색을 더욱 맞춤화하기 위한 LDAP 필터입니다.
filters:
- '(location=Oakland)'
- '(!(primaryGroupID=516))' # 도메인 컨트롤러 제외
# (선택 사항) Teleport 레이블로 변환될 LDAP 속성입니다.
label_attributes:
- location
host_labels:
- match: '^.*\.dev\.example\.com'
labels:
environment: dev
- match: '^.*\.prod\.example\.com'
labels:
environment: prod
- match: '^EC2AMAZ-'
labels:
environment: discovered-in-aws
labels:
teleport.internal/resource-id: "resource-id"
배포
Windows 데스크톱 서비스는 두 가지 모드로 배포될 수 있습니다.
직접 모드
직접 모드에서는 Windows 데스크톱 서비스가 Teleport Auth 서버에 직접 등록하고, Teleport Proxy에서 데스크톱 연결을 수신 대기합니다. 직접 모드를 활성화하려면 teleport.yaml
의 windows_desktop_service.listen_addr
를 설정하고, teleport.auth_server
가 Auth 서버를 직접 가리키도록 해야 합니다.
직접 모드는 다음 두 가지 네트워크 연결이 필요합니다:
- Teleport Proxy에서 Windows 데스크톱 서비스로.
- Windows 데스크톱 서비스에서 Auth 서비스로.
이러한 이유로 직접 모드는 Teleport 클라우드에서 사용할 수 없으며, 자기 호스팅된 Teleport 클러스터에서만 가능합니다.
IoT 모드 (역터널)
IoT 모드에서는 Windows 데스크톱 서비스가 Teleport Proxy에 아웃바운드 연결을 할 수 있기만 하면 됩니다. Windows 데스크톱 서비스는 프록시에 대한 역터널을 설정하며, Auth 서버에 등록하고 데스크톱 세션을 이 터널을 통해 수행합니다. 이 모드를 활성화하려면 windows_desktop_service.listen_addr
를 설정하지 마세요 하고, 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