Infograb logo
기기 신뢰 시작하기
Notice

Device Trust는 tsh , Teleport Connect 및 웹 UI를 포함한 모든 플랫폼과 클라이언트를 지원합니다(Teleport Connect가 설치되어 있어야 함).

다음 리소스는 장치 신뢰에 의해 보호됩니다:

  • 역할 기반 강제 적용 전용: 앱 및 데스크탑
  • 클러스터 및 역할 기반 강제 적용: SSH 노드, 데이터베이스 및 Kubernetes 클러스터

기기 신뢰를 사용하려면 다음 두 단계 중 두 가지가 구성되어야 합니다:

  • 역할 또는 클러스터 전체 구성으로 설정된 기기 적용 모드.
  • Teleport에 등록되고 이론된 신뢰할 수 있는 기기.

이 가이드에서는 기존 사용자 프로필을 업데이트하여 사전 설정된 require-trusted-device 역할을 할당한 다음, Teleport로 보호된 리소스(테스트 리눅스 서버)에 접근하기 위해 신뢰할 수 있는 기기를 이론화합니다.

사전 요건

  • 실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하여 무료 평가판을 이용해 보십시오.

  • tctl 관리자 도구 및 tsh 클라이언트 도구.

    tctltsh 다운로드에 대한 지침은 설치 를 방문하십시오.

  • macOS 장치를 등록하려면 다음이 필요합니다:
  • Windows 장치를 등록하려면 다음이 필요합니다:
  • Linux 장치를 등록하려면 다음이 필요합니다:
    • TPM 2.0이 포함된 장치.
    • /dev/tpmrm0 장치를 사용할 수 있는 권한이 있는 사용자 (일반적으로 사용자를 tss 그룹에 할당하여 확인합니다).
    • tsh v15.0.0 이상. Linux용 tsh 설치.
  • 웹 UI 세션을 인증하려면 Teleport Connect가 필요합니다.
  • editor 역할을 가진 사용자.

    tsh status
    > Profile URL: teleport.example.com:443Logged in as: myuserCluster: teleport.example.comRoles: access, auditor, editorLogins: root, ubuntu, ec2-userKubernetes: disabledValid until: 2023-08-22 03:30:24 -0400 EDT [valid for 11h52m0s]Extensions: login-ip, permit-agent-forwarding, permit-port-forwarding, permit-pty, private-key-policy
  • tsh ssh 를 통해 접근할 수 있는 리눅스 서버(접근 가능한 모든 리눅스 서버면 됩니다).

    tsh ls
    Node Name Address Labels---------------- -------------- --------------------------------------ip-172-31-35-170 ⟵ Tunnel

    ip-172-31-35-170 연결 테스트

    tsh ssh root@ip-172-31-35-170
    root@ip-172-31-35-170:~#

이 가이드에서 언급된 사전 설정된 require-trusted-device 역할은 Teleport 버전 13.3.6 이상에서만 사용할 수 있습니다. 이전 Teleport 클러스터의 경우, device_trust_mode: required 로 역할을 업데이트해야 합니다.

간단히 하기 위해 아래 예시에서는 사전 설정된 access 역할을 업데이트하지만, 사용자가 할당된 기기 신뢰를 적용하는 액세스 부여 역할을 업데이트할 수 있습니다.

먼저, 역할을 가져와서 로컬에서 업데이트할 수 있도록 합니다:

tctl edit role/access

기기 신뢰 모드로 역할을 수정합니다:

kind: role
metadata:
  labels:
    teleport.internal/resource-type: preset
  name: access
spec:
  allow:
    logins:
    - '{{internal.logins}}'
    ...
  options:
    # 이 역할의 경우 인증된 기기 확인 필요
+   device_trust_mode: "required" # 이 줄 추가
    ...
  deny:
    ...

편집 내용을 저장합니다.

이제 access 역할이 기기 모드 "필수"로 구성되었으므로, 이 역할을 가진 사용자는 기기 신뢰가 적용됩니다.

위의 사전 요건이 충족되면, 다음 단계로 시작합니다.

1/2 단계. 사용자 프로필을 업데이트하여 기기 신뢰 적용

기기 신뢰를 적용하려면, 사용자는 기기 신뢰 모드 "필수"가 설정된 역할을 할당받아야 합니다.

이 가이드에서는 사전 설정된 require-trusted-device 역할을 사용하여 현재 사용자 프로필을 업데이트합니다.

