InfoGrab Docs

세션 참여

요약

Teleport는 여러 사용자가 동일한 SSH 또는 kubectl exec 세션에 참여할 수 있게 해줍니다. 세션에 참여할 때 사용자는 세 가지 참여자 모드 중 하나가 될 수 있습니다: 사용자는 명령줄 또는 Teleport 웹 UI에서 세션에 참여할 수 있습니다.

Teleport는 여러 사용자가 동일한 SSH 또는 kubectl exec 세션에 참여할 수 있게 해줍니다. 세션 참여는 웹 UI의 활성 세션 페이지를 통해 또는 tsh join 명령을 사용하여 수행할 수 있습니다.

참여자 모드#

세션에 참여할 때 사용자는 세 가지 참여자 모드 중 하나가 될 수 있습니다:

  • Observer(관찰자): 세션을 볼 수만 있습니다.
  • Peer(피어): 세션을 보고 세션 소유자인 것처럼 상호작용할 수 있습니다.
  • Moderator(중재자): (Enterprise 전용) 세션을 보고 종료할 수 있습니다.

사용자는 명령줄 또는 Teleport 웹 UI에서 세션에 참여할 수 있습니다.

웹 UI는 참여 전에 사용자가 참여 모드를 선택하도록 합니다. tsh join 또는 tsh kube join으로 세션에 참여하는 경우 --mode <mode> 명령줄 옵션으로 참여자 모드를 지정할 수 있습니다. 여기서 <mode>peer, moderator, 또는 observer입니다. 기본 참여자 모드는 observer입니다.

observer 또는 moderator 모드에서 단축키 ^c (Control + c)를 눌러 세션을 나갈 수 있습니다. moderator 모드에서는 언제든지 t를 눌러 세션을 강제로 종료할 수도 있습니다.

접근 제어#

역할의 join_sessions 필드를 사용하여 사용자가 참여할 수 있는 세션과 참여 조건을 지정할 수 있습니다. 예를 들어, 다음 역할은 사용자가 prod-access 역할을 가진 사용자가 시작한 SSH 및 Kubernetes 세션에 moderator 또는 observer로 참여할 수 있게 합니다:

kind: role
metadata:
  name: allow-session-join
version: v7
spec:
  allow:
    join_sessions:
      - name: Join prod sessions
        roles : ['prod-access']
        kinds: ['k8s', 'ssh']
        modes: ['moderator', 'observer']

join_sessions 허용 정책이 있는 역할이 할당된 사용자는 정책이 참여 권한을 부여하는 세션을 나열할 수 있는 권한이 암묵적으로 부여됩니다. 세션 나열을 방지하는 deny 규칙이 있는 경우 join_sessions 정책은 정책이 사용자에게 참여 권한을 부여하는 세션에 대한 deny 규칙을 재정의합니다. 세션 참여에 대한 이 예외 외에는 deny 문이 우선합니다.

join_sessions에 필요한 필드는 다음과 같습니다:

옵션 유형 설명
name 문자열 허용 정책의 이름.
roles 목록 허용 정책이 적용되는 Teleport 역할 이름 목록. 이러한 역할을 가진 사용자가 생성한 활성 세션에 이 정책에 따라 참여할 수 있습니다.
kinds 목록 허용 정책이 적용되는 세션 종류(SSH, Kubernetes 또는 둘 다). 유효한 옵션은 sshk8s입니다.
modes 목록 세션에 참여하는 사용자가 사용할 수 있는 참여자 모드(observer, moderator, 또는 peer). 기본 모드는 observer입니다.

세션에 참여할 권한 없이 활성 세션을 나열할 수 있는 권한을 사용자에게 부여하려면 session_tracker 리소스에 list 권한을 부여할 수 있습니다.

kind: role
metadata:
  name: list-active-sessions
version: v7
spec:
  allow:
    rules:
      - resources: [ session_tracker ]
        verbs: [ list ]

Teleport는 레거시 Teleport 역할과의 호환성을 위해 ssh_session 리소스에 대한 명시적 deny 규칙도 지원하지만, 새 역할에서는 ssh_session 리소스 사용을 권장하지 않습니다.

