Infograb logo
Teleport 정책으로 GitLab 접근 패턴 발견하기

Teleport 정책의 접근 그래프를 사용하면 GitLab 계정 내의 접근 패턴에 대한 통찰력을 얻을 수 있습니다. 모든 권한, 사용자, 그룹 및 프로젝트를 스캔하여 GitLab 환경 내에서 권한 모델을 향상시키는 데 도움이 되는 시각적 표현을 제공합니다. 이 기능을 통해 다음과 같은 질문에 답변할 수 있습니다:

  • 사용자에게 접근할 수 있는 프로젝트는 무엇인가요?
  • 어떤 사용자가 프로젝트에 대한 쓰기 권한을 가지고 있나요?

접근 그래프는 Teleport Enterprise 에디션 고객이 사용할 수 있는 Teleport 정책 제품의 기능입니다.

Teleport UI에 로그인한 후, 관리 탭으로 이동합니다. 활성화된 경우, 접근 그래프 옵션은 권한 관리 섹션에서 찾을 수 있습니다.

작동 방식

접근 그래프는 사용자, 프로젝트 및 그룹을 포함한 다양한 GitLab 리소스를 동기화합니다. 이러한 리소스는 접근 그래프 페이지에서 자세히 설명된 그래프 표현을 사용하여 시각화됩니다.

가져오기 과정은 두 가지 주요 단계로 구성됩니다:

GitLab API 폴링

Teleport 클러스터는 구성된 GitLab 계정을 지속적으로 스캔하고 다음 리소스를 검색합니다:

  • 사용자
  • 그룹
  • 프로젝트
  • 그룹 구성원
  • 프로젝트 구성원

필요한 모든 리소스가 수집되면 Teleport는 이를 접근 그래프에 푸시하여 GitLab 인스턴스의 최신 정보를 유지합니다.

리소스 가져오기

Teleport 정책의 접근 그래프 기능은 가져온 리소스와 그 관계를 탐색하여 시각적 표현을 만듭니다.

전제 조건

  • 실행 중인 Teleport Enterprise 클러스터 v14.3.20/v15.3.1/v16.0.0 이상.
  • 귀하의 계정에 대해 Teleport 정책이 활성화되어 있어야 합니다.
  • GitLab v9.0 이상이 실행 중인 GitLab 인스턴스.
  • 자가 호스팅 클러스터의 경우:
    • Auth Service 구성에서 최신 license.pem 파일이 사용되고 있는지 확인하십시오.
    • 실행 중인 접근 그래프 노드 v1.21.4 이상. 자세한 정보는 Teleport 정책 페이지를 확인하여 접근 그래프를 설정하는 방법을 확인하십시오.
    • 접근 그래프 서비스를 실행하는 노드는 Teleport Auth Service에서 접근 가능해야 합니다.

1/3단계. GitLab 토큰 생성하기

GitLab 통합을 설정하려면 다음 권한이 있는 GitLab 토큰을 생성해야 합니다:

  • read_api

귀하의 GitLab 인스턴스로 이동하여 사용자 설정에 접속하고 접근 토큰 옵션을 선택하십시오. read_api 범위를 가진 새 토큰을 생성하고 생성된 토큰을 복사하십시오. 더 많은 정보는 GitLab 문서를 참조하십시오.

가져오기 프로그램은 이 토큰을 사용하여 귀하의 GitLab 인스턴스에서 필요한 리소스를 가져옵니다.

GitLab 가져오기 프로그램은 토큰이 접근할 수 있는 리소스만 가져옵니다. 토큰과 연결된 사용자가 가져오고자 하는 리소스에 대한 접근/보기 권한을 가지고 있는지 확인하십시오.

GitLab.com 계정을 사용하는 경우, 가져오기 프로그램은 조직의 일부이거나 토큰이 접근할 수 있는 프로젝트에 접근할 수 있는 사용자만 가져옵니다.

자가 호스팅 GitLab 인스턴스를 사용하는 경우, 가져오기 프로그램은 토큰이 접근할 수 있는 모든 리소스를 가져오며 인스턴스의 모든 사용자도 포함됩니다.