사용자 리소스를 편집기로 열어 사전 설정된 require-trusted-device 역할로 업데이트합니다.

tctl edit users/myuser

프로필을 수정합니다:

kind: user
metadata:
  id: 1692716146877042322
  name: myuser
spec:
  created_by:
    time: "2023-08-14T13:42:22.291972449Z"
  expires: "0001-01-01T00:00:00Z"
  roles:
  - access
  - auditor
  - editor
+ - require-trusted-device # 이 줄 추가
  status:
    is_locked: false
  ...

편집기에서 파일을 저장하고 닫아 사용자를 업데이트합니다.

이제 사용자 프로필이 기기 신뢰를 적용하도록 업데이트되었으므로, 테스트 서버에 다시 접근해 보십시오.

tsh logout; tsh login --proxy=teleport.example.com --user=myuser
tsh ssh root@ip-172-31-35-170
ERROR: access denied to root connecting to ip-172-31-35-170:0

위 단계에서 확인할 수 있듯이, 이전에 접근 가능했던 ip-172-31-35-170 ssh 서버에 대한 접근이 이제 금지되었습니다.

2/2단계. 장치 등록

ip-172-31-35-170 서버에 다시 접근하기 위해서는 장치를 등록해야 합니다.

장치 등록은 쉽고, tsh 클라이언트를 사용하여 할 수 있습니다:

tsh device enroll --current-device
장치 "C00AA0AAAA0A"/macOS 등록 및 등록 완료
자체 등록: v13.3.5+

--current-device 플래그는 tsh 에게 현재 장치를 등록하라고 지시합니다. 사용자는 자기 장치를 자체 등록할 수 있는 editor 또는 device-admin 역할을 가지고 있어야 합니다. editor 또는 device-admin 역할이 없는 사용자의 경우, 장치 관리자가 생성한 등록 토큰이 필요하며, 이 토큰을 사용하여 장치를 등록할 수 있습니다. 수동 장치 등록에 대한 자세한 내용은 장치 관리 가이드 를 참조하세요.

장치 확장자로 업데이트된 인증서를 가져오기 위해 다시 로그인합니다:

tsh logout; tsh login --proxy=teleport.example.com --user=myuser

tsh status
> 프로필 URL: teleport.example.com:443 로그인 사용자: myuser 클러스터: teleport.example.com:443 역할: access, auditor, editor 로그인: root Kubernetes: 사용 중 유효 기간: 2023-08-22 04:06:53 -0400 EDT [12시간0분0초 유효] 확장자: login-ip, ... teleport-device-asset-tag, teleport-device-credential-id, teleport-device-id

teleport-device-* 확장자가 존재함은 장치가 성공적으로 인증되었음을 보여줍니다.

이제 서버 (ip-172-31-35-170) 에 다시 접근해 보겠습니다:

tsh ssh root@ip-172-31-35-170
root@ip-172-31-35-170:~#

축하합니다! 신뢰할 수 있는 장치를 성공적으로 구성하고 장치 신뢰 강화로 보호된 리소스에 접근했습니다.

문제 해결

tsh device enroll 에서 "binary missing signature or entitlements" 오류

신뢰할 수 있는 장치를 등록하고 사용하려면 서명되고 인증된 tsh 바이너리가 필요합니다. 문제를 해결하려면 macOS tsh 설치 프로그램을 다운로드하십시오.

신뢰할 수 있는 장치를 사용할 때 "unauthorized device" 오류

신뢰할 수 있는 장치는 Teleport에 의해 인식되기 전에 등록 및 등록이 필요합니다. 등록등록 단계를 따르고, 등록이 완료된 후에는 tsh logouttsh login 을 수행해야 합니다.

리눅스에서 "Failed to open the TPM device" 오류

리눅스 사용자는 TPM 장치인 /dev/tpmrm0 에서 읽고 쓸 수 있는 권한이 필요합니다. 이러한 권한이 없으면 tsh 는 대부분의 작업에 대해 sudo 프롬프트가 필요합니다.

이를 해결하는 가장 간단한 방법은 배포판이 tss 그룹을 제공하는지 확인하고 이를 OS 사용자에게 할당하는 것입니다. 그렇지 않은 경우 다른 해결책을 찾고 있다면, TPM2 Software Stack에서 제공하는 것과 유사한 udev 규칙을 작성하는 것을 권장합니다.

자동 등록이 작동하지 않음