진행 조율 세션#

Teleport Enterprise에서는 세션이 시작되기 전에 한 명 이상의 추가 참여자가 참여하도록 역할을 구성할 수 있습니다. 추가 참여자가 필요한 세션을 진행 조율 세션(Moderated Sessions)이라고 합니다.

진행 조율 세션의 가장 일반적인 사용 사례는 다음과 같습니다:

  • 엄격한 보안 또는 컴플라이언스 요구 사항이 있어 특정 서버에서 사용자 세션을 감시해야 하는 경우.
  • 활성 세션을 일시 중지하거나 종료하는 기능이 필요한 경우.

예제#

다음 예제에서 Jeff의 역할은 시작되기 전에 추가 참여자를 필요로 합니다.

$ tsh ssh ubuntu@prod.teleport.example.com
Teleport > Creating session with ID: 46e2af03-62d6-4e07-a886-43fe741ca044...
Teleport > Controls
  - CTRL-C: Leave the session
  - t: Forcefully terminate the session (moderators only)
Teleport > User jeff joined the session.
Teleport > Waiting for required participants...

Jeff의 세션이 일시 중지되어 필요한 참여자를 기다립니다. auditor 역할이 할당된 Alice가 대기 중인 세션에 moderator로 참여하면 세션을 시작할 수 있습니다. 예를 들어:

$ tsh join --mode=moderator 46e2af03-62d6-4e07-a886-43fe741ca044
Teleport > Creating session with ID: 46e2af03-62d6-4e07-a886-43fe741ca044...
Teleport > Controls
  - CTRL-C: Leave the session
  - t: Forcefully terminate the session (moderators only)
Teleport > User jeff joined the session.
Teleport > Waiting for required participants...
Teleport > User alice joined the session.
Teleport > Connecting to prod.teleport.example.com over SSH

ubuntu@prod.teleport.example.com %

이 세션은 SSH 세션이므로 Alice는 Teleport 웹 UI에서도 참여할 수 있습니다. 예를 들어:

웹 UI에서 서버 세션 참여

접근 제어#

진행 조율 세션은 역할의 require_session_join 섹션을 통해 구성됩니다. 이 섹션은 세션 시작 또는 실행에 충족해야 하는 조건을 정의합니다. 예를 들어, 다음 정책은 prod-access 역할이 할당된 사용자가 SSH 또는 Kubernetes 세션을 시작하려면 auditor 역할을 가진 최소 한 명의 사용자가 moderator 모드로 참여해야 함을 지정합니다:

kind: role
metadata:
  name: prod-access
version: v7
spec:
  allow:
    require_session_join:
      - name: Require one moderator
        filter: 'contains(user.spec.roles, "auditor")'
        kinds: ['k8s', 'ssh']
        modes: ['moderator']
        count: 1
    logins: [ ubuntu, debian ]
    node_labels: { env: prod }
    kubernetes_labels: { env: prod }
    kubernetes_groups: [ prod-access ]
    kubernetes_users: [ USER ]
    kubernetes_resources:
    - kind: '*'
      name: '*'
      namespace: '*'
      verbs: ['*']

require_session_join 규칙은 다른 역할을 통해 접근 가능한 세션을 포함한 사용자의 모든 세션에 적용됩니다. 사용자 세션에 대해 진행 조율을 요구하지 않으려면 진행 조율이 필요한 리소스에 임시로 역할을 부여하는 접근 요청을 사용하는 것이 좋습니다.

require_session_join에 필요한 필드는 다음과 같습니다:

옵션 유형 설명
name 문자열 요구 정책의 이름
filter 필터 특정 사용자에 대해 평가가 true이면 해당 사용자가 진행 조율 세션에 참여할 수 있게 하는 표현식.
kinds 목록 정책이 적용되는 세션 종류(SSH, Kubernetes 또는 둘 다). 유효한 옵션은 sshk8s입니다.
modes 목록 진행 조율 세션에 참여하는 사용자가 정책을 충족하기 위해 일치해야 하는 참여자 모드(observer, moderator, 또는 peer).
count 정수 정책을 충족하기 위해 세션에 참여해야 하는 최소 사용자 수.

