Datadog Incident Management로 접근 요청 처리
Teleport v18.9Teleport의 Datadog Incident Management 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한 없이 인시던트를 해결하는 데 필요한 인프라에 접근할 수 있습니다. Teleport의 Datadog Incident Management 통합을 사용하면 Teleport 역할 접근 요청을 Datadog 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다.
Teleport의 Datadog Incident Management 통합을 통해 엔지니어는 공격 벡터가 될 수 있는 영구적인 관리자 권한 없이 인시던트를 해결하는 데 필요한 인프라에 접근할 수 있습니다.
Teleport의 Datadog Incident Management 통합을 사용하면 Teleport 역할 접근 요청을 Datadog 인시던트로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다.
이 가이드는 Datadog용 Teleport 접근 요청 플러그인 설정 방법을 설명합니다.
작동 방식#
Teleport Datadog Incident Management 통합은 Teleport gRPC API에 연결하고 역할 접근 요청을 수신합니다. 통합이 역할 접근 요청의 상태 변경을 받으면 Datadog에 새 인시던트를 생성하거나, 인시던트가 이미 있는 경우 업데이트합니다. 또한 통합은 각 접근 요청의 주석을 읽고, 주석에 따라 접근 요청을 자동으로 승인할 수 있습니다.
전제 조건#
-
실행 중인 Teleport Enterprise (v17.0.1 or higher) 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.
-
tctlandtshclients.Installing `tctl` and `tsh` clients
-
Teleport 클러스터의 버전을 확인합니다.
tctlandtshclients는 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')" -
사용 중인 플랫폼에 대한 지침에 따라
tctlandtshclients를 설치합니다:
-
Mac
`tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
```code
$ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
```
Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
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
```
-
"Datadog Admin Role"을 가진 Datadog 계정. 플러그인에 필요한 자격 증명을 생성하려면 서비스 계정을 만들어야 하므로 관리자 역할이 필요합니다.
Datadog에서 사용자 페이지를 방문하여 Personal Settings -> Profile로 이동하고 Roles 필드의 값을 확인하여 역할을 볼 수 있습니다.
-
Datadog 플러그인을 실행할 Linux 호스트 또는 Kubernetes 클러스터.
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 명령을 실행할 수도 있습니다.
- Teleport 사용자에게는
editor역할 또는 Teleport 역할을 만들고 사용자에게 부여하는 권한을 제공하는 역할이 필요합니다.
1/6단계. Datadog 팀 만들기#
Datadog Incident Management 플러그인을 시연하기 위해 Datadog에서 팀을 만듭니다. Datadog 웹 UI에서 Teams 탭으로 이동하고 New Team을 클릭하여 새 Datadog 팀을 만듭니다. 이름을 "Teleport Access"로 지정합니다.
특정 접근 요청을 "Teleport Access" 팀으로 라우팅하도록 Datadog Incident Management 플러그인을 구성할 것입니다.
2/6단계. RBAC 리소스 정의#
Datadog Incident Management 플러그인을 설정하기 전에 Teleport 클러스터에서 역할 접근 요청을 활성화해야 합니다.
요청자 및 검토자 역할 만들기#
이 가이드의 목적상 내장된 editor 역할을 요청할 수 있는 editor-requester 역할과 editor 역할에 대한 요청을 검토할 수 있는 editor-reviewer 역할을 정의합니다.
Teleport Web UI에서 Zero Trust Access -> Roles로 이동합니다. 그런 다음 Create New Role을 선택하고 원하는 역할을 만듭니다.
kind: role
version: v7
metadata:
name: editor-reviewer
spec:
allow:
review_requests:
roles: ['editor']
---
kind: role
version: v7
metadata:
name: editor-requester
spec:
allow:
request:
roles: ['editor']
thresholds:
- approve: 1
deny: 1
요청자 및 검토자 사용자 만들기#
먼저 자신에게 editor-reviewer 역할을 할당합니다. 이렇게 하면 사용자가 editor 역할에 대한 접근 요청을 검토할 수 있습니다. 사용자 역할을 편집하려면 Zero Trust Access -> Users로 이동하고, 사용자에 대해 Options -> Edit를 선택하고 editor-reviewer 역할을 추가합니다.
다음으로 editor-requester 역할을 가진 myuser@example.com 사용자를 만듭니다. 이 가이드 후반에 이 사용자로 접근 요청을 만들어 Datadog 플러그인을 테스트합니다. 이 사용자에 대해 Zero Trust Access -> Users로 이동합니다. 그런 다음 Enroll Users를 선택하고 editor-requester 역할을 가진 사용자를 만듭니다.
최종적으로 다음과 같은 두 명의 사용자가 있어야 합니다:

3/6단계. Datadog 자격 증명 생성#
Datadog용 접근 요청 플러그인은 Teleport Auth Service에서 접근 요청 이벤트를 받아 Datadog 인시던트 형식으로 변환하고 Datadog API로 보냅니다. 이 작업을 위해 Teleport 플러그인에 유효한 Datadog API 키와 애플리케이션 키를 제공해야 합니다.
Datadog API 키 생성#
먼저 Datadog 웹 UI에서 Organization Settings -> Access -> API Keys로 이동하여 조직의 API 키를 봅니다. 새 API 키를 생성하려면 New Key를 클릭하고 이름을 "Teleport Access"로 지정합니다. 이후 단계에서 붙여 넣을 수 있도록 API 키를 복사합니다.

Datadog 서비스 계정 만들기#
다음으로 Organization Settings -> Identity & Accounts -> Service Accounts로 이동하여 조직의 서비스 계정을 봅니다. 새 서비스 계정을 만들려면 New Service Account를 클릭하고 이름을 "Teleport Access"로 지정합니다. 서비스 계정에 연결할 이메일을 원하는 것으로 제공한 다음 "Datadog Standard Role" 역할을 할당합니다. 이 역할은 Datadog에서 인시던트를 관리하는 데 필요한 권한을 제공합니다.

방금 만든 "Teleport Access" 서비스 계정을 클릭한 다음 Application Keys 탭을 클릭하고 New Key를 클릭한 다음 이름을 "Teleport Access"로 지정하여 새 애플리케이션 키를 만듭니다. 이후 단계에서 붙여 넣을 수 있도록 애플리케이션 키를 복사합니다.

4/6단계. Datadog Incident Management 플러그인 등록#
이제 Datadog Incident Management 플러그인을 등록할 준비가 되었습니다.
Teleport Enterprise Cloud에서는 Teleport가 the Datadog Incident Management를 대신 관리하며, Teleport 웹 UI에서 the Datadog Incident Management를 등록할 수 있습니다.
Teleport 웹 UI로 이동하여 왼쪽 사이드바에서 Add New를 클릭한 다음 Integration을 클릭하십시오:

"Select Integration Type" 메뉴에서 사용할 통합의 타일을 클릭하십시오. 통합을 설정하는 방법에 대한 지침과 함께 통합을 구성하는 데 사용할 수 있는 양식이 있는 페이지가 표시됩니다.
위에서 생성한 API 및 애플리케이션 키를 제공합니다. 원하는 API 엔드포인트를 선택합니다. 그런 다음 앞서 만든 Datadog 팀 핸들을 대체 수신자로 제공합니다. 이는 "teleport-access"여야 합니다.
대체 수신자는 알림의 기본 수신자입니다. 수신자는 Datadog 사용자 이메일 또는 Datadog 팀 핸들일 수 있습니다. 접근 모니터링 규칙을 사용하여 나중에 더 많은 사용자 지정 알림 라우팅 규칙을 구성할 수 있습니다.
수신자가 Datadog 팀인 경우 팀 이름이 Datadog 인시던트 팀 속성에 추가됩니다.
플러그인은 인시던트를 만들고 수신자 팀으로 레이블을 지정합니다. 기본적으로 팀 구성원에게 알림이 전송되지 않으며, 팀 구성원에게 알림을 보내려면 Datadog 알림 규칙을 구성해야 합니다. 이를 위해 Incidents -> Settings -> Notifications -> Rules로 이동하고 수신자 팀으로 레이블이 지정된 알림과 일치하는 새 규칙을 만듭니다.

