인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
로컬 Windows 사용자에 대한 액세스 구성
이 가이드는 Teleport를 구성하여 로컬 Windows 사용자에게 Microsoft Windows 데스크탑에 대한 안전하고 비밀번호 없는 액세스를 제공하는 방법을 보여줍니다.
로컬 사용자를 위한 비밀번호 없는 액세스는 Teleport Community Edition에서 5개의 데스크탑으로 제한됩니다.
static_hosts
에 ad: false
로 등록된 데스크탑이 5개를 초과하면 Teleport Community Edition은 이들 중 어느 것도 연결을 허용하지 않습니다.
Teleport Enterprise 사용자는 무제한의 데스크탑을 가질 수 있습니다.
필수 조건
이 가이드의 단계를 완료하려면 환경이 다음 요구 사항을 충족하는지 확인하십시오:
-
실행 중인 Teleport 클러스터 버전 17.0.0-dev 이상. Teleport를 시작하려면 가입하여 무료 평가판을 이용하거나 데모 환경 설정 방법을 확인하십시오.
-
tctl
관리자 도구와tsh
클라이언트 도구.tctl
및tsh
다운로드 방법에 대한 지침은 설치를 방문하십시오.
- Teleport Windows Desktop 서비스를 실행할 Linux 서버. 다른 Teleport 인스턴스를 실행 중인 기존 서버를 재사용할 수 있습니다. 단, 기존 Teleport 인스턴스에 Windows Desktop 서비스를 추가하려면 새 초대 토큰을 생성해야 합니다.
- Microsoft Windows가 실행 중인 물리적 또는 가상 머신이며 원격 데스크탑이 활성화되어 있고 Linux 서버에서 들어오는 연결을 위해 RDP 포트(일반적으로 포트 3389)가 열려 있어야 합니다.
- 연결이 가능한지 확인하기 위해
tsh login
으로 로그인한 다음, 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오. 예를 들어:클러스터에 연결할 수 있고tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 17.0.0-dev
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속tctl
명령어를 실행할 수 있습니다.
자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다.
1/4단계. Windows 준비
Microsoft Windows 데스크탑을 Teleport가 보호할 리소스로 등록하기 전에 Teleport 인증 기관(CA)에서 인증서를 사용하여 Microsoft Windows 환경을 준비하고 원격 데스크탑 액세스를 위한 기본 인증 서비스를 수정해야 합니다.
Windows 컴퓨터를 준비하려면:
- 등록하려는 Windows 컴퓨터에서 명령 프롬프트(
cmd.exe
) 창을 엽니다.
2. 다음 명령을 실행하여 Teleport 사용자 인증 기관을 내보냅니다(귀하의 Teleport 클러스터 주소를 사용):
curl.exe -fo teleport.cer https://teleport.example.com/webapi/auth/export?type=windows
- Teleport Windows Auth 설치 프로그램을 다운로드합니다:
curl.exe -fo teleport-windows-auth-setup-v17.0.0-dev-amd64.exe https://cdn.teleport.dev/teleport-windows-auth-setup-v17.0.0-dev-amd64.exe
-
다운로드한 실행 파일을 두 번 클릭하여 Teleport Windows Auth Setup 프로그램을 대화식으로 실행하고, 프롬프트가 나타나면 내보낸 Teleport 인증서를 선택합니다.
설치 프로그램은 다음을 수행합니다:
- Windows가 Teleport 인증 기관을 신뢰하도록 설정합니다.
- Teleport에서 사용할 필수 동적 링크 라이브러리(DLL)를 설치합니다.
- 원격 데스크탑 서비스에 대한 네트워크 수준 인증(NLA)을 비활성화합니다.
- Teleport 버전 15 이상을 사용하는 경우 RemoteFX 압축을 활성화합니다.
5. 컴퓨터를 재시작합니다.
설치 프로세스를 자동화하려면, 다음 명령으로 관리 권한의 명령 프롬프트 또는 PowerShell 콘솔에서 설치 프로그램을 실행할 수 있습니다:
teleport-windows-auth-setup-v17.0.0-dev-amd64.exe install --cert=teleport.cer -r
2/4단계. Windows Desktop 서비스 구성
이제 Windows 컴퓨터를 클러스터에 등록할 준비가 되었으므로, 다음 단계는:
- 관리자 작업 공간에서 초대 토큰을 생성합니다.
- Windows Desktop 서비스를 실행할 Linux 서버를 구성합니다.
Windows Desktop 서비스를 구성하려면:
-
관리 작업 공간에서 Teleport 클러스터에 로그인하여 본인 인증을 수행합니다.
-
다음 명령을 실행하여 단기 초대 토큰을 생성합니다:
tctl tokens add --type=windowsdesktop이 명령은 다음과 유사한 정보를 표시합니다:
초대 토큰: abcd123-insecure-do-not-use-this 이 토큰은 60분 후에 만료됩니다.
-
관리 작업 공간에서 토큰을 복사하여 Windows Desktop 서비스를 실행하려는 Linux 서버의 파일에 붙여넣습니다.
예를 들어, Linux 서버에
/tmp/token
이라는 파일을 생성하고 그 파일에 토큰을 붙여넣습니다. -
Windows Desktop 서비스를 실행할 Linux 서버에 Teleport가 설치되어 있는지 확인하려면 다음 명령을 실행합니다:
teleport versionLinux 서버에 Teleport가 설치되어 있지 않다면, 해당 환경에 맞는 설치 지침을 따르십시오.
-
Linux 서버의
/etc/teleport.yaml
파일을 다음과 유사한 설정으로 구성하여 Windows Desktop 서비스를 설정합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport.example.com:443 auth_token: /tmp/token windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false addr: 192.0.2.156 auth_service: enabled: no proxy_service: enabled: no ssh_service: enabled: no
이 파일에서:
proxy_server
를 Teleport 클러스터의 주소로 설정합니다.static_hosts
에서 Windows 데스크탑을 나열합니다.
Teleport는 Active Directory 없이 Windows 데스크탑을 자동으로 발견할 수 없습니다. 따라서, Teleport 구성 파일을 사용하여 등록할 Windows IP 주소 또는 호스트 이름을 지정하거나 Teleport API를 사용하여 자체 통합을 구축해야 합니다.
API 통합에 대한 예제는 GitHub에서 찾을 수 있습니다.
-
(선택 사항) Windows Desktop 서비스에 대한 레이블을 구성 파일에 추가합니다.
호스트 구성의
labels
섹션을 사용하여 Windows 컴퓨터에 레이블을 추가할 수 있습니다. 예를 들어, 다음은datacenter: dc1
레이블을 추가합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport.example.com:443 auth_token: /tmp/token windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false addr: 192.0.2.156 + labels: + datacenter: dc1
또는 호스트 이름과 일치시켜 Windows 컴퓨터에 레이블을 연결할 수 있습니다. 예를 들어, 다음은
cloud: ec2
레이블을us-east-2.compute.internal
로 끝나는 호스트 이름을 가진 컴퓨터에 추가합니다:version: v3 teleport: nodename: windows.teleport.example.com proxy_server: teleport-proxy.example.com:443 windows_desktop_service: enabled: yes static_hosts: - name: host1 ad: false - addr: 192.0.2.156 + addr: ip-192-0-2-156.us-east-2.compute.internal + host_labels: + - match: '.*\.us-east-2.compute.internal' + labels: + cloud: ec2
레이블 및 역할 사용에 대한 자세한 내용은 Windows 전용 역할 권한 구성을 참조하십시오.
-
호스트가 부팅될 때 the Teleport Windows Desktop Service가 자동으로 시작되도록 systemd 서비스를 생성하여 구성합니다. 지침은 the Teleport Windows Desktop Service를 설치한 방법에 따라 다릅니다.
the Teleport Windows Desktop Service를 실행할 호스트에서 Teleport를 활성화하고 시작합니다:
sudo systemctl enable teleportsudo systemctl start teleportthe Teleport Windows Desktop Service를 실행할 호스트에서 Teleport의 systemd 서비스 구성을 만들고, Teleport 서비스를 활성화한 후 Teleport를 시작합니다:
sudo teleport install systemd -o /etc/systemd/system/teleport.servicesudo systemctl enable teleportsudo systemctl start teleportsystemctl status teleport
로 the Teleport Windows Desktop Service의 상태를 확인하고,journalctl -fu teleport
로 로그를 볼 수 있습니다.
3/4단계. 원격 Windows 데스크톱 액세스 구성
원격 데스크톱에 액세스하려면, Teleport 사용자는 해당 데스크톱에 대한 적절한 권한이 있는 역할을 가져야 합니다.
데스크톱 액세스를 위한 역할을 구성하려면:
-
인증된 신원을 확인하기 위해 관리 워크스테이션에서 Teleport 클러스터에 로그인하십시오.
-
새 역할을 정의하기 위해
windows-desktop-admins.yaml
파일을 생성합니다:kind: role version: v6 metadata: name: windows-desktop-admins spec: allow: windows_desktop_labels: "*": "*" windows_desktop_logins: ["Administrator", "alice"]
이 파일에서:
- 특정 호스트에 대한 액세스를 허용하거나 거부할 수 있도록 하려면
windows_desktop_labels
를 설정합니다. - Teleport 사용자가 역할에 할당된 Windows 데스크톱에 접근할 때 사용하는 Windows 로그인을 지정하려면
windows_desktop_logins
를 설정합니다.
Windows에 대한 역할 기반 액세스 제어를 구성하는 방법에 따라 Teleport는 지정한
windows_desktop_logins
로부터 로컬 사용자 로그인을 자동으로 생성할 수 있습니다. Teleport가 로컬 Windows 로그인을 생성하도록 설정하는 방법에 대한 자세한 정보는 자동 사용자 생성을 참조하십시오. - 특정 호스트에 대한 액세스를 허용하거나 거부할 수 있도록 하려면
-
다음 명령을 실행하여 새 역할을 클러스터에 적용합니다:
tctl create -f windows-desktop-admins.yaml -
windows-desktop-admins
역할을 Teleport 사용자에게 할당하려면, 인증 제공자에 맞는 적절한 명령어를 실행하십시오:-
로컬 사용자의 역할을 쉼표로 구분된 목록으로 가져옵니다:
ROLES=$(tsh status -f json | jq -r '.active.roles | join(",")') -
새로운 역할을 추가하기 위해 로컬 사용자를 수정합니다:
tctl users update $(tsh status -f json | jq -r '.active.username') \ --set-roles "${ROLES?},windows-desktop-admins" -
Teleport 클러스터에서 로그아웃한 후 다시 로그인하여 새로운 역할을 가집니다.
-
텍스트 편집기에서
github
인증 커넥터를 엽니다:tctl edit github/github -
github
커넥터를 수정하여teams_to_roles
섹션에windows-desktop-admins
을 추가합니다.이 역할에 매핑해야 하는 팀은 조직의 역할 기반 액세스 제어(RBAC) 설계에 따라 다릅니다. 그러나 팀은 귀하의 사용자 계정을 포함해야 하며, 조직 내에서 가장 작은 팀이어야 합니다.
예시는 다음과 같습니다:
teams_to_roles: - organization: octocats team: admins roles: - access + - windows-desktop-admins
-
파일을 편집하고 저장하여 변경 사항을 적용합니다.
-
Teleport 클러스터에서 로그아웃한 후 다시 로그인하여 새로운 역할을 가집니다.
-
saml
구성 리소스를 가져옵니다:tctl get --with-secrets saml/mysaml > saml.yaml--with-secrets
플래그는spec.signing_key_pair.private_key
의 값을saml.yaml
파일에 추가합니다. 이 키는 민감한 값을 포함하므로, 리소스를 업데이트한 후 즉시saml.yaml
파일을 삭제해야 합니다. -
saml.yaml
을 수정하여attributes_to_roles
섹션에windows-desktop-admins
을 추가합니다.이 역할에 매핑해야 하는 속성은 조직의 역할 기반 액세스 제어(RBAC) 설계에 따라 다릅니다. 그러나 그룹은 귀하의 사용자 계정을 포함해야 하며, 조직 내에서 가장 작은 그룹이어야 합니다.
예시는 다음과 같습니다:
attributes_to_roles: - name: "groups" value: "my-group" roles: - access + - windows-desktop-admins
-
변경 사항을 적용합니다:
tctl create -f saml.yaml -
Teleport 클러스터에서 로그아웃한 후 다시 로그인하여 새로운 역할을 가집니다.
-
oidc
구성 리소스를 가져옵니다:tctl get oidc/myoidc --with-secrets > oidc.yaml--with-secrets
플래그는spec.signing_key_pair.private_key
의 값을oidc.yaml
파일에 추가합니다. 이 키는 민감한 값을 포함하므로, 리소스를 업데이트한 후 즉시oidc.yaml
파일을 삭제해야 합니다. -
oidc.yaml
을 수정하여claims_to_roles
섹션에windows-desktop-admins
을 추가합니다.이 역할에 매핑해야 하는 클레임은 조직의 역할 기반 액세스 제어(RBAC) 설계에 따라 다릅니다. 그러나 그룹은 귀하의 사용자 계정을 포함해야 하며, 조직 내에서 가장 작은 그룹이어야 합니다.
예시는 다음과 같습니다:
claims_to_roles: - name: "groups" value: "my-group" roles: - access + - windows-desktop-admins
-
변경 사항을 적용합니다:
tctl create -f oidc.yaml -
Teleport 클러스터에서 로그아웃한 후 다시 로그인하여 새로운 역할을 가집니다.
-
4/4단계. 연결
이제 Windows Desktop Service를 실행할 Linux 서버를 구성하고 Teleport 사용자가 로컬 Windows 로그인으로 Microsoft Windows에 연결할 수 있도록 하는 역할을 생성했으므로 windows-desktop-admins
역할이 할당된 Teleport 사용자를 사용하여 Teleport 웹 UI에서 Windows 데스크톱에 연결할 수 있습니다.
Windows 데스크톱에 연결하려면:
-
windows-desktop-admins
역할이 할당된 계정을 사용하여 Teleport 클러스터에 로그인하십시오. -
리소스를 선택합니다.
-
유형을 클릭한 후 데스크톱을 선택합니다.
-
접근하고자 하는 Windows 데스크톱의 연결을 클릭한 후 연결에 사용할 Windows 로그인을 선택합니다.
Teleport가 원격 데스크톱 연결을 열고 데스크톱 세션을 기록하기 시작합니다. Windows 데스크톱에서 작업을 마치면 더 많은 항목 메뉴를 클릭한 후 연결 끊기를 클릭합니다.
기록을 보려면 Teleport 웹 UI에서 관리를 선택한 후 활동 섹션에서 세션 기록을 클릭합니다.
제거
Teleport의 Windows auth 패키지를 사용하여 로컬 사용자에게 비밀번호 없이 로그인할 수 있도록 제공하는 경우, 관리 권한이 있는 명령 프롬프트에서 설치 프로그램을 실행하여 제거할 수 있습니다:
> teleport-windows-auth-setup.exe uninstall
패키지를 완전히 제거하기 위해서는 uninstall이 완료된 후 재부팅이 필요합니다.
다음 단계
역할 생성, 할당 및 업데이트 방법에 대한 일반적인 정보는 액세스 제어 시작하기를 참조하십시오. Windows 전용 역할 권한 구성에 대한 보다 구체적인 정보는 데스크톱을 위한 역할 기반 액세스 제어를 참조하십시오.