Infograb logo
세션별 MFA

Teleport는 새로운 세션을 시작할 때 추가 다단계 인증 체크를 요구할 수 있습니다:

  • SSH 연결(단일 tsh ssh 호출, 웹 UI SSH 세션 또는 Teleport Connect SSH 세션)
  • Kubernetes 세션(단일 kubectl 호출)
  • 데이터베이스 세션(단일 tsh db connect 호출)
  • 애플리케이션 세션
  • 데스크탑 세션

이것은 사용자를 디스크에 저장된 Teleport 인증서의 침해로부터 보호하는 고급 보안 기능입니다.

세션별 MFA 외에도 SSO 제공자에서 로그인 MFA를 활성화하고 모든 로컬 Teleport 사용자에 대해 보안을 개선하세요.

필수조건

  • 실행 중인 Teleport 클러스터 버전 이상. Teleport를 시작하려면, 가입하기 위해 무료 평가판에 등록하거나 데모 환경 설정하기를 참조하세요.

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

    tctltsh 다운로드에 대한 지침은 설치를 방문하세요.

  • 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면, tsh login으로 로그인한 다음 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오. 예를 들어:
    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 16.2.0

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결하고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속 tctl 명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.
  • 이 클러스터에 WebAuthn 구성
  • YubiKey 또는 SoloKey와 같은 두 번째 요인 하드웨어 장치
  • WebAuthn 지원이 있는 웹 브라우저 (Teleport 웹 UI에서 SSH 또는 데스크탑 세션을 사용할 경우).
FIPS와 함께하는 세션별 MFA

Teleport FIPS 빌드는 로컬 사용자를 비활성화합니다. FIPS 빌드를 사용하여 세션별 MFA를 사용하도록 WebAuthn을 구성하려면 teleport.yaml에 다음 내용을 제공하세요:

teleport:
  auth_service:
    local_auth: false
    second_factor: on
    webauthn:
      rp_id: teleport.example.com

세션별 MFA 구성

세션별 MFA는 클러스터 전체에서 시행되거나 특정 역할에 대해서만 시행될 수 있습니다.

클러스터 전체

모든 역할에 대해 MFA 체크를 시행하려면 클러스터 인증 구성을 수정하세요:

Auth Server에서 teleport.yaml을 업데이트하여 다음 내용을 포함하세요:

auth_service:
  authentication:
    # 클러스터 전체에서 세션별 MFA 요구
    require_session_mfa: yes

기존의 cluster_auth_preference 리소스를 가져오세요:

tctl get cap > cap.yaml

cap.yaml에 다음 내용이 포함되어 있는지 확인하세요:

kind: cluster_auth_preference
metadata:
  name: cluster-auth-preference
spec:
  require_session_mfa: true
version: v2

리소스를 생성하세요:

tctl create -f cap.yaml

기존의 cluster_auth_preference 리소스를 가져오세요:

tctl get cap > cap.yaml

cap.yaml에 다음 내용이 포함되어 있는지 확인하세요:

kind: cluster_auth_preference
metadata:
  name: cluster-auth-preference
spec:
  require_session_mfa: true
version: v2

리소스를 생성하세요:

tctl create -f cap.yaml

역할별

특정 역할에 대해 MFA 체크를 시행하려면 역할을 업데이트하여 다음을 포함하세요:

kind: role
version: v7
metadata:
  name: example-role-with-mfa
spec:
  options:
    # 이 역할에 대해 세션별 MFA 요구
    require_session_mfa: true
  allow:
    ...
  deny:
    ...

역할별 시행은 역할의 allow 섹션과 일치하는 리소스에 접근할 때만 적용됩니다.

역할 예제

역할에 대한 세션별 MFA 체크를 설정하는 예제를 살펴보겠습니다.

제리는 회사 인프라에 접근할 수 있는 엔지니어입니다. 인프라는 개발 및 프로덕션 환경으로 나뉘어 있습니다. 보안 엔지니어인 올가는 프로덕션 서버에 접근하기 위해 MFA 체크를 시행하기를 원합니다. 개발 서버는 엔지니어의 부담을 줄이기 위해 이것을 요구하지 않습니다.

올가는 두 개의 Teleport 역할인 access-devaccess-prod를 정의합니다:

# access-dev.yaml
kind: role
version: v7
metadata:
  name: access-dev
spec:
  allow:
    node_labels:
      env: dev
    logins:
      - jerry
---
# access-prod.yaml
kind: role
version: v7
metadata:
  name: access-prod
spec:
  options:
    # 프로덕션 접근을 위한 세션별 MFA 요구
    require_session_mfa: true
  allow:
    node_labels:
      env: prod
    logins:
      - jerry
  deny: {}

올가는 두 역할을 모든 엔지니어에게 부여합니다. 제리가 노드 dev1.example.com에 로그인할 때(로그인 jerry로서 레이블 env: dev가 설정된 경우) 특별한 일이 발생하지 않습니다:

tsh ssh jerry@dev1.example.com

jerry@dev1.example.com >

그러나 제리가 노드 prod3.example.com에 로그인할 때(로그인 jerry로서 레이블 env: prod가 설정된 경우) MFA 체크를 요청받습니다:

tsh ssh jerry@prod3.example.com

Tap any security key <tap>


jerry@prod3.example.com >

OTP

제한된 환경에서 tsh를 사용하는 경우, tsh --mfa-mode=otp ssh prod3.example.com을 입력하여 OTP를 사용하도록 설정할 수 있습니다.

OTP는 세션별 MFA를 사용하는 경우에만 tsh 또는 Teleport Connect를 통해 연결을 설정하는 데 사용할 수 있습니다. Teleport의 웹 UI와 함께 사용할 경우 하드웨어 MFA 키가 필요합니다.

세션별 MFA가 클러스터 전체에서 활성화된 경우, 제리는 dev1.example.com에 로그인할 때도 MFA를 요청받습니다.

데이터베이스 접근을 위한 세션별 MFA

Teleport 데이터베이스 서비스는 연결별 MFA를 지원합니다. 제리가 데이터베이스 prod-mysql-instance에 연결할 때(레벨 env: prod에서) 각 tsh db connect 또는 tsh proxy db 호출에 대해 MFA 체크를 요청받습니다:

tsh db connect prod-mysql-instance

Tap any security key


MySQL 모니터에 오신 것을 환영합니다. 명령은 ; 또는 \g로 종료됩니다.

MySQL 연결 ID는 10002입니다.

서버 버전: 8.0.0-Teleport (Ubuntu)

저작권 (c) 2000, 2021, Oracle 및/또는 그 자회사.

Oracle은 Oracle Corporation 및/또는 그 자회사에 등록된 상표입니다. 기타 이름은 각 소유자의 상표일 수 있습니다.

'help;' 또는 '\h'를 입력하여 도움말을 얻을 수 있습니다. '\c'를 입력하여 현재 입력된 문장을 지울 수 있습니다.

mysql>

제한사항

이 기능에 대한 현재 제한사항은 다음과 같습니다:

  • 웹 UI 외의 SSH 연결의 경우, 세션별 MFA를 사용하려면 tsh 또는 Teleport Connect 클라이언트를 사용해야 합니다. (OpenSSH ssh 클라이언트는 세션별 MFA와 함께 작동하지 않습니다).
  • Kubernetes에 대해서는 오직 kubectl만이 세션별 WebAuthn 인증을 지원합니다.
  • 데스크탑 접근의 경우 오직 WebAuthn 장치만 지원됩니다.

다음 단계

Teleport 원문 보기