인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
Opsgenie를 통한 접근 요청
Teleport의 Opsgenie 통합을 통해 엔지니어는 오랜 관리자 권한 없이도 빠르게 경고를 해결하는 데 필요한 인프라에 접근할 수 있습니다. 이러한 관리자 권한은 공격의 벡터가 될 수 있습니다.
Teleport의 Opsgenie 통합은 Teleport 역할 접근 요청을 Opsgenie 알림으로 처리하고, 적절한 온콜 팀에 통보하며, Teleport를 통해 요청을 승인하거나 거부할 수 있게 합니다. 또한 요청을 하는 사용자가 경고로 영향을 받는 서비스의 온콜 팀에 포함되어 있는 경우 Role Access Requests를 자동으로 승인하도록 플러그인을 구성할 수 있습니다.
이 가이드는 Opsgenie를 위한 Teleport의 Access Request 플러그인을 설정하는 방법을 설명합니다.
전제 조건
-
Teleport Enterprise Cloud 계정.
-
Enterprise
tctl
관리 도구와tsh
클라이언트 도구 버전 >= 17.0.0-dev.설치된 도구를 확인하려면 다음 명령을 실행하십시오:
tctl versionTeleport Enterprise v17.0.0-dev go1.22
tsh versionTeleport v17.0.0-dev go1.22
환경 및 Teleport 에디션에 맞는 설치 지침을 따라 이 도구들을 다운로드할 수 있습니다.
-
'읽기' 및 '생성 및 업데이트' 액세스 권한을 가진 API 키를 생성할 수 있는 Opsgenie 계정.
-
연결이 가능한지 확인하기 위해
tsh login
으로 로그인한 다음, 현재 자격 증명을 사용하여tctl
명령어를 실행할 수 있는지 확인하십시오.예를 들어:
tsh login --proxy=teleport.example.com --user=email@example.comtctl status클러스터 teleport.example.com
버전 17.0.0-dev
CA 핀 sha256:abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678abdc1245efgh5678
클러스터에 연결할 수 있고
tctl status
명령어를 실행할 수 있다면, 현재 자격 증명을 사용하여 워크스테이션에서 후속tctl
명령어를 실행할 수 있습니다.
자신의 Teleport 클러스터를 호스팅하는 경우, Teleport Auth Service를 호스팅하는 컴퓨터에서 전체 권한으로tctl
명령어를 실행할 수도 있습니다.
1/5단계. 서비스 생성
teleport-access-request-notifications
라는 이름의 Opsgenie 팀을 만듭니다.
특정 사용자가 Access Request를 생성할 때 Opsgenie 플러그인이 teleport-access-request-notifications
팀에 알림을 생성하도록 구성할 것입니다.
2/5단계. RBAC 자원 정의
Teleport Opsgenie 플러그인은 Teleport Auth Service에서 Access Request 이벤트를 수신하고, 이러한 이벤트를 기반으로 Opsgenie API와 상호 작용합니다.
요청자 역할 생성
사용자를 생성하려면 먼저 Management -> Access -> Roles로 이동합니다.
그런 다음 'Create New Role'을 선택하고 요청자 역할을 생성합니다.
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
주석은 알림이 확인할 일정을 지정하고, 요청하는 사용자가 온콜일 경우 Access Request를 자동으로 승인합니다.
접근을 요청할 사용자 생성
requester
역할을 가진 myuser
라는 이름의 사용자를 생성합니다. 나중에 이 가이드에서는 이 사용자로서 Access Request를 생성하여 Opsgenie 플러그인을 테스트할 것입니다.
사용자를 생성하려면 먼저 Management -> Access -> Users로 이동합니다.
그런 다음 'Create New User'를 선택하고 요청자 역할을 가진 사용자를 생성합니다.
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
주석에 지정된 일정에 대한 액세스 요청에 대한 정보가 포함된 새 알림이 표시됩니다.
요청 해결
Access Request 메시지를 수신하면 링크를 클릭하여 Teleport를 방문하고 요청을 승인하거나 거부하십시오:
명령줄에서 Access Request를 검토할 수도 있습니다:
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
유형의 이벤트를 확인하십시오.