자동 등록 의식은 자동화된 특성 때문에 일반 등록보다 엄격합니다. 추가 자동 등록 검사는 다음을 포함합니다:

  1. Jamf와 같은 출처의 장치 프로파일 데이터가 실제 장치와 일치하는지 확인
  2. 장치가 다른 사용자에 의해 등록되지 않았는지 확인 (자동 등록은 이미 등록된 장치를 가져올 수 없음)

감사 로그를 확인하여 단서를 찾으십시오: "Device Enroll Token Created" 이벤트에 대한 실패를 찾고 세부정보의 "message" 필드를 확인하십시오.

(1)이 문제라고 의심되는 경우, 실제 장치를 재고 정의와 비교하십시오(tsh device collect 를 실제 장치에서 실행한 것과 tctl get device/<asset_tag>). 장치 프로파일을 조정하거나 수동 등록을 하거나 다음 MDM 동기화를 기다리면 문제가 해결될 수 있습니다.

(2) 문제라고 의심되는 경우, tctl edit device/<asset_tag>를 사용하여 장치 등록을 해제하고 "enroll_status" 필드를 "not_enrolled"로 변경할 수 있습니다.

앱 접근 및 "access to this app requires a trusted device" 오류

아래의 Web UI 문제 해결 섹션 지침을 따르십시오 (Teleport v16 이상).

또는 App Access 지원에서 설명하는 tsh 명령 중 하나를 사용할 수 있습니다. 예를 들어, myapp 라는 앱의 경우, tsh proxy app myapp -p 8888 를 실행한 후 브라우저에서 http://localhost:8888을 엽니다.

이미 tsh proxy app 을 실행 중이거나 tsh app login 을 통해 획득한 증명을 사용하는 경우, 당신의 장치가 등록되거나 등록되지 않았을 가능성이 큽니다. 이 경우, 위의 신뢰할 수 있는 장치에서의 unauthorized device 섹션의 조언을 따르십시오.

데스크탑 접근 및 "access to this app requires a trusted device" 오류

아래의 Web UI 문제 해결 섹션 지침을 따르십시오.

웹 UI가 신뢰할 수 있는 장치 인증에 실패했습니다

웹 UI는 로그인하는 동안 Teleport Connect를 사용하여 장치를 인증하려고 시도합니다. 로그인 직후에 장치 인증을 요청받지 않는 경우, 아래 단계를 따라 진행하십시오:

  1. 귀하의 장치가 등록되고 등록되었는지 확인합니다.
  2. Teleport Connect 를 설치합니다. Linux에서는 DEB 또는 RPM 패키지를 사용하십시오 (tarball은 사용자 정의 URL 핸들러를 등록하지 않습니다).
  3. Teleport Connect가 웹에서 접근하려는 동일한 리소스에 접근할 수 있는지 확인합니다.
  4. 클러스터 관리者에게 장치 신뢰가 활성화되었는지 (클러스터 모드 "선택적" 또는 그 이상) 문의합니다.

위의 모든 단계를 완료한 경우, 웹 UI에서 로그아웃한 후 다시 로그인해 보십시오.

웹 UI에서 장치 신뢰 권한 상태 확인

웹 UI에서 장치 신뢰를 사용하도록 성공적으로 승인되면, 사용자는 화면 오른쪽 상단에 로그인한 사용자 이름 옆에 녹색 방패 아이콘을 보게 됩니다. 또한 사용자 메뉴를 표시하기 위해 사용자 이름을 클릭하면 해당 세션이 장치 신뢰로 승인되었음을 나타냅니다.

사용자가 웹 UI에서 장치 신뢰를 사용할 수 있는 권한이 없는 경우, 클러스터 전체 구성이나 부여된 역할 중 하나가 신뢰할 수 있는 장치를 사용할 것을 요구하는 경우, 사용자는 화면 오른쪽 상단에 로그인한 사용자 이름 옆에 노란색 경고 방패 아이콘을 보게 됩니다. 또한 사용자 이름을 클릭하여 사용자 메뉴를 표시하면 해당 세션이 장치 신뢰로 승인되지 않았음을 나타내므로 사용자의 접근이 제한됩니다.

테마장치 신뢰로 승인된 세션장치 신뢰로 승인되지 않은 세션
라이트device-trust-trusted-shield-light-success.pngdevice-trust-trusted-shield-light-failure.png
다크device-trust-trusted-shield-dark-success.pngdevice-trust-trusted-shield-dark-failure.png

다음 단계

Teleport 원문 보기