Infograb logo
ServiceNow를 통한 접근 요청

Teleport의 ServiceNow 통합으로 엔지니어들은 인프라에 접근하여 신속하게 사고를 해결할 수 있습니다. 이는 장기간의 관리 권한을 부여하지 않고도 사고 해결이 가능하게 하여 공격에 대한 잠재적 벡터가 될 수 있습니다.

Teleport의 ServiceNow 통합을 통해 Teleport 접근 요청을 ServiceNow 사고로 처리하고, 적절한 온콜 팀에 알림을 보내며, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다. 또한 요청자가 특정 온콜 순번에 있을 경우 접근 요청을 자동으로 승인하도록 플러그인을 구성할 수도 있습니다.

이 가이드는 Teleport의 접근 요청 플러그인을 ServiceNow에 설정하는 방법을 설명합니다.

전제 조건

  • 실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하기 무료 체험판을 이용해 보세요.

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

    tctltsh 다운로드 방법에 대한 지침은 설치를 방문하세요.

  • 'incident' 테이블에 읽기 및 쓰기 권한이 있는 ServiceNow 계정.
  • 당신의 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단계/4. 서비스 생성

우리는 특정 사용자가 접근 요청을 생성할 때 사고를 생성하도록 ServiceNow 플러그인을 구성할 것입니다.

2단계/4. RBAC 리소스 정의

Teleport ServiceNow 플러그인은 Teleport Auth Service로부터 접근 요청 이벤트를 수신하고, 이러한 이벤트를 기반으로 ServiceNow API와 상호작용합니다.

접근 요청을 하기에 앞서 요청자가 requester 역할을 가지고 있는지 확인하세요.

플러그인이 자동 승인 흐름을 위해 확인해야 할 ServiceNow 순번을 알기 위해, 사용자가 확인될 순번은 요청자의 역할 중 하나에 포함되어야 합니다. 이를 위해 다음 예시와 같이 teleport.dev/schedules 주석을 추가하세요:

kind: role
version: v5
metadata:
  name: YOUR_ROLE_NAME_HERE
spec:
  allow:
    request:
      roles: ['editor']
      thresholds:
        - approve: 1
          deny: 1
      annotations:
        teleport.dev/schedules:
        - YOUR_SERVICENOW_ROTA_ID_HERE

ServiceNow 순번 ID를 가져오려면, 해당 순번이 속한 ServiceNow 그룹의 그룹 레코드로 이동하여 헤더를 우클릭한 후 'Select copy sys_id'를 클릭하여 ID를 복사하세요.

그 다음, ServiceNow 엔드포인트 /api/now/on_call_rota/workbench/group/{groupSysId}를 사용하여 그룹의 온콜 순번 정보를 가져옵니다. 응답에서 원하는 'rota' 값을 선택하세요.

3단계/4. ServiceNow 플러그인 구성

이 시점에서, ServiceNow API에 연결하기 위해 ServiceNow 플러그인이 사용할 ServiceNow 사용자가 있습니다. 이 사용자를 사용하도록 플러그인을 구성하기 위해 Management -> Integrations -> Enroll New Integration으로 이동하세요.

플러그인은 사건 테이블에 읽기 및 쓰기 권한이 있는 자격 증명을 요구합니다.

여기서 지정된 "Close Code"는 ServiceNow 사고를 해결할 때 사용될 것입니다. "Caller"는 요청하는 Teleport 사용자의 사용자 이름이 됩니다. ("Caller" 필드는 이름이 같은 기존의 ServiceNow 사용자가 있는 경우에만 채워집니다.)

4단계/4. ServiceNow 플러그인 테스트

접근 요청 생성

Teleport 사용자 myuser로서 editor 역할에 대한 접근 요청을 생성하세요:

Teleport 관리자는 tctl을 사용하여 다른 사용자의 액세스 요청을 생성할 수 있습니다:

tctl request create myuser --roles=editor

사용자는 tsh를 사용하여 액세스 요청을 생성하고 승인된 역할로 로그인할 수 있습니다:

tsh request create --roles=editor
요청 승인 중... (id: 8f77d2d1-2bbf-4031-a300-58926237a807)

사용자는 "액세스 요청" 탭을 방문하고 "새 요청"을 클릭하여 웹 UI를 사용하여 액세스를 요청할 수 있습니다:

웹 UI를 사용하여 액세스 요청 생성

ServiceNow에서는 접근 요청에 대한 정보를 담고 있는 새로운 사고를 확인할 수 있습니다.

요청자의 역할 주석에 ServiceNow 순번이 지정된 경우, ServiceNow 플러그인은 요청자의 사용자 이름이 해당 순번에서 현재 온콜인 ServiceNow 사용자와 일치하는지 확인하고 접근 요청을 승인합니다.

요청 해결

접근 요청 메시지를 수신하면 링크를 클릭하여 Teleport를 방문하고 요청을 승인하거나 거부하세요:

명령줄에서도 접근 요청을 검토할 수 있습니다:

REQUEST_ID를 요청의 ID로 교체하세요

tctl request approve REQUEST_ID
tctl request deny REQUEST_ID

REQUEST_ID를 요청의 ID로 교체하세요

tsh request review --approve REQUEST_ID
tsh request review --deny REQUEST_ID
Teleport 원문 보기