Infograb logo
장치 신뢰 설정 시작하기
Notice

디바이스 신뢰는 tsh, Teleport Connect 및 웹 UI(설치를 위한 Teleport Connect 필요)를 포함한 모든 플랫폼과 클라이언트를 지원합니다.

디바이스 신뢰로 보호되는 리소스는 다음과 같습니다:

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

장치 신뢰에는 다음 단계 중 두 가지가 구성되어 있어야 합니다:

  • 역할 또는 클러스터 전체 구성으로 설정된 장치 시행 모드.
  • Teleport에 등록되고 등록된 신뢰할 수 있는 장치.

이 가이드에서는 기존 사용자 프로필을 업데이트하여 미리 설정된 require-trusted-device 역할을 할당한 후 Teleport에 신뢰할 수 있는 장치를 등록하여 리소스(테스트 리눅스 서버)에 접근합니다.

사전 조건

  • 실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하기 무료 체험판을 이용해 보세요.

  • tctl 관리 도구 및 tsh 클라이언트 도구 버전 >= 16.2.0.

    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:~#

위의 사전 조건을 충족하면, 다음 단계로 진행합니다.

1단계/2단계. 사용자 프로필 업데이트하여 장치 신뢰 시행

장치 신뢰를 시행하기 위해 사용자는 "필수" 장치 신뢰 모드가 있는 역할이 할당되어야 합니다.

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

v13.3.5 및 이하

이 가이드에서 언급된 미리 설정된 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 역할이 "필수" 장치 모드로 구성되었으므로 이 역할을 가진 사용자는 장치 신뢰를 시행받게 됩니다.

먼저, 사용자의 프로필을 로컬에서 가져와서 미리 설정된 require-trusted-device 역할로 업데이트합시다.

tctl get users/myuser > myuser.yaml

프로필을 편집합니다:

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
  ...

저장하고 사용자를 업데이트합니다:

tctl create -f myuser.yaml

이제 사용자 프로필이 장치 신뢰를 시행하도록 업데이트되었습니다. 다시 테스트 서버에 접근해 보세요.

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
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
> Profile URL: teleport.example.com:443 Logged in as: myuser Cluster: teleport.example.com:443 Roles: access, auditor, editor Logins: root Kubernetes: enabled Valid until: 2023-08-22 04:06:53 -0400 EDT [valid for 12h0m0s] Extensions: 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에서 "이진 파일이 누락된 서명 또는 권한"

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

신뢰할 수 있는 장치를 사용하여 "무단 장치" 오류 발생

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

리눅스에서 "TPM 장치를 열 수 없음" 오류 발생

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

가장 간단한 해결책은 배포판이 tss 그룹을 제공하는지 확인하고 이를 운영 체제 사용자에게 할당하는 것입니다. 그게 불가능하거나 다른 해결책을 원하는 경우, TPM2 소프트웨어 스택에서 제공하는 것과 유사한 udev 규칙을 생성하는 것을 권장합니다.

앱 접근 및 "이 앱에 대한 접근은 신뢰할 수 있는 장치를 요구합니다"

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

대안으로, 앱 접근 지원에서 설명한 tsh 명령 중 하나를 사용할 수 있습니다. 예를 들어, myapp이라는 앱의 경우, tsh proxy app myapp -p 8888을 실행한 후 브라우저에서 http://localhost:8888을 여세요.

이미 tsh proxy app을 실행 중이거나 tsh app login에서 획득한 인증서를 사용 중인 경우, 장치가 등록되지 않았거나 등록되지 않았을 가능성이 큽니다. 이 경우, 위의 신뢰할 수 있는 장치를 사용한 무단 장치 섹션의 조언을 따르세요.

데스크탑 접근 및 "이 앱에 대한 접근은 신뢰할 수 있는 장치를 요구합니다"

아래의 웹 UI 문제 해결 섹션에서 지침을 따르세요.

웹 UI가 신뢰할 수 있는 장치를 인증하지 못함

웹 UI는 로그인 중에 Teleport Connect를 사용하여 장치를 인증하려고 시도합니다. 로그인 후 즉시 장치를 인증하라는 요청을 받지 않는 경우, 아래 단계를 따르세요:

  1. 장치가 등록되고 등록되었는지 확인하세요.
  2. Teleport Connect를 설치하세요. 리눅스에서는 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 원문 보기