require_session_join에 선택적 필드는 다음과 같습니다:

옵션 유형 설명
on_leave 문자열 정책이 더 이상 충족되지 않을 때 취할 조치.

요구 정책에서 on_leave 필드를 사용하여 참여자가 세션을 나가 정책이 더 이상 충족되지 않을 때 어떻게 할지 정의할 수 있습니다. 이 필드에 가능한 두 가지 값이 있습니다:

  • terminate: 세션을 즉시 종료하고 모든 참여자의 연결을 끊습니다.
  • pause: 정책이 다시 충족될 때까지 세션을 일시 중지하고 입/출력 스트리밍을 중지합니다.

기본적으로 Teleport는 이 필드의 빈 문자열을 terminate와 동일하게 처리합니다.

세션 소유자에 연결된 모든 요구 정책이 pause로 설정된 경우 세션은 세션 참여자의 모든 입력을 무시하고 최신 출력을 버퍼링하지만 세션은 재개할 수 있도록 열린 상태를 유지합니다.

필터 표현식#

필터 표현식은 정책 범위를 보다 세밀하게 제어할 수 있게 해줍니다. 예를 들어, 필터 표현식을 사용하여 세션에 어떤 사용자가 참여해야 하는지 지정할 수 있습니다. 필터에는 rolesname 필드와 일치하도록 세밀하게 조정할 수 있는 user 객체가 컨텍스트로 있습니다.

다음 예제에서 필터 표현식은 사용자 이름이 adam이거나 사용자가 cs-observe 역할을 가진 경우 true로 평가됩니다:

equals(user.name, "adam") || contains(user.spec.roles, "cs-observe")

필터 표현식은 다음 함수와 연산자를 지원합니다:

  • contains(set, item): 항목이 집합에 있으면 true, 그렇지 않으면 false를 반환합니다. 집합은 문자열이나 배열일 수 있습니다.
  • equals(a, b): 두 값이 같으면 true, 그렇지 않으면 false를 반환합니다.
  • ![expr]: 불리언 표현식을 부정합니다.
  • [expr] && [expr]: 두 불리언 표현식에 대해 논리 AND를 수행합니다.
  • [expr] || [expr]: 두 불리언 표현식에 대해 논리 OR를 수행합니다.

요구 정책과 역할 결합#

정책과 역할을 평가할 때, 역할 내의 모든 요구 정책은 OR 연산자를 사용하여 평가되고 각 역할의 정책은 AND 연산자를 사용하여 평가됩니다. 실제로 이는 요구 정책이 하나 이상 있는 모든 역할에 대해 해당 역할이 할당된 사용자가 세션을 시작하기 전에 정책 중 하나가 충족되어야 함을 의미합니다.

리프 클러스터에서 진행 조율 세션 요구#

루트 클러스터에서 require_session_join 정책이 있는 역할을 생성하면 해당 역할이 할당된 사용자에 대해 루트 클러스터의 리소스에서 시작된 세션만 진행 조율이 필요합니다. 역할이 할당된 사용자가 리프 노드의 리소스에 연결하는 경우 매핑된 리프 역할에도 진행 조율이 요구되지 않는 한 세션에 진행 조율이 필요하지 않습니다. 리프 클러스터에서 진행 조율 세션을 요구하려면 리프 클러스터에 정의된 매핑 역할에 require_session_join 정책을 포함해야 합니다.

루트 및 리프 클러스터 간의 신뢰 관계 및 역할 매핑 구성에 대한 자세한 내용은 신뢰 클러스터 구성을 참조하세요.

다중 인증(MFA)#

세션별 MFA가 활성화된 경우 세션에 참여하려는 moderator는 자체 세션을 시작하는 것과 동일한 MFA 검사를 충족해야 합니다.

