Infograb logo
텔레포트 커뮤니티 에디션 역할 접근 요청

정시 접근 요청은 텔레포트 엔터프라이즈의 기능입니다.

텔레포트 커뮤니티 에디션 사용자는 텔레포트 CLI를 사용하여 역할을 요청함으로써 접근 요청이 작동하는 방식의 미리 보기를 얻을 수 있습니다. 전체 접근 요청 기능, 리소스 접근 요청 및 직관적이고 검색 가능한 UI는 텔레포트 엔터프라이즈에서 사용할 수 있습니다.

RBAC 보안 설정

텔레포트의 역할 기반 접근 제어(RBAC)는 사용자가 어떤 역할에 접근 요청을 할 수 있는지를 구성할 수 있도록 해줍니다. 이 예제에서는 두 개의 역할을 정의하겠습니다:

  • contractor: 이 역할을 가진 사용자는 dba 역할에 대한 Elevated 접근을 요청할 수 있습니다.
  • dba: 이 역할은 데이터베이스에 대한 접근을 부여합니다.

요청 승인자를 위한 역할은 없습니다. 요청 승인 규칙은 텔레포트 엔터프라이즈에서만 구성할 수 있기 때문입니다. 텔레포트 커뮤니티 에디션에서는 tctl을 Auth 서버에서 실행하여 승인이 수행되어야 합니다.

Contractor 역할

이 역할을 가진 사용자는 dba 역할에 대한 접근을 요청할 수 있습니다.

kind: role
version: v5
metadata:
  name: contractor
spec:
  allow:
    request:
      roles: ['dba']

이 역할을 contractor-role.yaml 파일에 정의하고 tctl로 생성합니다:

tctl create contractor-role.yaml

사용자(alice 예시)에게 이 역할을 할당하려면 tctl을 사용합니다:

tctl users update --set-roles \ $(tctl get users/alice --format=json | jq -r '.[].spec.roles | join(",")'),contractor alice

DBA 역할

이 역할은 데이터베이스에 대한 접근을 부여합니다.

kind: role
version: v5
metadata:
  name: dba
spec:
  allow:
    db_labels:
      '*': '*'
  options:
    # 요청 시점부터 계약자가 이 역할을 1시간 동안만 사용할 수 있도록 허용합니다.
    max_session_ttl: 1h

이 역할을 dba-role.yaml 파일에 정의하고 tctl로 생성합니다:

tctl create dba-role.yaml

접근 요청

텔레포트 커뮤니티 에디션에서는 요청이 tsh CLI에서 이루어집니다. 접근 요청을 생성하려면 tsh request create 명령을 사용합니다.

tsh request create \ --roles=dba \ --reviewers=bob \ --reason="오늘 밤 DB 마이그레이션 수행"

기본적으로 이 명령은 요청이 승인될 때까지 블록합니다. 승인을 기다리지 않고 요청을 제출하려면 --nowait 플래그를 추가합니다.

또한, tsh는 로그인 과정 중 자동으로 접근 요청을 생성할 수 있습니다. 이 동작을 활성화하려면 --request-roles 플래그를 지정합니다:

tsh login --user=alice --request-roles=dba

요청 승인을 기다리는 중... (id: bc8ca931-fec9-4b15-9a6f-20c13c5641a9)

이것은 요청이 승인된 후 자동으로 dba 역할로 자격 증명을 발급하도록 대기합니다.

로그인 후 승인을 기다리지 않고 요청을 제출하려면 --request-nowait 플래그를 추가합니다. 이 경우, 로그인 시 일반적인 역할을 받게 되고 요청이 승인된 후에 접근을 올려야 합니다.

승인된 접근 요청으로 로그인

tsh login --request-id=bc8ca931-fec9-4b15-9a6f-20c13c5641a9

요청을 나열하려면 tsh request ls를 사용합니다.

tsh request ls

토큰 요청자 메타데이터 생성일시 (UTC) 상태

------------------------------------ --------- -------------- ------------------- -------

bc8ca931-fec9-4b15-9a6f-20c13c5641a9 alice roles=dba 07 Nov 19 19:38 UTC PENDING

요청 검토

텔레포트 커뮤니티 에디션에서는 접근 요청이 tctl을 Auth 서버에서 실행할 수 있는 클러스터 관리자가 검토해야 합니다.

관리자는 tctl requests ls로 요청을 나열할 수 있으며, 특정 요청의 세부사항은 tctl requests get <id>로 확인할 수 있습니다.

요청을 승인하거나 거부하려면 tctl request approve 또는 tctl request deny를 사용합니다. 예를 들어 요청을 거부하려면:

tctl request deny \ --reason="오늘의 마이그레이션이 취소되었습니다" \ bc8ca931-fec9-4b15-9a6f-20c13c5641a9
Warning

다른 역할을 편집할 수 있는 역할에 대한 접근을 부여하면 사용자가 영구적으로 자신의 권한을 상승시킬 수 있습니다. 요청을 검토할 때 요청된 역할과 요청이 승인될 경우 사용자에게 적용될 권한을 신중하게 고려하는 것이 중요합니다.

검토자는 요청에서 설정된 역할을 무시하면서 요청을 승인할 수 있습니다:

tctl request approve \ --roles="db-support" \ --reason="db-support에 대한 접근을 승인, dba는 필요하지 않음" \ bc8ca931-fec9-4b15-9a6f-20c13c5641a9

다음 단계

  • 접근 요청에 대해 자세히 알아보세요.
  • 텔레포트 엔터프라이즈에서 역할 요청에 대해 어떤 추가 기능이 제공되는지 확인하세요.
  • 텔레포트 엔터프라이즈에서 특정 리소스에 접근을 요청하세요.
Teleport 원문 보기