Infograb logo
Datadog 사고 관리와의 접근 요청

Teleport의 Datadog 사고 관리 통합을 통해 엔지니어는 장기적인 관리자 권한 없이도 사고를 해결하는 데 필요한 인프라에 접근할 수 있습니다. 이러한 관리자 권한은 공격의 경로가 될 수 있습니다.

Teleport의 Datadog 사고 관리 통합은 Teleport 역할 접근 요청을 Datadog 사고로 간주하고, 적절한 대기 중인 팀에 알림을 보내며, Teleport를 통해 요청을 승인하거나 거부할 수 있게 해줍니다.

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

작동 방식

Teleport Datadog 사고 관리 통합은 Teleport gRPC API에 연결되어 역할 접근 요청을 수신 대기합니다. 통합이 역할 접근 요청의 상태 변경을 수신하면, Datadog에 새로운 사고를 생성하거나, 사고가 이미 존재할 경우 이를 업데이트합니다. 통합은 또한 각 Teleport 접근 요청에 대한 주석을 읽고, 주석에 따라 접근 요청을 자동으로 승인할 수 있습니다.

전제 조건

  • 실행 중인 Teleport 클러스터. Teleport를 시작하려면 가입하여 무료 평가판을 이용해 보십시오.

  • tctl 관리자 도구 및 tsh 클라이언트 도구.

    tctltsh 다운로드에 대한 지침은 설치 를 방문하십시오.

  • "Datadog Admin Role" 역할이 있는 Datadog 계정. 서비스 계정을 생성하고 플러그인에 필요한 자격 증명을 생성하려면 관리자 역할이 필요합니다.

    역할을 확인하려면 Datadog의 사용자 페이지를 방문하고 개인 설정 -> 프로필로 이동하여 Roles 필드의 값을 확인하십시오.

  • Datadog 플러그인을 실행할 Linux 호스트 또는 Kubernetes 클러스터.

  • 연결이 가능한지 확인하기 위해 tsh login 으로 로그인한 다음, 현재 자격 증명을 사용하여 tctl 명령어를 실행할 수 있는지 확인하십시오.

    예를 들어:

    tsh login --proxy=teleport.example.com --user=email@example.com
    tctl status

    클러스터 teleport.example.com

    버전 17.0.0-dev

    CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678

    클러스터에 연결할 수 있고 tctl status 명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속 tctl 명령어를 실행할 수 있습니다.
    자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로 tctl 명령어를 실행할 수도 있습니다.

  • Teleport 사용자는 editor 역할 또는 Teleport 역할을 생성하고 사용자에게 부여할 수 있는 권한을 제공하는 역할이 필요합니다.

1/6단계. Datadog 팀 생성

Datadog 사고 관리 플러그인을 시演하기 위해 Datadog에서 팀을 생성합니다. Datadog 웹 UI에서 탭으로 이동하여 새 팀을 클릭하여 새 Datadog 팀을 생성합니다. 이름은 "Teleport Access"로 설정합니다.

우리는 특정 접근 요청을 "Teleport Access" 팀으로 라우팅하도록 Datadog 사고 관리 플러그인을 구성할 것입니다.

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

Datadog 사고 관리 플러그인을 설정하기 전에 Teleport 클러스터에서 역할 접근 요청을 활성화해야 합니다.

요청자 및 검토자 역할 생성

이 가이드를 위해 우리는 내장된 editor 역할을 요청할 수 있는 editor-requester 역할과 editor 역할의 요청을 검토할 수 있는 editor-reviewer 역할을 정의할 것입니다.

Teleport WebUI에서 관리 -> 접근 -> 역할로 이동합니다. 그런 다음 새 역할 생성을 선택하고 원하는 역할을 생성합니다.

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 역할에 대한 접근 요청을 검토할 수 있게 됩니다. 사용자 역할을 편집하려면 관리 -> 접근 -> 사용자로 이동한 다음, 사용자에 대해 옵션 -> 편집을 선택하고 editor-reviewer 역할을 추가합니다.

다음으로, editor-requester 역할을 가진 사용자 myuser@example.com 을 생성합니다. 이 가이드 내에서 이 사용자를 사용하여 Datadog 플러그인을 테스트하기 위한 접근 요청을 생성할 것입니다. 이 사용자에 대해서는 관리 -> 접근 -> 사용자로 이동합니다. 그런 다음 사용자 등록을 선택하고 editor-requester 역할을 가진 사용자를 생성합니다.

결국 다음과 같이 보이는 두 사용자가 있어야 합니다:

3/6단계. Datadog 자격 증명 생성

Datadog용 Access Request 플러그인은 Teleport Auth 서비스로부터 Access Request 이벤트를 수신하고 이를 Datadog 사고로 포맷한 후 Datadog API로 전송합니다. 이를 작동하려면 Teleport 플러그인에 유효한 Datadog API 및 애플리케이션 키를 제공해야 합니다.