세션별 MFA가 필요한 경우 Teleport는 진행 조율 세션에 대한 추가 참여 확인도 적용합니다. 30초마다 Teleport는 세션 moderator에게 다음 15초 내에 MFA 장치로 재인증하여 참여를 확인하도록 요청합니다. 이 동작은 moderator가 항상 참여하여 세션을 감시하고 있는지 확인하기 위해 세션 내내 계속됩니다.

60초 내에 MFA 입력이 없으면 moderator가 세션에서 연결 해제되며, 이로 인해 요구 정책이 더 이상 충족되지 않아 세션이 종료되거나 일시 중지될 수 있습니다.

세션 초대#

tsh ssh 또는 tsh kube exec을 사용하여 대화형 SSH 또는 Kubernetes 세션을 시작할 때 --reason <reason> 또는 --invited <users> 명령줄 옵션을 사용하여 <reason>을 문자열로 또는 <users>를 쉼표로 구분된 사용자 이름 목록으로 지정할 수 있습니다.

이 정보는 session_tracker 리소스에 전파되며, 예를 들어 외부 통신 시스템을 통한 알림을 활성화하는 데 서드파티와 함께 사용할 수 있습니다.

파일 전송#

진행 조율 세션 내의 SFTP 파일 전송은 Teleport 웹 UI를 사용할 때만 지원됩니다. 현재 활성 세션에 진행 조율이 필요한 경우 파일 전송 요청이 자동으로 현재 세션 참여자 모두에게 전송되고 파일 전송이 시작되기 전에 승인되어야 합니다.

세션 발신자와 moderator(들) 모두 파일 전송 요청 알림을 받기 위해 파일 전송 초기화 중에 Teleport 웹 UI에 참여해 있어야 합니다. 파일 전송이 요청된 후 모든 세션 참여자에게 알림이 전송되고 파일 전송 요청을 승인하거나 거부하도록 요청됩니다.

승인/거부 프롬프트

moderator가 파일 전송 요청을 거부하면 요청이 즉시 제거되고 모든 세션 참여자에게 알림이 전송됩니다.

세션을 시작하는 데 사용된 정책을 충족하기에 충분한 승인이 주어진 후 파일 전송이 자동으로 시작됩니다.

참고#

세션 참여

원문 보기
요약

Teleport는 여러 사용자가 동일한 SSH 또는 kubectl exec 세션에 참여할 수 있게 해줍니다. 세션에 참여할 때 사용자는 세 가지 참여자 모드 중 하나가 될 수 있습니다: 사용자는 명령줄 또는 Teleport 웹 UI에서 세션에 참여할 수 있습니다.

Teleport는 여러 사용자가 동일한 SSH 또는 kubectl exec 세션에 참여할 수 있게 해줍니다. 세션 참여는 웹 UI의 활성 세션 페이지를 통해 또는 tsh join 명령을 사용하여 수행할 수 있습니다.

참여자 모드#

세션에 참여할 때 사용자는 세 가지 참여자 모드 중 하나가 될 수 있습니다:

  • Observer(관찰자): 세션을 볼 수만 있습니다.
  • Peer(피어): 세션을 보고 세션 소유자인 것처럼 상호작용할 수 있습니다.
  • Moderator(중재자): (Enterprise 전용) 세션을 보고 종료할 수 있습니다.

사용자는 명령줄 또는 Teleport 웹 UI에서 세션에 참여할 수 있습니다.

웹 UI는 참여 전에 사용자가 참여 모드를 선택하도록 합니다. tsh join 또는 tsh kube join으로 세션에 참여하는 경우 --mode <mode> 명령줄 옵션으로 참여자 모드를 지정할 수 있습니다. 여기서 <mode>peer, moderator, 또는 observer입니다. 기본 참여자 모드는 observer입니다.

observer 또는 moderator 모드에서 단축키 ^c (Control + c)를 눌러 세션을 나갈 수 있습니다. moderator 모드에서는 언제든지 t를 눌러 세션을 강제로 종료할 수도 있습니다.

접근 제어#

역할의 join_sessions 필드를 사용하여 사용자가 참여할 수 있는 세션과 참여 조건을 지정할 수 있습니다. 예를 들어, 다음 역할은 사용자가 prod-access 역할을 가진 사용자가 시작한 SSH 및 Kubernetes 세션에 moderator 또는 observer로 참여할 수 있게 합니다:

