인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
텔레포트 커뮤니티 에디션 역할 접근 요청
정시 접근 요청은 텔레포트 엔터프라이즈의 기능입니다.
텔레포트 커뮤니티 에디션 사용자는 텔레포트 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