InfoGrab DocsInfoGrab Docs

역할 접근 요청

요약

Teleport의 Just-in-time 접근 요청을 사용하면 사용자가 권한을 상승시키기 위해 추가 역할에 대한 접근을 요청할 수 있습니다. 실행 중인 Teleport Enterprise 클러스터. tctl and tsh clients.

Teleport의 Just-in-time 접근 요청을 사용하면 사용자가 권한을 상승시키기 위해 추가 역할에 대한 접근을 요청할 수 있습니다. 요청은 ChatOps를 통해 에스컬레이션할 수도 있고, 유연한 Authorization Workflow API를 통해 다른 어떤 방식으로든 에스컬레이션할 수 있습니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 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')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       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
     ```
   

 

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 명령을 실행할 수도 있습니다.

RBAC 설정#

이 예제에서는 세 가지 역할을 정의합니다.

  • contractor: 이 역할을 가진 사용자는 dba 역할에 대한 상승된 접근을 요청할 수 있습니다.
  • dba: 이 역할은 데이터베이스에 대한 접근 권한을 부여합니다.
  • approver: 이 역할을 가진 사용자는 dba 역할에 대한 접근 요청을 승인할 수 있습니다.

Contractor 역할

이 역할을 가진 사용자는 dba 역할에 대한 접근을 요청할 수 있습니다.

kind: role
version: v5
metadata:
  name: contractor
spec:
  allow:
    request:
      roles: ['dba']

DBA 역할

이 역할은 데이터베이스에 대한 접근 권한을 부여합니다.

kind: role
version: v5
metadata:
  name: dba
spec:
  allow:
    db_labels:
      '*': '*'
  options:
    # Only allows the contractor to use this role for 1 hour from time of request.
    max_session_ttl: 1h

Approver 역할

이 역할은 사용자가 dba 역할에 대한 접근 요청을 승인할 수 있도록 허용합니다.

kind: role
version: v5
metadata:
  name: approver
spec:
  allow:
    # `review_requests` permits the listed roles to be approved
    review_requests:
      roles:
      - 'dba'
Requires Teleport Enterprise

review_requests 규칙이 포함된 역할은 Teleport Enterprise에서만 사용할 수 있습니다. Teleport Community Edition에서는 접근 요청을 Auth Service에서 tctl을 실행하는 관리자가 승인해야 합니다.

접근 요청하기#

하나 이상의 역할에 대한 접근을 요청하려면 접근 요청 페이지로 이동합니다. 이 페이지는 사이드바에서 Resources를 선택하고 Access Requests 메뉴를 확장한 다음 New Request를 선택하면 찾을 수 있습니다.

여기서 드롭다운을 통해 역할 또는 특정 리소스에 대한 접근을 요청할 수 있습니다. 이 드롭다운에서 역할을 선택하면 접근을 요청할 수 있는 권한이 있는 역할 목록이 표시됩니다.

ADD TO REQUEST를 클릭하여 대기 중인 요청에 역할을 포함시킵니다.

참고: 접근 요청은 역할 또는 특정 리소스 집합 중 하나만 포함해야 합니다. 두 가지를 혼합할 수는 없습니다. 특정 리소스에 대한 접근을 요청하는 방법에 대한 자세한 내용은 리소스 접근 요청 가이드를 참조하세요.

New Request

원하는 모든 역할이 추가되면 PROCEED TO REQUEST를 클릭하여 요청을 검토하고 제출할 수 있습니다.

Submit Request

웹 UI를 사용하여 접근 요청을 생성하는 것을 권장하지만, 사용자는 tsh CLI를 사용하여 접근을 요청할 수도 있습니다.

웹 UI를 통해 접근 요청 검토하기#

리뷰어는 웹 UI에서 Identity Governance > Access Requests > Needs Review로 이동하여 열려 있는 요청 목록을 확인할 수 있습니다.

Warning

다른 역할을 편집할 수 있는 권한을 가진 역할에 대한 접근을 허용하면 사용자가 자신의 권한을 영구적으로 상승시킬 수 있습니다. 요청을 검토할 때는 요청되는 역할과 요청이 승인될 경우 사용자에게 적용될 권한을 신중하게 고려하는 것이 중요합니다.

tsh를 통해 접근 요청 검토하기#

적절한 권한을 가진 Teleport Enterprise 사용자는 tsh 명령줄을 통해서도 요청을 승인할 수 있습니다.

$ tsh request review --approve <request-id>

승인된 접근 요청 사용하기#

요청이 승인되면 요청자는 명령줄 워크플로와 웹 UI 워크플로 모두에서 접근 권한을 상승시킬 수 있습니다.

명령줄에서 사용하려면 요청자는 승인된 요청 ID를 사용하여 로그인해야 합니다.

# log in with an approved access request
$ tsh login --request-id=bc8ca931-fec9-4b15-9a6f-20c13c5641a9

웹 UI에서는 요청자가 Review Requests 페이지에서 자신의 요청을 열고 ASSUME ROLES를 클릭하여 추가 역할에 대한 접근 권한을 얻을 수 있습니다. 참고: 역할 기반 접근 요청은 누적됩니다. 사용자는 요청을 통해 부여된 역할에 더해 자신의 표준 역할 집합에 대한 접근 권한도 계속 유지합니다.

승인된 접근 요청이 활성화되어 있는 동안에는 페이지 상단에 배너가 표시됩니다. 상승된 접근 권한이 더 이상 필요하지 않을 때는 Switch Back을 클릭하여 원래 역할 집합으로 되돌릴 수 있습니다.

다음 단계#

SSH에 대한 접근 자동 요청#

역할 접근 요청을 구성하고 나면, 접근이 거부될 때 tsh ssh가 자동으로 역할 접근 요청을 생성하여 tsh request searchtsh request create 단계를 건너뛸 수 있게 해줍니다. 대상 노드에 대한 접근을 허용하는 역할이 두 개 이상인 경우, 요청할 역할을 선택하라는 메시지가 표시됩니다.

$ tsh ssh --request-mode role alice@iot
ERROR: access denied to alice connecting to iot on cluster teleport.example.com

You do not currently have access to alice@iot, attempting to request access.

Choose role to request [node-access, node-access-alt]: node-access
Enter request reason: please
Creating request...

Waiting for request approval...

Approval received, reason="okay"
Getting updated certificates...

iot:~ alice$

이 방식으로 역할 접근 요청을 하려면, 요청에 사용하는 역할에 원하는 노드를 읽을 수 있도록 search_as_roles가 설정되어 있어야 한다는 점에 유의하세요.

# requester.yaml
kind: role
version: v5
metadata:
  name: requester
spec:
  allow:
    request:
      roles:
        - node-access
      search_as_roles:
        # does not need to match roles, just needs to be able to access nodes
        # that you want to ssh into
        - access

외부 도구와 통합하기#

Teleport의 접근 요청 플러그인을 사용하면 사용자는 조직의 기존 메시징 및 프로젝트 관리 솔루션 내에서 접근 요청을 관리할 수 있습니다.

통합 유형 설정 방법
Slack 메시징 Slack 설정
Mattermost 메시징 Mattermost 설정
Microsoft Teams 메시징 Microsoft Teams 설정
Jira 프로젝트 보드 Jira 설정
PagerDuty 일정 PagerDuty 설정
Email 메시징 이메일 설정
Discord 메시징 Discord 설정
OpsGenie 인시던트 관리 OpsGenie 설정
ServiceNow 워크플로우 ServiceNow 설정
Datadog 인시던트 관리 Datadog 설정

접근 요청 구성 방법 알아보기#

조직을 위한 just-in-time 접근 요청 워크플로를 설정하기 위해 구성할 수 있는 모든 옵션에 대한 자세한 설명은 접근 요청 구성 가이드를 참조하세요.

접근 목록 설정하기#

접근 목록을 사용하면 정해진 기간 동안 사용자 그룹에 권한을 할당할 수 있습니다. 접근 목록에 대해 자세히 알아보려면 문서를 참조하세요.

역할 접근 요청

Teleport v18.9
원문 보기
요약

Teleport의 Just-in-time 접근 요청을 사용하면 사용자가 권한을 상승시키기 위해 추가 역할에 대한 접근을 요청할 수 있습니다. 실행 중인 Teleport Enterprise 클러스터. tctl and tsh clients.

Teleport의 Just-in-time 접근 요청을 사용하면 사용자가 권한을 상승시키기 위해 추가 역할에 대한 접근을 요청할 수 있습니다. 요청은 ChatOps를 통해 에스컬레이션할 수도 있고, 유연한 Authorization Workflow API를 통해 다른 어떤 방식으로든 에스컬레이션할 수 있습니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터. Teleport를 시작하려면 무료 체험판에 가입하거나 데모 환경을 구성하세요.

  • tctl and tsh clients.

    Installing `tctl` and `tsh` clients
    1. Teleport 클러스터의 버전을 확인합니다. tctl and tsh clients는 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')"
      
    2. 사용 중인 플랫폼에 대한 지침에 따라 tctl and tsh clients를 설치합니다:

Mac

     `tctl` and `tsh` clients가 포함된, 서명된 Teleport macOS .pkg 설치 프로그램을 다운로드합니다:
 
     ```code
     $ curl -O https://cdn.teleport.dev/teleport-${TELEPORT_VERSION?}.pkg
     ```

     Finder에서 `pkg` 파일을 더블 클릭하여 설치를 시작합니다.
 
     
Warning
       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
     ```
   

 

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 명령을 실행할 수도 있습니다.