kind: role
metadata:
  name: allow-session-join
version: v7
spec:
  allow:
    join_sessions:
      - name: Join prod sessions
        roles : ['prod-access']
        kinds: ['k8s', 'ssh']
        modes: ['moderator', 'observer']

join_sessions 허용 정책이 있는 역할이 할당된 사용자는 정책이 참여 권한을 부여하는 세션을 나열할 수 있는 권한이 암묵적으로 부여됩니다. 세션 나열을 방지하는 deny 규칙이 있는 경우 join_sessions 정책은 정책이 사용자에게 참여 권한을 부여하는 세션에 대한 deny 규칙을 재정의합니다. 세션 참여에 대한 이 예외 외에는 deny 문이 우선합니다.

join_sessions에 필요한 필드는 다음과 같습니다:

옵션 유형 설명
name 문자열 허용 정책의 이름.
roles 목록 허용 정책이 적용되는 Teleport 역할 이름 목록. 이러한 역할을 가진 사용자가 생성한 활성 세션에 이 정책에 따라 참여할 수 있습니다.
kinds 목록 허용 정책이 적용되는 세션 종류(SSH, Kubernetes 또는 둘 다). 유효한 옵션은 sshk8s입니다.
modes 목록 세션에 참여하는 사용자가 사용할 수 있는 참여자 모드(observer, moderator, 또는 peer). 기본 모드는 observer입니다.

세션에 참여할 권한 없이 활성 세션을 나열할 수 있는 권한을 사용자에게 부여하려면 session_tracker 리소스에 list 권한을 부여할 수 있습니다.

kind: role
metadata:
  name: list-active-sessions
version: v7
spec:
  allow:
    rules:
      - resources: [ session_tracker ]
        verbs: [ list ]

Teleport는 레거시 Teleport 역할과의 호환성을 위해 ssh_session 리소스에 대한 명시적 deny 규칙도 지원하지만, 새 역할에서는 ssh_session 리소스 사용을 권장하지 않습니다.

진행 조율 세션#

Teleport Enterprise에서는 세션이 시작되기 전에 한 명 이상의 추가 참여자가 참여하도록 역할을 구성할 수 있습니다. 추가 참여자가 필요한 세션을 진행 조율 세션(Moderated Sessions)이라고 합니다.

진행 조율 세션의 가장 일반적인 사용 사례는 다음과 같습니다:

  • 엄격한 보안 또는 컴플라이언스 요구 사항이 있어 특정 서버에서 사용자 세션을 감시해야 하는 경우.
  • 활성 세션을 일시 중지하거나 종료하는 기능이 필요한 경우.

예제#

다음 예제에서 Jeff의 역할은 시작되기 전에 추가 참여자를 필요로 합니다.

$ tsh ssh ubuntu@prod.teleport.example.com
Teleport > Creating session with ID: 46e2af03-62d6-4e07-a886-43fe741ca044...
Teleport > Controls
  - CTRL-C: Leave the session
  - t: Forcefully terminate the session (moderators only)
Teleport > User jeff joined the session.
Teleport > Waiting for required participants...

Jeff의 세션이 일시 중지되어 필요한 참여자를 기다립니다. auditor 역할이 할당된 Alice가 대기 중인 세션에 moderator로 참여하면 세션을 시작할 수 있습니다. 예를 들어:

$ tsh join --mode=moderator 46e2af03-62d6-4e07-a886-43fe741ca044
Teleport > Creating session with ID: 46e2af03-62d6-4e07-a886-43fe741ca044...
Teleport > Controls
  - CTRL-C: Leave the session
  - t: Forcefully terminate the session (moderators only)
Teleport > User jeff joined the session.
Teleport > Waiting for required participants...
Teleport > User alice joined the session.
Teleport > Connecting to prod.teleport.example.com over SSH

ubuntu@prod.teleport.example.com %

이 세션은 SSH 세션이므로 Alice는 Teleport 웹 UI에서도 참여할 수 있습니다. 예를 들어:

