Teleport Community Edition 역할 접근 요청
적시 접근 요청은 Teleport Enterprise의 기능입니다. Teleport Community Edition 사용자는 Teleport CLI를 사용하여 역할을 요청하여 접근 요청이 작동하는 방식을 미리 확인할 수 있습니다.
적시 접근 요청은 Teleport Enterprise의 기능입니다.
Teleport Community Edition 사용자는 Teleport CLI를 사용하여 역할을 요청하여 접근 요청이 작동하는 방식을 미리 확인할 수 있습니다. 리소스 접근 요청 및 직관적이고 검색 가능한 UI를 포함한 전체 접근 요청 기능은 Teleport Enterprise에서 사용할 수 있습니다.
RBAC 보안 설정#
Teleport의 역할 기반 접근 제어(RBAC)를 통해 사용자가 어떤 역할에 대한 접근을 요청할 수 있는지 구성할 수 있습니다. 이 예시에서는 두 가지 역할을 정의합니다:
contractor: 이 역할을 가진 사용자는dba역할에 대한 상승된 접근을 요청할 수 있습니다.dba: 이 역할은 데이터베이스에 대한 접근을 부여합니다.
요청 승인자에 대한 역할이 없는 이유는 요청 승인 규칙이 Teleport Enterprise에서만 구성할 수 있기 때문입니다. Teleport Community Edition에서 승인은 Teleport Auth Service에서 tctl을 실행하여 수행해야 합니다.
계약자 역할
이 역할을 가진 사용자는 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:
# Only allows the contractor to use this role for 1 hour from time of request.
max_session_ttl: 1h
이 역할을 dba-role.yaml 파일에 정의하고 tctl로 만듭니다:
$ tctl create dba-role.yaml
접근 요청#
Teleport Community Edition에서 요청은 tsh CLI에서 만들어집니다. 접근 요청을 만들려면 tsh request create 명령을 사용합니다.
$ tsh request create \
--roles=dba \
--reviewers=bob \
--reason="performing DB migration tonight"
기본적으로 이 명령은 요청이 승인될 때까지 대기합니다. 승인을 기다리지 않고 요청을 제출하려면 --nowait 플래그를 추가합니다.
또는 tsh는 로그인 프로세스 중에 자동으로 접근 요청을 만들 수 있습니다. 이 동작을 활성화하려면 --request-roles 플래그를 지정합니다:
$ tsh login --user=alice --request-roles=dba
# Seeking request approval... (id: bc8ca931-fec9-4b15-9a6f-20c13c5641a9)
이렇게 하면 요청이 승인될 때까지 대기하고, 요청이 승인되면 자동으로 dba 역할로 자격 증명을 발급합니다.
승인을 기다리지 않고 로그인하고 요청을 제출하려면 --request-nowait 플래그를 추가합니다. 이 시나리오에서는 로그인 시 일반 역할을 받고, 요청이 승인된 후 접근을 높일 수 있습니다.
# log in with an approved access request
$ tsh login --request-id=bc8ca931-fec9-4b15-9a6f-20c13c5641a9
tsh request ls를 사용하여 요청을 나열할 수 있습니다.
$ tsh request ls
# Token Requestor Metadata Created At (UTC) Status
# ------------------------------------ --------- -------------- ------------------- -------
# bc8ca931-fec9-4b15-9a6f-20c13c5641a9 alice roles=dba 07 Nov 19 19:38 UTC PENDING
요청 검토#
Teleport Community Edition에서 접근 요청은 Auth Service에서 tctl을 실행할 수 있는 클러스터 관리자가 검토해야 합니다.
관리자는 tctl requests ls로 요청을 나열하고, tctl requests get <id>로 특정 요청의 세부 정보를 볼 수 있습니다.
요청을 승인하거나 거부하려면 tctl request approve 또는 tctl request deny를 사용합니다. 예를 들어, 요청을 거부하려면:
$ tctl request deny \
--reason="today's migration has been canceled" \
bc8ca931-fec9-4b15-9a6f-20c13c5641a9
경고: 다른 역할을 편집할 수 있는 역할에 대한 접근을 부여하면 사용자가 영구적으로 권한을 업그레이드할 수 있습니다. 요청을 검토할 때 요청된 역할과 요청이 승인된 경우 사용자에게 적용되는 권한을 신중하게 고려하는 것이 중요합니다.
검토자는 요청의 역할 세트를 재정의하면서 요청을 승인할 수 있습니다:
$ tctl request approve \
--roles="db-support" \
--reason="approved access to db-support, dba is not necessary" \
bc8ca931-fec9-4b15-9a6f-20c13c5641a9
