Infograb logo
라우팅 액세스 요청 알림

작동 방식

Teleport의 액세스 모니터링 규칙을 사용하면 액세스 요청 알림을 여러 조건에 따라 플러그인으로 라우팅할 수 있습니다. 예를 들어, 어떤 역할이나 리소스에 접근하고 있는지 또는 요청을 하고 있는 사용자가 누구인지에 따라 서로 다른 슬랙 채널로 알림을 보내고 싶을 수 있습니다.

현재 액세스 요청 알림 라우팅 규칙을 지원하는 호스팅 플러그인의 하위 집합만 사용할 수 있습니다. 우리는 나머지 호스팅 플러그인으로 지원을 확장하기 위해 작업하고 있습니다. 새로 추가되는 플러그인에 대해 알아보려면 Teleport의 변경 로그를 주의 깊게 살펴보세요.

전제 조건

  • 관리되는 Teleport Enterprise 계정.

  • tctl 관리 도구와 tsh 클라이언트 도구 버전 >= 16.2.0.

    설치된 도구를 확인하려면 다음 명령을 실행하십시오:

    tctl version

    Teleport Enterprise v16.2.0 go1.22


    tsh version

    Teleport v16.2.0 go1.22

    이러한 도구는 귀하의 환경 및 Teleport 버전에 대한 적절한 설치 지침을 따라 다운로드할 수 있습니다.

  • 액세스 모니터링 규칙을 지원하는 최소한 하나의 Teleport 액세스 플러그인이 등록되어 있어야 합니다.

  • 당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면, tsh login으로 로그인한 다음 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오.

    예를 들어:

    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl 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를 사용하여 액세스를 요청할 수 있습니다:

Teleport 원문 보기