RBAC 설정#

이 예제에서는 세 가지 역할을 정의합니다.

  • contractor: 이 역할을 가진 사용자는 dba 역할에 대한 상승된 접근을 요청할 수 있습니다.
  • dba: 이 역할은 데이터베이스에 대한 접근 권한을 부여합니다.
  • approver: 이 역할을 가진 사용자는 dba 역할에 대한 접근 요청을 승인할 수 있습니다.

Contractor 역할

이 역할을 가진 사용자는 dba 역할에 대한 접근을 요청할 수 있습니다.

kind: role
version: v5
metadata:
  name: contractor
spec:
  allow:
    request:
      roles: ['dba']

DBA 역할

이 역할은 데이터베이스에 대한 접근 권한을 부여합니다.

kind: role
version: v5
metadata:
  name: dba
spec:
  allow:
    db_labels:
      '*': '*'
  options:
    # Only allows the contractor to use this role for 1 hour from time of request.
    max_session_ttl: 1h

Approver 역할

이 역할은 사용자가 dba 역할에 대한 접근 요청을 승인할 수 있도록 허용합니다.

kind: role
version: v5
metadata:
  name: approver
spec:
  allow:
    # `review_requests` permits the listed roles to be approved
    review_requests:
      roles:
      - 'dba'
Requires Teleport Enterprise

