Teleport의 Opsgenie 통합을 통해 엔지니어는 장기적인 관리자 권한 없이 알림을 신속하게 해결하기 위해 필요한 인프라에 접근할 수 있습니다. 이러한 권한은 공격 벡터가 될 수 있습니다.
Teleport의 Opsgenie 통합은 Teleport 역할 접근 요청을 Opsgenie 알림으로 처리하고, 적절한 대기 팀에 알리며, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다. 또한 요청자가 알림에 영향을 받는 서비스의 대기 팀에 속해 있는 경우 역할 접근 요청을 자동으로 승인하도록 플러그인을 구성할 수 있습니다.
이 가이드에서는 Opsgenie를 위한 Teleport의 액세스 요청 플러그인을 설정하는 방법을 설명합니다.
전제 조건
-
Teleport 엔터프라이즈 클라우드 계정.
-
엔터프라이즈
tctl
관리 도구 및tsh
클라이언트 도구 버전 >= 16.2.0.설치된 도구를 확인하려면 다음 명령을 실행하십시오:
tctl versionTeleport Enterprise v16.2.0 go1.22
tsh versionTeleport v16.2.0 go1.22
이 도구는 적절한 설치 지침을 따라 다운로드할 수 있습니다.
-
'읽기' 및 '생성 및 업데이트' 액세스 권한으로 API 키를 생성할 수 있는 Opsgenie 계정.
-
당신의 Teleport 클러스터에 연결할 수 있는지 확인하려면,
tsh login
으로 로그인한 다음 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오.예를 들어:
tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 16.2.0
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
클러스터에 연결하고
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 작업대에서 후속tctl
명령어를 실행할 수 있습니다.자신의 Teleport 클러스터를 호스팅하는 경우, Teleport 인증 서비스를 호스팅하는 컴퓨터에서 전체 권한으로
tctl
명령어를 실행할 수도 있습니다.
1단계/5단계. 서비스 생성
teleport-access-request-notifications
라는 이름의 Opsgenie 팀을 생성합니다.
특정 사용자가 액세스 요청을 생성할 때 Opsgenie 플러그인을 구성하여 teleport-access-request-notifications
팀에 알림을 생성하도록 합니다.
2단계/5단계. RBAC 리소스 정의
Teleport Opsgenie 플러그인은 Teleport Auth 서비스로부터 액세스 요청 이벤트를 수신하고, 이러한 이벤트를 기반으로 Opsgenie API와 상호 작용합니다.
요청자 역할 생성
사용자를 생성하려면 먼저 Management -> Access -> Roles로 이동합니다.
그런 다음 '새 역할 만들기'를 선택하고 요청자 역할을 만듭니다.
kind: role
version: v5
metadata:
name: requester
spec:
allow:
request:
roles: ['editor']
thresholds:
- approve: 1
deny: 1
annotations:
teleport.dev/notify-services: ['teleport-access-request-notifications']
teleport.dev/teams: ['teleport-team']
teleport.dev/schedules: ['teleport-access-alert-schedules']
teleport.dev/notify-services
주석은 알림이 생성될 일정들을 지정합니다.
teleport.dev/teams
주석은 알림이 생성될 팀들을 지정합니다. 이는 여러 일정이 있거나 팀과 함께만 작동하는 Opsgenie 통합이 있을 때 유용합니다.
teleport.dev/schedules
주석은 알림이 확인할 일정을 지정하고, 요청하는 사용자가 대기 중인 경우 액세스 요청을 자동으로 승인합니다.
액세스를 요청할 사용자 생성
requester
역할을 가진 myuser
라는 사용자를 생성합니다. 나중에 이 가이드에서 이 사용자로 액세스 요청을 생성하여 Opsgenie 플러그인을 테스트할 것입니다:
사용자를 생성하려면 먼저 Management -> Access -> Users로 이동합니다.
그런 다음 '새 사용자 만들기'를 선택하고 요청자 역할을 가진 사용자를 생성합니다.
3단계/5단계. Opsgenie API 키 설정
Opsgenie 플러그인이 알림을 생성하고 수정하며 사용자, 서비스 및 대기 정책을 나열하는 데 사용할 API 키를 생성합니다.
Opsgenie 대시보드에서 SETTINGS → INTEGRATIONS로 이동합니다.
자세한 내용은 https://support.atlassian.com/opsgenie/docs/create-a-default-api-integration/ 를 참조하십시오.
4단계/5단계. Opsgenie 플러그인 구성
이 시점에서 Opsgenie 플러그인이 Opsgenie API에 연결하는 데 사용할 자격 증명을 생성했습니다. 이 API 키를 사용하도록 플러그인을 구성하려면 Management -> Integrations -> Enroll New Integration로 이동합니다.
5단계/5단계. Opsgenie 플러그인 테스트
액세스 요청 생성
Teleport 사용자 myuser
로서 editor
역할을 위한 액세스 요청을 생성합니다:
Teleport 관리자는 tctl
을 사용하여 다른 사용자의 액세스 요청을 생성할 수 있습니다:
tctl request create myuser --roles=editor
사용자는 tsh
를 사용하여 액세스 요청을 생성하고 승인된 역할로 로그인할 수 있습니다:
tsh request create --roles=editor요청 승인 중... (id: 8f77d2d1-2bbf-4031-a300-58926237a807)
사용자는 "액세스 요청" 탭을 방문하고 "새 요청"을 클릭하여 웹 UI를 사용하여 액세스를 요청할 수 있습니다:
Opsgenie에서 이 요청에 대한 액세스 요청 정보를 포함하는 새로운 알림을 볼 수 있습니다. 이는 플러그인 등록 시 지정된 기본 일정에 나타나거나 요청자의 역할의 teleport.dev/notify-services
주석에 지정된 일정에 나타납니다.
요청 해결
접근 요청 메시지를 수신하면 링크를 클릭하여 Teleport를 방문하고 요청을 승인하거나 거부하세요:
명령줄에서도 접근 요청을 검토할 수 있습니다:
REQUEST_ID를 요청의 ID로 교체하세요
tctl request approve REQUEST_IDtctl request deny REQUEST_ID
REQUEST_ID를 요청의 ID로 교체하세요
tsh request review --approve REQUEST_IDtsh request review --deny REQUEST_ID
Opsgenie 플러그인이 알림을 전송하면 알림을 받은 누구나 포함된 링크를 따라 액세스 요청 URL로 이동할 수 있습니다. 사용자가 액세스 요청을 검토하기 위해 Teleport 역할을 통해 승인되어야 하지만, 올바른 사용자가 올바른 요청을 검토하고 있는지 확인하기 위해 Teleport 감사 로그를 확인해야 합니다.
액세스 요청 리뷰를 감사할 때는 Teleport 웹 UI에서 Access Request Reviewed
유형의 이벤트를 확인하십시오.