작동 방식
Teleport의 액세스 모니터링 규칙을 사용하면 액세스 요청 알림을 여러 조건에 따라 플러그인으로 라우팅할 수 있습니다. 예를 들어, 어떤 역할이나 리소스에 접근하고 있는지 또는 요청을 하고 있는 사용자가 누구인지에 따라 서로 다른 슬랙 채널로 알림을 보내고 싶을 수 있습니다.
현재 액세스 요청 알림 라우팅 규칙을 지원하는 호스팅 플러그인의 하위 집합만 사용할 수 있습니다. 우리는 나머지 호스팅 플러그인으로 지원을 확장하기 위해 작업하고 있습니다. 새로 추가되는 플러그인에 대해 알아보려면 Teleport의 변경 로그를 주의 깊게 살펴보세요.
전제 조건
-
관리되는 Teleport Enterprise 계정.
-
tctl
관리 도구와tsh
클라이언트 도구 버전 >= 16.2.0.설치된 도구를 확인하려면 다음 명령을 실행하십시오:
tctl versionTeleport Enterprise v16.2.0 go1.22
tsh versionTeleport v16.2.0 go1.22
이러한 도구는 귀하의 환경 및 Teleport 버전에 대한 적절한 설치 지침을 따라 다운로드할 수 있습니다.
-
액세스 모니터링 규칙을 지원하는 최소한 하나의 Teleport 액세스 플러그인이 등록되어 있어야 합니다.
-
당신의 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
명령어를 실행할 수도 있습니다.
1단계/2. 액세스 모니터링 규칙 만들기
액세스 요청 알림 규칙을 정의하는 두 가지 방법이 있습니다:
- 웹 UI 대화 상자를 사용하기.
- 규칙 정의가 포함된 YAML 리소스 파일 생성하기.
웹 UI를 통한 액세스 모니터링 규칙 생성
웹 UI를 통해 액세스 모니터링 규칙을 생성하려면 먼저 액세스 요청 페이지로 이동하여 알림 라우팅 규칙 보기
를 클릭합니다.
그런 다음 알림 규칙 생성
을 클릭합니다.
액세스 모니터링 규칙 기반 라우팅을 지원하는 플러그인이 등록되어 있지 않으면 UI가 등록하라는 메시지를 표시합니다.
YAML 리소스를 사용하여 액세스 모니터링 규칙 만들기
다음은 액세스 모니터링 규칙의 예입니다. 이 규칙은 your_role_name
역할이 포함된 액세스 요청이 생성되면 슬랙 플러그인을 통해 your_slack_channel
에 알림을 보냅니다.
kind: access_monitoring_rule
version: v1
metadata:
name: your-plugin-name
spec:
subjects: ['access_request']
condition: 'access_request.spec.roles.contains("your_role_name")'
notification:
name: 'slack'
recipients: ['your_slack_channel']
위의 라우팅 규칙은 명령줄에서 tctl create -f your-file-name.yaml
을 사용하여 생성할 수 있습니다.
액세스 모니터링 규칙에서 여러 수신자를 지정할 수 있습니다. 규칙의 조건 필드는 규칙이 적용될 조건을 정의하는 술어 표현으로 설정됩니다.
현재 지원되는 액세스 요청의 필드는 다음과 같습니다.
필드 | 설명 |
---|---|
access_request.spec.roles | 요청된 역할 집합. |
access_request.spec.suggested_reviewers | 요청에 지정된 리뷰어 집합. |
access_request.spec.system_annotations | 요청의 시스템 주석 맵. |
access_request.spec.user | 요청한 사용자. |
access_request.spec.request_reason | 요청 이유. |
access_request.spec.creation_time | 요청의 생성 시간. |
access_request.spec.expiry | 요청의 만료 시간. |
액세스 모니터링 규칙의 조건에 사용되는 술어 표현은 true 또는 false로 평가되어야 합니다.
조건 필드의 예시 값과 가능한 사용 용도는 다음과 같습니다.
access_request.spec.user == "some_user"
- 요청하는 사용자를 기반으로 라우팅.access_request.spec.roles.contains("some_role")
- 요청된 역할을 기반으로 라우팅.access_request.spec.roles.contains_any(set("role_1", "role_2"))
- 여러 역할을 기반으로 라우팅.
2단계/2. 새 액세스 모니터링 규칙 테스트
위의 예제 규칙에서 슬랙 플러그인에 대해:
- 역할 "your_role_name"을 선택한 역할로 대체합니다.
- "your_slack_channel"을 플러그인이 액세스할 수 있는 슬랙 채널로 대체합니다.
그런 다음 규칙에 지정한 역할에 대한 액세스 요청을 생성하세요.
그런 다음 액세스 모니터링 규칙에서 이전에 설정한 슬랙 채널을 확인하여 알림이 전송되었는지 확인하십시오.
Teleport 관리자는 tctl
을 사용하여 다른 사용자의 액세스 요청을 생성할 수 있습니다:
tctl request create myuser --roles=editor
사용자는 tsh
를 사용하여 액세스 요청을 생성하고 승인된 역할로 로그인할 수 있습니다:
tsh request create --roles=editor요청 승인 중... (id: 8f77d2d1-2bbf-4031-a300-58926237a807)
사용자는 "액세스 요청" 탭을 방문하고 "새 요청"을 클릭하여 웹 UI를 사용하여 액세스를 요청할 수 있습니다: