텔레포트의 Just-in-time 접근 요청을 통해 사용자는 권한을 상승시키기 위해 추가 역할에 대한 접근을 요청할 수 있습니다. 요청은 ChatOps를 통해 또는 유연한 권한 부여 워크플로우 API를 통해 다른 곳에서도 에스컬레이션할 수 있습니다.
필수 조건
-
실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하기 무료 체험판을 이용해 보세요.
-
tctl
관리 도구 및tsh
클라이언트 도구 버전 >= 16.2.0.tctl
및tsh
다운로드 방법에 대한 지침은 설치를 방문하세요.
- 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오. 예를 들어:클러스터에 연결하고tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다. 자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다.
RBAC 설정
이 예제에서는 세 가지 역할을 정의합니다:
contractor
: 이 역할을 가진 사용자는dba
역할에 대한 향상된 접근을 요청할 수 있습니다.dba
: 이 역할은 데이터베이스에 대한 접근을 허용합니다.approver
: 이 역할을 가진 사용자는dba
역할에 대한 접근 요청을 승인할 수 있습니다.
계약자 역할
이 역할을 가진 사용자는 dba
역할에 대한 접근을 요청할 수 있습니다.
kind: 역할
version: v5
metadata:
name: contractor
spec:
allow:
request:
roles: ['dba']
DBA 역할
이 역할은 데이터베이스에 대한 접근을 허용합니다.
kind: 역할
version: v5
metadata:
name: dba
spec:
allow:
db_labels:
'*': '*'
options:
# 계약자가 요청 시점부터 1시간 동안만 이 역할을 사용할 수 있도록 허용합니다.
max_session_ttl: 1h
승인자 역할
이 역할은 사용자가 dba
역할에 대한 요청을 승인할 수 있도록 허용합니다.
kind: 역할
version: v5
metadata:
name: approver
spec:
allow:
# `review_requests`는 나열된 역할을 승인할 수 있도록 허용합니다.
review_requests:
roles:
- 'dba'
review_requests
규칙이 포함된 역할은 텔레포트 엔터프라이즈에서만 사용할 수 있습니다.
텔레포트 커뮤니티 에디션에서는 액세스 요청이 관리자가 Auth Server에서
tctl
을 실행하여 승인해야 합니다.
접근 요청
텔레포트 엔터프라이즈는 역할에 대한 요청을 위한 동일한 CLI 기반 워크플로를 지원하지만, 대부분의 사용자는 웹 UI를 통해 접근 요청을 하는 것을 선호합니다.
하나 이상의 역할에 대한 접근을 요청하려면, 접근 요청 페이지로 이동합니다. 이 페이지를 찾으려면 사이드 바에서 리소스를 선택하고, 접근 요청 메뉴를 확장한 다음 새 요청을 선택합니다.
여기서 드롭다운을 사용하여 역할이나 특정 리소스에 대한 접근을 요청할 수 있습니다. 이 드롭다운에서 역할을 선택하면 요청할 수 있는 역할 목록이 표시됩니다.
대기 중인 요청에 역할을 포함하려면 요청에 추가를 클릭합니다.
참고: 접근 요청은 역할이나 특정 리소스 집합을 포함해야 합니다. 두 가지를 혼합할 수 없습니다. 특정 리소스에 대한 접근 요청 방법에 대한 자세한 내용은 리소스 접근 요청 가이드를 참조하십시오.
원하는 역할이 모두 추가되면 요청 진행을 클릭하여 요청을 검토하고 제출하십시오.
웹 UI를 통한 접근 요청 검토
검토자는 웹 UI에서 관리 > 접근 요청 > 요청 검토로 이동하여 열려 있는 요청 목록을 볼 수 있습니다.
다른 역할을 편집할 수 있는 역할에 대한 접근을 부여하면 사용자가 영구적으로 자신의 권한을 상승시키는 것을 허용할 수 있습니다. 요청을 검토할 때는 요청되는 역할과 요청이 승인될 경우 사용자에게 적용될 권한을 신중하게 고려하는 것이 중요합니다.
tsh
를 통한 접근 요청 검토
적절한 권한이 있는 텔레포트 엔터프라이즈 사용자는 tsh
명령줄로 요청을 승인할 수도 있습니다:
tsh request review --approve <request-id>
승인된 접근 요청 사용하기
요청이 승인되고 요청자는 명령줄 및 웹 UI 워크플로 모두에서 접근을 상승시킬 수 있습니다.
명령줄에서 사용할 때, 요청자는 승인된 요청 ID를 사용하여 로그인해야 합니다:
승인된 접근 요청으로 로그인
tsh login --request-id=bc8ca931-fec9-4b15-9a6f-20c13c5641a9
웹 UI에서 요청자는 요청 검토 페이지에서 자신의 요청을 열고 역할 가정을 클릭하여 추가 역할에 대한 접근을 얻을 수 있습니다. 참고: 역할 기반 접근 요청은 추가적입니다. 사용자는 요청에 의해 부여된 역할 외에도 기본 역할 세트에 접근할 수 있습니다.
승인된 접근 요청이 활성화된 동안 페이지 상단에 배너가 표시됩니다. 더 이상 상승된 접근이 필요하지 않을 경우 원래 역할로 전환을 클릭하여 원래의 역할 세트로 되돌릴 수 있습니다.
다음 단계
SSH 자동 접근 요청
역할 접근 요청을 구성한 후,
tsh ssh
는 접근이 거부될 때 역할 접근 요청을 자동으로 생성할 수 있으며,
tsh request search
및 tsh request create
단계를 건너뛸 수 있습니다.
대상 노드에 접근할 수 있는 여러 역할이 있는 경우 요청할 역할을 선택하라는 메시지가 표시됩니다.
tsh ssh --request-mode role alice@iotERROR: access denied to alice connecting to iot on cluster teleport.example.com
현재 alice@iot에 대한 접근 권한이 없으며, 접근 요청을 시도합니다.
요청할 역할 선택 [node-access, node-access-alt]: node-access요청 사유 입력: please요청 생성 중...
요청 승인 대기 중...
승인 받음, 사유="okay"업데이트된 인증서 받기...
iot:~ alice$
이와 같은 방식으로 역할 접근 요청을 생성하려면, 요청하는 역할에 search_as_role
이 설정되어 있어야 하며,
접속하려는 노드를 읽을 수 있어야 합니다.
# requester.yaml
kind: 역할
version: v5
metadata:
name: requester
spec:
allow:
request:
roles:
- node-access
search_as_roles:
# 역할과 일치할 필요는 없으며,
# ssh 접속하려는 노드에 접근할 수 있어야 합니다.
- access
외부 도구 통합
텔레포트의 접근 요청 플러그인을 사용하면 사용자가 조직의 기존 메시징 및 프로젝트 관리 솔루션 내에서 접근 요청을 관리할 수 있습니다.
통합 | 유형 | 설정 지침 |
---|---|---|
Slack | 메시징 | Slack 설정하기 |
Mattermost | 메시징 | Mattermost 설정하기 |
Microsoft Teams | 메시징 | Microsoft Teams 설정하기 |
Jira | 프로젝트 보드 | Jira 설정하기 |
PagerDuty | 일정 | PagerDuty 설정하기 |
이메일 | 메시징 | 이메일 설정하기 |
Discord | 메시징 | Discord 설정하기 |
OpsGenie | 사고 관리 | OpsGenie 설정하기 |
ServiceNow | 워크플로우 | ServiceNow 설정하기 |
접근 요청 구성 방법 배우기
자세한 설명은 접근 요청 구성 가이드를 참조하십시오. 조직의 즉시 접근 요청 워크플로를 설정하는 데 사용할 수 있는 모든 옵션을 설명합니다.
접근 목록 설정
접근 목록을 사용하면 고정된 기간 동안 사용자 그룹에 권한을 부여할 수 있습니다. 접근 목록에 대한 자세한 내용은 문서를 참조하십시오.