InfoGrab DocsInfoGrab Docs

ServiceNow로 접근 요청 처리

요약

Teleport의 ServiceNow 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한을 부여하지 않고도 인시던트를 빠르게 해결하는 데 필요한 인프라에 접근할 수 있습니다. Teleport의 ServiceNow 통합을 사용하면 Teleport 접근 요청을 ServiceNow 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다.

Teleport의 ServiceNow 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한을 부여하지 않고도 인시던트를 빠르게 해결하는 데 필요한 인프라에 접근할 수 있습니다.

Teleport의 ServiceNow 통합을 사용하면 Teleport 접근 요청을 ServiceNow 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다. 또한 요청하는 사용자가 특정 온콜 로테이션에 있는 경우 접근 요청을 자동으로 승인하도록 플러그인을 구성할 수도 있습니다.

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

전제 조건#

  • 실행 중인 Teleport Enterprise 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의 /v1/webapi/find로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다. teleport.example.com:443를 Teleport Proxy Service의 웹 주소로 바꿉니다:

      $ TELEPORT_DOMAIN=teleport.example.com:443
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의
       Teleport 패키지는 Teleport에서 유지 관리하지 않으므로 신뢰성이나 보안을
       보장할 수 없습니다.
     

Windows - Powershell

     ```code
     $ curl.exe -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-windows-amd64-bin.zip
     # Unzip the archive and move the `tctl` and `tsh` clients to your %PATH%
     # NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
     # Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
     ```
 
   

 
   