웹 UI에서 서버 세션 참여

접근 제어#

진행 조율 세션은 역할의 require_session_join 섹션을 통해 구성됩니다. 이 섹션은 세션 시작 또는 실행에 충족해야 하는 조건을 정의합니다. 예를 들어, 다음 정책은 prod-access 역할이 할당된 사용자가 SSH 또는 Kubernetes 세션을 시작하려면 auditor 역할을 가진 최소 한 명의 사용자가 moderator 모드로 참여해야 함을 지정합니다:

kind: role
metadata:
  name: prod-access
version: v7
spec:
  allow:
    require_session_join:
      - name: Require one moderator
        filter: 'contains(user.spec.roles, "auditor")'
        kinds: ['k8s', 'ssh']
        modes: ['moderator']
        count: 1
    logins: [ ubuntu, debian ]
    node_labels: { env: prod }
    kubernetes_labels: { env: prod }
    kubernetes_groups: [ prod-access ]
    kubernetes_users: [ USER ]
    kubernetes_resources:
    - kind: '*'
      name: '*'
      namespace: '*'
      verbs: ['*']

require_session_join 규칙은 다른 역할을 통해 접근 가능한 세션을 포함한 사용자의 모든 세션에 적용됩니다. 사용자 세션에 대해 진행 조율을 요구하지 않으려면 진행 조율이 필요한 리소스에 임시로 역할을 부여하는 접근 요청을 사용하는 것이 좋습니다.

require_session_join에 필요한 필드는 다음과 같습니다:

옵션 유형 설명
name 문자열 요구 정책의 이름
filter 필터 특정 사용자에 대해 평가가 true이면 해당 사용자가 진행 조율 세션에 참여할 수 있게 하는 표현식.
kinds 목록 정책이 적용되는 세션 종류(SSH, Kubernetes 또는 둘 다). 유효한 옵션은 sshk8s입니다.
modes 목록 진행 조율 세션에 참여하는 사용자가 정책을 충족하기 위해 일치해야 하는 참여자 모드(observer, moderator, 또는 peer).
count 정수 정책을 충족하기 위해 세션에 참여해야 하는 최소 사용자 수.

require_session_join에 선택적 필드는 다음과 같습니다:

옵션 유형 설명
on_leave 문자열 정책이 더 이상 충족되지 않을 때 취할 조치.

요구 정책에서 on_leave 필드를 사용하여 참여자가 세션을 나가 정책이 더 이상 충족되지 않을 때 어떻게 할지 정의할 수 있습니다. 이 필드에 가능한 두 가지 값이 있습니다:

  • terminate: 세션을 즉시 종료하고 모든 참여자의 연결을 끊습니다.
  • pause: 정책이 다시 충족될 때까지 세션을 일시 중지하고 입/출력 스트리밍을 중지합니다.

기본적으로 Teleport는 이 필드의 빈 문자열을 terminate와 동일하게 처리합니다.

세션 소유자에 연결된 모든 요구 정책이 pause로 설정된 경우 세션은 세션 참여자의 모든 입력을 무시하고 최신 출력을 버퍼링하지만 세션은 재개할 수 있도록 열린 상태를 유지합니다.

필터 표현식#

필터 표현식은 정책 범위를 보다 세밀하게 제어할 수 있게 해줍니다. 예를 들어, 필터 표현식을 사용하여 세션에 어떤 사용자가 참여해야 하는지 지정할 수 있습니다. 필터에는 rolesname 필드와 일치하도록 세밀하게 조정할 수 있는 user 객체가 컨텍스트로 있습니다.

다음 예제에서 필터 표현식은 사용자 이름이 adam이거나 사용자가 cs-observe 역할을 가진 경우 true로 평가됩니다:

equals(user.name, "adam") || contains(user.spec.roles, "cs-observe")

