Opsgenie를 통한 Access Request
Teleport v18.9Teleport의 Opsgenie 통합을 사용하면, 엔지니어들은 공격 벡터가 될 수 있는 영구적인 관리자 권한 없이도 알림을 신속하게 해결하는 데 필요한 인프라에 접근할 수 있습니다. Teleport의 Opsgenie 통합을 사용하면 Teleport Role Access Request를 Opsgenie 알림으로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다.
Teleport의 Opsgenie 통합을 사용하면, 엔지니어들은 공격 벡터가 될 수 있는 영구적인 관리자 권한 없이도 알림을 신속하게 해결하는 데 필요한 인프라에 접근할 수 있습니다.
Teleport의 Opsgenie 통합을 사용하면 Teleport Role Access Request를 Opsgenie 알림으로 처리하고, 적절한 온콜 팀에 알리고, Teleport를 통해 요청을 승인하거나 거부할 수 있습니다. 또한 요청을 하는 사용자가 알림에 영향을 받는 서비스의 온콜 팀에 있는 경우 Role Access Request를 자동으로 승인하도록 플러그인을 설정할 수 있습니다.
이 가이드는 Opsgenie용 Teleport Access Request 플러그인 설정 방법을 설명합니다.
사전 요구사항#
-
실행 중인 Teleport Enterprise Cloud 클러스터. 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
```
- 'read' 및 'create and update' 접근 권한이 있는 API 키를 생성할 수 있는 Opsgenie 계정.
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/5단계. 서비스 생성#
teleport-access-request-notifications라는 이름의 Opsgenie 팀을 생성합니다.
특정 사용자가 Access Request를 생성할 때 teleport-access-request-notifications 팀의 알림을 생성하도록 Opsgenie 플러그인을 설정합니다.
2/5단계. RBAC 리소스 정의#
Teleport Opsgenie 플러그인은 Teleport Auth Service에서 Access Request 이벤트를 수신하고, 이 이벤트를 기반으로 Opsgenie API와 상호작용합니다.
요청자 역할 생성#
사용자를 생성하려면 먼저 액세스 -> 역할로 이동합니다. 그런 다음 새 역할 생성을 선택하고 요청자 역할을 생성합니다.
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라는 사용자를 생성합니다. 이 가이드의 뒷부분에서 Opsgenie 플러그인을 테스트하기 위해 이 사용자로 Access Request를 생성합니다:
사용자를 생성하려면 먼저 제로 트러스트 액세스 -> 사용자로 이동합니다.
3/5단계. Opsgenie API 키 설정#
Opsgenie 플러그인이 알림을 생성 및 수정하고 사용자, 서비스, 온콜 정책을 나열하는 데 사용할 API 키를 생성합니다.
Opsgenie 대시보드에서 설정 → 통합으로 이동합니다.
자세한 내용은 https://support.atlassian.com/opsgenie/docs/create-a-default-api-integration/을 참조하세요.
4/5단계. Opsgenie 플러그인 설정#
이 시점에서 Opsgenie 플러그인이 Opsgenie API에 연결하는 데 사용할 자격 증명을 생성했습니다. 이 API 키를 사용하도록 플러그인을 설정하려면, Web UI의 새로 추가로 이동하여 왼쪽 패널에서 통합을 클릭합니다. Opsgenie 타일을 클릭합니다.
5/5단계. Opsgenie 플러그인 테스트#
Access Request 생성#
Teleport 사용자 myuser로 editor 역할에 대한 Access Request를 생성합니다:
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"를 클릭하여 액세스를 요청할 수 있습니다:

Opsgenie에서 플러그인을 등록할 때 지정된 기본 일정이나 요청자의 역할에 있는 teleport.dev/notify-services 어노테이션으로 지정된 일정에서 Access Request에 대한 정보가 포함된 새 알림이 표시됩니다.
요청 해결#
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
Opsgenie 플러그인이 알림을 보낼 때, 알림을 받은 모든 사람이 포함된 링크를 따라 Access Request URL에 접근할 수 있습니다. 사용자가 Teleport 역할을 통해 Access Request를 검토하도록 권한을 받아야 하지만, 올바른 사용자가 올바른 요청을 검토하고 있는지 확인하기 위해 Teleport 감사 로그를 확인해야 합니다.
Access Request 검토를 감사할 때, Teleport Web UI에서 Access Request Reviewed 유형의 이벤트를 확인합니다.
문제 해결#
이 섹션의 내용은 원문 문서를 참조하세요. (access-plugin-troubleshooting.mdx)