Linux

     Linux 설치판의 모든 Teleport 바이너리에는 `tctl` and `tsh` clients가 포함되어 있습니다.  RPM/DEB
     패키지 및 i386/ARM/ARM64용 다운로드를 포함한 더 많은 옵션은
     [설치 페이지](../installation/installation.mdx)를 참조하세요.
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ tar -xzf teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ cd teleport
     $ sudo ./install
     # Teleport binaries have been copied to /usr/local/bin
     ```
   

 
  • 'incident' 테이블에서 읽고 쓸 수 있는 접근 권한이 있는 ServiceNow 계정.

Teleport cluster에 연결할 수 있는지 확인하려면 tsh login으로 로그인한 다음, 현재 자격 증명으로 tctl 명령을 실행할 수 있는지 확인합니다.

예를 들어, teleport.example.com에 cluster 내 Teleport Proxy Service의 도메인 이름을, email@example.com에 Teleport 사용자 이름을 지정하여 다음 명령을 실행합니다:

$ tsh login --proxy=teleport.example.com --user=email@example.com
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

cluster에 연결하여 tctl status 명령을 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 이후의 tctl 명령을 실행할 수 있습니다. 자체 Teleport cluster를 호스팅하는 경우, 전체 권한을 얻기 위해 Teleport Auth Service를 호스팅하는 컴퓨터에서 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
Tip

Web UI를 사용하여 역할을 생성하고 편집할 수도 있습니다. Access -> Roles로 이동하여 Create New Role을 클릭하거나 편집할 기존 역할을 선택하십시오.

ServiceNow 로테이션 ID를 가져오려면 로테이션이 속한 ServiceNow 그룹의 그룹 레코드로 이동하고 헤더를 마우스 오른쪽 버튼으로 클릭한 다음 'Select copy sys_id'를 클릭하여 ID를 복사합니다.

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

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

이제 ServiceNow 플러그인이 ServiceNow API에 연결하는 데 사용할 ServiceNow 사용자가 있습니다. 이 사용자를 사용하도록 플러그인을 구성하려면 Management -> Integrations -> Enroll New Integration으로 이동합니다.

Integrations page

플러그인은 incident 테이블에서 읽고 쓸 수 있는 자격 증명이 필요합니다.

여기에 지정된 "Close Code"는 ServiceNow 인시던트를 해결할 때 사용되는 코드입니다. "Caller"는 요청하는 Teleport 사용자의 사용자 이름이 됩니다. ("Caller" 필드는 동일한 이름의 ServiceNow 사용자가 있는 경우에만 채워집니다.)

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

접근 요청 만들기#

Teleport 사용자 myusereditor 역할에 대한 접근 요청을 만듭니다:

As an Admin

Teleport 관리자는 tctl을 사용하여 다른 사용자를 위한 Access Request를 생성할 수 있습니다:

$ tctl request create myuser --roles=editor

As a User

사용자는 tsh를 사용하여 Access Request를 생성하고 승인된 역할로 로그인할 수 있습니다:

$ tsh request create --roles=editor
Seeking request approval... (id: 8f77d2d1-2bbf-4031-a300-58926237a807)

From the Web UI

사용자는 Web UI에서 "Identity"로 이동하여 "Access Requests"를 클릭한 다음 "New Request"를 클릭하여 액세스를 요청할 수 있습니다:

Web UI를 사용하여 Access Request 생성

ServiceNow에서 접근 요청에 대한 정보가 포함된 새 인시던트가 표시됩니다.

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

요청 해결#

Access Request 메시지를 받으면 링크를 클릭하여 Teleport로 이동한 후 요청을 승인하거나 거부하십시오:

요청 검토

명령줄에서 검토하기

명령줄에서도 Access Request를 검토할 수 있습니다:

As an Admin

# Replace REQUEST_ID with the id of the request
$ tctl request approve REQUEST_ID
$ tctl request deny REQUEST_ID

As a User

# Replace REQUEST_ID with the id of the request
$ tsh request review --approve REQUEST_ID
$ tsh request review --deny REQUEST_ID

문제 해결#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (access-plugin-troubleshooting.mdx)

ServiceNow로 접근 요청 처리

Teleport v18.9
원문 보기
요약

Teleport의 ServiceNow 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한을 부여하지 않고도 인시던트를 빠르게 해결하는 데 필요한 인프라에 접근할 수 있습니다. Teleport의 ServiceNow 통합을 사용하면 Teleport 접근 요청을 ServiceNow 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다.

Teleport의 ServiceNow 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한을 부여하지 않고도 인시던트를 빠르게 해결하는 데 필요한 인프라에 접근할 수 있습니다.

Teleport의 ServiceNow 통합을 사용하면 Teleport 접근 요청을 ServiceNow 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다. 또한 요청하는 사용자가 특정 온콜 로테이션에 있는 경우 접근 요청을 자동으로 승인하도록 플러그인을 구성할 수도 있습니다.

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

전제 조건#

  • 실행 중인 Teleport Enterprise 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 Teleport 클러스터 버전보다 최대 한 개의 메이저 버전까지만 뒤처질 수 있습니다. Proxy Service의 /v1/webapi/find로 GET 요청을 보내고 JSON 쿼리 도구를 사용하여 클러스터 버전을 확인합니다. teleport.example.com:443를 Teleport Proxy Service의 웹 주소로 바꿉니다:

      $ TELEPORT_DOMAIN=teleport.example.com:443
      $ TELEPORT_VERSION="$(curl -s https://$TELEPORT_DOMAIN/v1/webapi/find | jq -r '.server_version')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       Homebrew를 사용하여 Teleport를 설치하는 것은 지원되지 않습니다. Homebrew의
       Teleport 패키지는 Teleport에서 유지 관리하지 않으므로 신뢰성이나 보안을
       보장할 수 없습니다.
     

Windows - Powershell

     ```code
     $ curl.exe -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-windows-amd64-bin.zip
     # Unzip the archive and move the `tctl` and `tsh` clients to your %PATH%
     # NOTE: Do not place the `tctl` and `tsh` clients in the System32 directory, as this can cause issues when using WinSCP.
     # Use %SystemRoot% (C:\Windows) or %USERPROFILE% (C:\Users\<username>) instead.
     ```
 
   

 
   

Linux

     Linux 설치판의 모든 Teleport 바이너리에는 `tctl` and `tsh` clients가 포함되어 있습니다.  RPM/DEB
     패키지 및 i386/ARM/ARM64용 다운로드를 포함한 더 많은 옵션은
     [설치 페이지](../installation/installation.mdx)를 참조하세요.
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ tar -xzf teleport-v${TELEPORT_VERSION?}-linux-amd64-bin.tar.gz
     $ cd teleport
     $ sudo ./install
     # Teleport binaries have been copied to /usr/local/bin
     ```
   

 
  • 'incident' 테이블에서 읽고 쓸 수 있는 접근 권한이 있는 ServiceNow 계정.