이 토큰은 다음 단계에서 GitLab 동기화 통합을 구성하는 데 사용됩니다.

2/3단계. Access Graph GitLab Sync 설정

GitLab Sync 구성 마법사를 시작하려면 Teleport UI에 액세스하고, Management 탭으로 이동하여 Permission Management 섹션의 Access Graph 옵션을 선택하십시오.

Access Graph 페이지에서 Integrations 라는 레이블이 붙은 버튼을 찾을 수 있습니다. 이를 클릭하여 Integrations 페이지로 이동합니다. Integrations 페이지에서 GitLab 통합 옆에 있는 Setup 버튼을 클릭하십시오.

1단계에서 생성된 GitLab 토큰과 GitLab 인스턴스 도메인을 제공하라는 메시지가 표시됩니다. 토큰이 성공적으로 검증되면 Access Graph에 가져온 리소스를 볼 수 있습니다.

3/3단계. Access Graph에서 GitLab 리소스 보기

GitLab 리소스가 가져온 후, Access Graph 페이지에서 이를 볼 수 있습니다. 그래프 표현은 GitLab 인스턴스 내의 사용자, 그룹 및 프로젝트 간의 관계를 보여줍니다.

사용자는 그룹 또는 프로젝트에 대한 액세스 권한을 가질 수 있습니다. 사용자가 그룹에 액세스할 수 있는 경우, 해당 그룹 내의 모든 프로젝트 및 하위 프로젝트에 대한 권한을 상속받습니다.

그래프의 각 노드를 클릭하여 사용자, 그룹 및 프로젝트에 부여된 권한을 확인할 수 있습니다.

예를 들어, 사용자에게 부여된 권한을 보려면 사용자 노드를 클릭하고 컨텍스트 메뉴에서 View Access 를 선택하십시오. 그러면 사용자에게 부여된 권한과 그들이 액세스할 수 있는 리소스가 표시됩니다.

Access Graph에서 특정 정보를 가져오기 위해 쿼리를 실행할 수도 있습니다, 예를 들어:

사용자에게 액세스 가능한 모든 프로젝트 가져오기

다음 쿼리는 사용자 user가 액세스할 수 있는 모든 프로젝트를 가져옵니다:

SELECT * FROM access_path WHERE "identity" = 'user' AND source='Gitlab'

또한, 사용자의 액세스 수준에 따라 프로젝트를 필터링할 수 있습니다: owner , maintainer , developer , guest , 또는 reporter 로 다음 쿼리를 실행하십시오:

SELECT * FROM access_path WHERE "identity" = 'user' AND source='Gitlab' AND action='owner'

action 매개변수를 maintainer , developer , guest , 또는 reporter 로 변경하여 해당 프로젝트를 가져옵니다.

프로젝트에 대한 쓰기 액세스 권한이 있는 모든 사용자 가져오기

다음 쿼리는 project라는 프로젝트에 대한 읽기/쓰기 액세스 권한이 있는 모든 사용자를 가져옵니다:

SELECT * FROM access_path WHERE "resource" = 'project' AND source='Gitlab'

문제 해결

GitLab 통합을 설정한 후 Access Graph의 Integrations 페이지에서 가져오기 과정 상태를 모니터링할 수 있습니다. 가져오기가 실패하면 오류 메시지가 문제를 식별하는 데 도움이 됩니다.

가져오기 프로세스가 현재 실행 중인지 또는 성공적으로 완료되었는지 상태를 확인하여 확인할 수 있습니다.

Unauthorized 오류가 발생하는 경우, GitLab 토큰이 리소스에 액세스할 수 있는 필요한 권한을 가지고 있는지 확인하고 토큰이 유효한지 확인하십시오. 토큰이 만료된 경우, 새 토큰을 생성하고 통합 설정을 업데이트해야 합니다.

기타 문제가 발생하는 경우, Teleport 클러스터가 GitLab 인스턴스에 도달할 수 있고 GitLab API에 접근할 수 있는지 확인하십시오.

여전히 문제가 발생하면 Access Graph의 Integrations 페이지에서 오류 로그를 점검하여 자세한 내용을 확인하십시오.

Teleport 원문 보기