Infograb logo
Teleport 커뮤니티 에디션 역할 접근 요청

Just-in-time 접근 요청은 Teleport Enterprise의 기능입니다.

Teleport 커뮤니티 에디션 사용자는 Teleport CLI를 사용하여 역할을 요청함으로써 접근 요청이 어떻게 작동하는지 미리 볼 수 있습니다. 리소스 접근 요청 및 직관적이고 검색 가능한 UI를 포함한 전체 접근 요청 기능은 Teleport Enterprise에서 사용할 수 있습니다.

RBAC 보안 설정

Teleport의 역할 기반 접근 제어(RBAC)는 사용자가 어떤 역할에 접근을 요청할 수 있는지를 구성할 수 있게 해줍니다. 이 예제에서는 두 가지 역할을 정의합니다:

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

요청 승인자를 위한 역할은 존재하지 않습니다. 요청 승인 규칙은 Teleport Enterprise에 대해서만 구성할 수 있습니다. Teleport 커뮤니티 에디션에서는 tctl 을 Auth Server에서 실행하여 승인을 수행해야 합니다.

Contractor 역할

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

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

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

tctl create contractor-role.yaml

tctl 을 사용하여 이 역할을 사용자(alice 예시)를 위해 할당합니다:

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

접근 요청하기

Teleport 커뮤니티 에디션에서는 요청이 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 대기 중

요청 검토

Teleport Community Edition에서 Access Requests는 Auth Server에서 tctl 을 실행할 수 있는 클러스터 관리자가 검토해야 합니다.

관리자는 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

다음 단계

  • Access Requests에 대해 자세히 알아보기
  • Teleport Enterprise에서 역할 요청에 대해 추가로 사용할 수 있는 기능 확인
  • Teleport Enterprise를 사용하여 특정 리소스에 대한 액세스 요청하기
Teleport 원문 보기