review_requests 규칙이 포함된 역할은 Teleport Enterprise에서만 사용할 수 있습니다. Teleport Community Edition에서는 접근 요청을 Auth Service에서 tctl을 실행하는 관리자가 승인해야 합니다.

접근 요청하기#

하나 이상의 역할에 대한 접근을 요청하려면 접근 요청 페이지로 이동합니다. 이 페이지는 사이드바에서 Resources를 선택하고 Access Requests 메뉴를 확장한 다음 New Request를 선택하면 찾을 수 있습니다.

여기서 드롭다운을 통해 역할 또는 특정 리소스에 대한 접근을 요청할 수 있습니다. 이 드롭다운에서 역할을 선택하면 접근을 요청할 수 있는 권한이 있는 역할 목록이 표시됩니다.

ADD TO REQUEST를 클릭하여 대기 중인 요청에 역할을 포함시킵니다.

참고: 접근 요청은 역할 또는 특정 리소스 집합 중 하나만 포함해야 합니다. 두 가지를 혼합할 수는 없습니다. 특정 리소스에 대한 접근을 요청하는 방법에 대한 자세한 내용은 리소스 접근 요청 가이드를 참조하세요.

New Request

원하는 모든 역할이 추가되면 PROCEED TO REQUEST를 클릭하여 요청을 검토하고 제출할 수 있습니다.

Submit Request

웹 UI를 사용하여 접근 요청을 생성하는 것을 권장하지만, 사용자는 tsh CLI를 사용하여 접근을 요청할 수도 있습니다.

웹 UI를 통해 접근 요청 검토하기#

리뷰어는 웹 UI에서 Identity Governance > Access Requests > Needs Review로 이동하여 열려 있는 요청 목록을 확인할 수 있습니다.