제안된 검토자
사용자는 접근 요청을 만들 때 Datadog 사용자 이메일을 제공하여 특정 검토자를 제안할 수 있습니다. 예를 들면:
$ tsh request create --roles=editor --reviewers=alice@example.com,ivan@example.com
접근 요청에 제안된 검토자가 포함된 경우 Datadog Incident Management 플러그인은 이를 알릴 사용자 목록에 추가합니다.
5/6단계. Datadog Incident Management 플러그인 테스트#
접근 요청 만들기#
Teleport 사용자 myuser@example.com으로 editor 역할에 대한 접근 요청을 만듭니다. Access Requests 탭으로 이동하고 New Access Request를 클릭합니다:

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

요청 해결#
접근 요청 메시지를 받으면 링크를 클릭하여 Teleport를 방문하고 요청을 승인하거나 거부합니다:

Datadog 플러그인이 알림을 보낼 때, 알림을 받는 모든 사람이 포함된 링크를 따라 접근 요청 URL로 이동할 수 있습니다. 사용자가 접근 요청을 검토하려면 Teleport 역할을 통해 권한이 부여되어야 하지만, 올바른 사용자가 올바른 요청을 검토하고 있는지 확인하기 위해 Teleport 감사 로그를 확인해야 합니다.
접근 요청 검토를 감사할 때 Teleport Web UI에서 Access Request Reviewed 유형의 이벤트를 확인합니다.
6/6단계. 자동 승인 구성#
Datadog 온콜 일정 설정#
접근 요청의 자동 승인을 활성화하려면 Datadog 팀의 온콜 일정을 설정해야 합니다. On-Call -> Teams로 이동하고 Add Team to On-Call을 선택하여 "Teleport Access" 팀의 온콜 일정을 설정합니다.
자동 승인을 지원하도록 Teleport RBAC 업데이트#
Teleport editor-requester 역할을 구성하고 teleport.dev/schedules 주석을 추가합니다. teleport.dev/schedules 주석은 자동 승인을 위한 온콜 일정, 서비스 및 팀을 지정하는 데 사용됩니다. Datadog 플러그인의 경우 이 주석은 Datadog 팀 핸들 이름 목록을 기대합니다.
"teleport-access" 팀을 주석에 추가합니다. 이 팀의 온콜 사용자가 만든 접근 요청은 자동으로 승인됩니다.
kind: role
version: v7
metadata:
name: editor-requester
spec:
allow:
request:
annotations:
teleport.dev/schedules:
- teleport-access
roles: ['editor']
thresholds:
- approve: 1
deny: 1
Web UI를 사용하여 역할을 생성하고 편집할 수도 있습니다. Access -> Roles로 이동하여 Create New Role을 클릭하거나 편집할 기존 역할을 선택하십시오.
자동 승인 트리거#
자동 승인을 트리거하려면 Datadog의 현재 온콜 사용자로 Teleport에 로그인하고 editor 역할에 대한 접근 요청을 만듭니다. 자동 승인을 위해서는 Teleport 사용자 이름이 Datadog 온콜 사용자 이메일과 일치해야 합니다.
문제 해결#
이 섹션의 내용은 원문 문서를 참조하세요. (access-plugin-troubleshooting.mdx)
다음 단계#
- 플러그인에 대한 사용자 지정 알림 라우팅 규칙을 구성하려면 접근 요청 알림 라우팅 가이드를 참조하세요.