필터 표현식은 다음 함수와 연산자를 지원합니다:

  • contains(set, item): 항목이 집합에 있으면 true, 그렇지 않으면 false를 반환합니다. 집합은 문자열이나 배열일 수 있습니다.
  • equals(a, b): 두 값이 같으면 true, 그렇지 않으면 false를 반환합니다.
  • ![expr]: 불리언 표현식을 부정합니다.
  • [expr] && [expr]: 두 불리언 표현식에 대해 논리 AND를 수행합니다.
  • [expr] || [expr]: 두 불리언 표현식에 대해 논리 OR를 수행합니다.

요구 정책과 역할 결합#

정책과 역할을 평가할 때, 역할 내의 모든 요구 정책은 OR 연산자를 사용하여 평가되고 각 역할의 정책은 AND 연산자를 사용하여 평가됩니다. 실제로 이는 요구 정책이 하나 이상 있는 모든 역할에 대해 해당 역할이 할당된 사용자가 세션을 시작하기 전에 정책 중 하나가 충족되어야 함을 의미합니다.

리프 클러스터에서 진행 조율 세션 요구#

루트 클러스터에서 require_session_join 정책이 있는 역할을 생성하면 해당 역할이 할당된 사용자에 대해 루트 클러스터의 리소스에서 시작된 세션만 진행 조율이 필요합니다. 역할이 할당된 사용자가 리프 노드의 리소스에 연결하는 경우 매핑된 리프 역할에도 진행 조율이 요구되지 않는 한 세션에 진행 조율이 필요하지 않습니다. 리프 클러스터에서 진행 조율 세션을 요구하려면 리프 클러스터에 정의된 매핑 역할에 require_session_join 정책을 포함해야 합니다.

루트 및 리프 클러스터 간의 신뢰 관계 및 역할 매핑 구성에 대한 자세한 내용은 신뢰 클러스터 구성을 참조하세요.

다중 인증(MFA)#

세션별 MFA가 활성화된 경우 세션에 참여하려는 moderator는 자체 세션을 시작하는 것과 동일한 MFA 검사를 충족해야 합니다.

세션별 MFA가 필요한 경우 Teleport는 진행 조율 세션에 대한 추가 참여 확인도 적용합니다. 30초마다 Teleport는 세션 moderator에게 다음 15초 내에 MFA 장치로 재인증하여 참여를 확인하도록 요청합니다. 이 동작은 moderator가 항상 참여하여 세션을 감시하고 있는지 확인하기 위해 세션 내내 계속됩니다.

60초 내에 MFA 입력이 없으면 moderator가 세션에서 연결 해제되며, 이로 인해 요구 정책이 더 이상 충족되지 않아 세션이 종료되거나 일시 중지될 수 있습니다.

세션 초대#

tsh ssh 또는 tsh kube exec을 사용하여 대화형 SSH 또는 Kubernetes 세션을 시작할 때 --reason <reason> 또는 --invited <users> 명령줄 옵션을 사용하여 <reason>을 문자열로 또는 <users>를 쉼표로 구분된 사용자 이름 목록으로 지정할 수 있습니다.

이 정보는 session_tracker 리소스에 전파되며, 예를 들어 외부 통신 시스템을 통한 알림을 활성화하는 데 서드파티와 함께 사용할 수 있습니다.

파일 전송#

진행 조율 세션 내의 SFTP 파일 전송은 Teleport 웹 UI를 사용할 때만 지원됩니다. 현재 활성 세션에 진행 조율이 필요한 경우 파일 전송 요청이 자동으로 현재 세션 참여자 모두에게 전송되고 파일 전송이 시작되기 전에 승인되어야 합니다.

세션 발신자와 moderator(들) 모두 파일 전송 요청 알림을 받기 위해 파일 전송 초기화 중에 Teleport 웹 UI에 참여해 있어야 합니다. 파일 전송이 요청된 후 모든 세션 참여자에게 알림이 전송되고 파일 전송 요청을 승인하거나 거부하도록 요청됩니다.

승인/거부 프롬프트

moderator가 파일 전송 요청을 거부하면 요청이 즉시 제거되고 모든 세션 참여자에게 알림이 전송됩니다.

세션을 시작하는 데 사용된 정책을 충족하기에 충분한 승인이 주어진 후 파일 전송이 자동으로 시작됩니다.

참고#