Warning

다른 역할을 편집할 수 있는 권한을 가진 역할에 대한 접근을 허용하면 사용자가 자신의 권한을 영구적으로 상승시킬 수 있습니다. 요청을 검토할 때는 요청되는 역할과 요청이 승인될 경우 사용자에게 적용될 권한을 신중하게 고려하는 것이 중요합니다.

tsh를 통해 접근 요청 검토하기#

적절한 권한을 가진 Teleport Enterprise 사용자는 tsh 명령줄을 통해서도 요청을 승인할 수 있습니다.

$ tsh request review --approve <request-id>

승인된 접근 요청 사용하기#

요청이 승인되면 요청자는 명령줄 워크플로와 웹 UI 워크플로 모두에서 접근 권한을 상승시킬 수 있습니다.

명령줄에서 사용하려면 요청자는 승인된 요청 ID를 사용하여 로그인해야 합니다.

# log in with an approved access request
$ tsh login --request-id=bc8ca931-fec9-4b15-9a6f-20c13c5641a9

웹 UI에서는 요청자가 Review Requests 페이지에서 자신의 요청을 열고 ASSUME ROLES를 클릭하여 추가 역할에 대한 접근 권한을 얻을 수 있습니다. 참고: 역할 기반 접근 요청은 누적됩니다. 사용자는 요청을 통해 부여된 역할에 더해 자신의 표준 역할 집합에 대한 접근 권한도 계속 유지합니다.

승인된 접근 요청이 활성화되어 있는 동안에는 페이지 상단에 배너가 표시됩니다. 상승된 접근 권한이 더 이상 필요하지 않을 때는 Switch Back을 클릭하여 원래 역할 집합으로 되돌릴 수 있습니다.

다음 단계#

SSH에 대한 접근 자동 요청#

역할 접근 요청을 구성하고 나면, 접근이 거부될 때 tsh ssh가 자동으로 역할 접근 요청을 생성하여 tsh request searchtsh request create 단계를 건너뛸 수 있게 해줍니다. 대상 노드에 대한 접근을 허용하는 역할이 두 개 이상인 경우, 요청할 역할을 선택하라는 메시지가 표시됩니다.

$ tsh ssh --request-mode role alice@iot
ERROR: access denied to alice connecting to iot on cluster teleport.example.com

You do not currently have access to alice@iot, attempting to request access.

Choose role to request [node-access, node-access-alt]: node-access
Enter request reason: please
Creating request...

Waiting for request approval...

Approval received, reason="okay"
Getting updated certificates...

iot:~ alice$

이 방식으로 역할 접근 요청을 하려면, 요청에 사용하는 역할에 원하는 노드를 읽을 수 있도록 search_as_roles가 설정되어 있어야 한다는 점에 유의하세요.

# requester.yaml
kind: role
version: v5
metadata:
  name: requester
spec:
  allow:
    request:
      roles:
        - node-access
      search_as_roles:
        # does not need to match roles, just needs to be able to access nodes
        # that you want to ssh into
        - access

외부 도구와 통합하기#

Teleport의 접근 요청 플러그인을 사용하면 사용자는 조직의 기존 메시징 및 프로젝트 관리 솔루션 내에서 접근 요청을 관리할 수 있습니다.

통합 유형 설정 방법
Slack 메시징 Slack 설정
Mattermost 메시징 Mattermost 설정
Microsoft Teams 메시징 Microsoft Teams 설정
Jira 프로젝트 보드 Jira 설정
PagerDuty 일정 PagerDuty 설정
Email 메시징 이메일 설정
Discord 메시징 Discord 설정
OpsGenie 인시던트 관리 OpsGenie 설정
ServiceNow 워크플로우 ServiceNow 설정
Datadog 인시던트 관리 Datadog 설정

접근 요청 구성 방법 알아보기#

조직을 위한 just-in-time 접근 요청 워크플로를 설정하기 위해 구성할 수 있는 모든 옵션에 대한 자세한 설명은 접근 요청 구성 가이드를 참조하세요.

접근 목록 설정하기#

접근 목록을 사용하면 정해진 기간 동안 사용자 그룹에 권한을 할당할 수 있습니다. 접근 목록에 대해 자세히 알아보려면 문서를 참조하세요.