Teleport cluster에 연결할 수 있는지 확인하려면 tsh login으로 로그인한 다음, 현재 자격 증명으로 tctl 명령을 실행할 수 있는지 확인합니다.

예를 들어, teleport.example.com에 cluster 내 Teleport Proxy Service의 도메인 이름을, email@example.com에 Teleport 사용자 이름을 지정하여 다음 명령을 실행합니다:

$ tsh login --proxy=teleport.example.com --user=email@example.com
$ tctl status
# Cluster  (=teleport.url=)
# Version  (=teleport.version=)
# CA pin   (=presets.ca_pin=)

cluster에 연결하여 tctl status 명령을 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 이후의 tctl 명령을 실행할 수 있습니다. 자체 Teleport cluster를 호스팅하는 경우, 전체 권한을 얻기 위해 Teleport Auth Service를 호스팅하는 컴퓨터에서 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
Tip

Web UI를 사용하여 역할을 생성하고 편집할 수도 있습니다. Access -> Roles로 이동하여 Create New Role을 클릭하거나 편집할 기존 역할을 선택하십시오.

ServiceNow 로테이션 ID를 가져오려면 로테이션이 속한 ServiceNow 그룹의 그룹 레코드로 이동하고 헤더를 마우스 오른쪽 버튼으로 클릭한 다음 'Select copy sys_id'를 클릭하여 ID를 복사합니다.

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

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

이제 ServiceNow 플러그인이 ServiceNow API에 연결하는 데 사용할 ServiceNow 사용자가 있습니다. 이 사용자를 사용하도록 플러그인을 구성하려면 Management -> Integrations -> Enroll New Integration으로 이동합니다.

Integrations page

플러그인은 incident 테이블에서 읽고 쓸 수 있는 자격 증명이 필요합니다.

여기에 지정된 "Close Code"는 ServiceNow 인시던트를 해결할 때 사용되는 코드입니다. "Caller"는 요청하는 Teleport 사용자의 사용자 이름이 됩니다. ("Caller" 필드는 동일한 이름의 ServiceNow 사용자가 있는 경우에만 채워집니다.)

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

접근 요청 만들기#

Teleport 사용자 myusereditor 역할에 대한 접근 요청을 만듭니다:

As an Admin

Teleport 관리자는 tctl을 사용하여 다른 사용자를 위한 Access Request를 생성할 수 있습니다:

$ tctl request create myuser --roles=editor

As a User

사용자는 tsh를 사용하여 Access Request를 생성하고 승인된 역할로 로그인할 수 있습니다:

$ tsh request create --roles=editor
Seeking request approval... (id: 8f77d2d1-2bbf-4031-a300-58926237a807)

From the Web UI

사용자는 Web UI에서 "Identity"로 이동하여 "Access Requests"를 클릭한 다음 "New Request"를 클릭하여 액세스를 요청할 수 있습니다:

Web UI를 사용하여 Access Request 생성

ServiceNow에서 접근 요청에 대한 정보가 포함된 새 인시던트가 표시됩니다.

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

요청 해결#

Access Request 메시지를 받으면 링크를 클릭하여 Teleport로 이동한 후 요청을 승인하거나 거부하십시오:

요청 검토

명령줄에서 검토하기

명령줄에서도 Access Request를 검토할 수 있습니다:

As an Admin

# Replace REQUEST_ID with the id of the request
$ tctl request approve REQUEST_ID
$ tctl request deny REQUEST_ID

As a User

# Replace REQUEST_ID with the id of the request
$ tsh request review --approve REQUEST_ID
$ tsh request review --deny REQUEST_ID

문제 해결#

Note

이 섹션의 내용은 원문 문서를 참조하세요. (access-plugin-troubleshooting.mdx)