Datadog API 키 생성

먼저 Datadog 웹 UI에서 조직 설정 -> 액세스 -> API 키로 이동하여 조직의 API 키를 확인합니다. 새 API 키를 생성하려면 New Key를 클릭하고 "Teleport Access"라는 이름을 지정합니다. 나중에 붙여넣기 위해 API 키를 복사합니다.

Datadog 서비스 계정 생성

다음으로, 조직 설정 -> 아이덴티티 & 계정 -> 서비스 계정으로 이동하여 조직의 서비스 계정을 확인합니다. 새 서비스 계정을 생성하려면 New Service Account를 클릭하고 "Teleport Access"라는 이름을 지정합니다. 서비스 계정과 연결할 이메일을 제공한 후 "Datadog Standard Role" 역할을 할당합니다. 이 역할은 Teleport Access Request 사고를 관리하는 데 필요한 권한을 제공합니다.

방금 생성된 "Teleport Access" 서비스 계정을 클릭하고 Application Keys 탭을 클릭한 후 New Key를 클릭하고 "Teleport Access"라는 이름으로 새 애플리케이션 키를 생성합니다. 나중에 붙여넣기 위해 애플리케이션 키를 복사합니다.

4/6단계. Datadog 사고 관리 플러그인 등록

이제 Datadog 사고 관리 플러그인을 등록할 준비가 되었습니다. 액세스 관리 -> 새로운 통합 등록 -> Datadog로 이동합니다.

위에서 생성한 API 키와 애플리케이션 키를 입력합니다. 원하는 API 엔드포인트를 선택합니다. 그런 다음, 이전에 생성한 Datadog 팀 핸들을 대체 수신자로 제공해야 합니다. 이는 "teleport-access"여야 합니다.

대체 수신자는 알림의 기본 수신자가 됩니다. 수신자는 Datadog 사용자 이메일 또는 Datadog 팀 핸들일 수 있습니다. 그 후에 액세스 모니터링 규칙을 사용하여 더 많은 사용자 지정 알림 라우팅 규칙을 구성할 수 있습니다.

수신자가 Datadog 팀인 경우, 팀 이름이 Datadog 사고 팀 속성에 추가됩니다.

이 플러그인은 사고를 생성하고 수신자 팀으로 레이블을 지정합니다. 기본적으로 팀 구성원은 알림을 받지 않으므로, 팀 구성원을 호출하려면 Datadog 알림 규칙을 구성해야 합니다. 그렇게 하려면 사고 -> 설정 -> 알림 -> 규칙으로 이동하여 수신자 팀으로 레이블이 지정된 경고와 일치하는 새 규칙을 생성합니다.

사용자는 Access Request를 생성할 때 Datadog 사용자 이메일을 제공하여 특정 검토자를 제안할 수 있습니다. 예:

tsh request create --roles=editor --reviewers=alice@example.com,ivan@example.com

Access Request에 제안된 검토자가 포함된 경우, Datadog 사고 관리 플러그인은 이를 알림을 받을 사용자 목록에 추가합니다.

5/6단계. Datadog 사고 관리 플러그인 테스트

액세스 요청 생성

Teleport 사용자 myuser@example.comeditor 역할에 대한 액세스 요청을 생성합니다. Access Requests 탭으로 이동하여 New Access Request를 클릭합니다:

Datadog에서는 액세스 요청에 대한 정보가 포함된 새로운 사고를 확인할 수 있습니다:

요청 해결

액세스 요청 메시지를 수신하면 링크를 클릭하여 Teleport를 방문하고 요청을 승인하거나 거부합니다:

액세스 요청 감사

Datadog 플러그인이 알림을 전송하면 알림을 수신하는 사람은 누구나 포함된 링크를 통해 액세스 요청 URL로 이동할 수 있습니다. 사용자는 액세스 요청을 검토하기 위해 Teleport 역할을 통해 인증되어야 하지만, 올바른 사용자가 올바른 요청을 검토하고 있는지 확인하기 위해 Teleport 감사 로그를 확인해야 합니다.

액세스 요청 검토를 감사할 때는 Teleport 웹 UI에서 Access Request Reviewed 유형의 이벤트를 확인합니다.

6/6단계. 자동 승인 구성

Datadog 온콜 일정 설정

액세스 요청에 대한 자동 승인을 활성화하려면 Datadog 팀에 대한 온콜 일정을 설정해야 합니다. 온콜 -> 팀으로 이동하여 온콜에 팀 추가를 선택하여 "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

자동 승인 트리거

자동 승인을 트리거하려면 현재 Datadog의 온콜 사용자로 Teleport에 로그인하고 editor 역할에 대한 액세스 요청을 생성합니다. 자동 승인은 Teleport 사용자 이름이 Datadog 온콜 사용자 이메일과 일치해야 합니다.

다음 단계

Teleport 원문 보기