InfoGrab DocsInfoGrab Docs

Teleport Identity Security로 GitLab 접근 패턴 탐색

요약

Access Graph를 사용하는 Identity Security로 GitLab 계정 내 접근 패턴에 대한 인사이트를 얻으세요. 이 가이드에서는 Teleport Access Graph와 GitLab 통합을 설정하고 GitLab 접근 패턴을 분석합니다.

Access Graph를 사용하는 Identity Security로 GitLab 계정 내 접근 패턴에 대한 인사이트를 얻으세요. 모든 권한, 사용자, 그룹, 프로젝트를 스캔하여 GitLab 환경 내 권한 모델을 개선하는 데 도움이 되는 시각적 표현을 제공합니다. 이 기능을 통해 다음과 같은 질문에 답할 수 있습니다:

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

이 가이드에서는 Teleport Access Graph와 GitLab 통합을 설정하고 GitLab 접근 패턴을 분석합니다.

Access Graph은 Teleport Enterprise 에디션 고객이 사용할 수 있는 Teleport Identity Security 제품의 기능입니다.

클러스터에 Access Graph이 올바르게 설정되었는지 확인하려면 Teleport Web UI에 로그인하고 Identity Security 사이드바 버튼을 클릭한 다음 Browse 메뉴 항목을 클릭합니다. 아이덴티티, 리소스 등이 나열되어야 합니다.

작동 방식#

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

가져오기 프로세스는 두 가지 주요 단계로 이루어집니다:

GitLab API 폴링#

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

  • 사용자
  • 그룹
  • 프로젝트
  • 그룹 멤버십
  • 프로젝트 멤버십

필요한 모든 리소스를 가져온 후, Teleport는 이를 Access Graph에 푸시하여 GitLab 인스턴스의 최신 정보로 항상 업데이트된 상태를 유지합니다.

리소스 가져오기#

Identity Security의 Access Graph 기능은 가져온 리소스와 그 관계를 심층적으로 분석하여 그래픽 표현을 만듭니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터 v15.3.1 이상.
  • 계정에 Identity Security가 활성화되어 있어야 합니다.
  • GitLab v9.0 이상을 실행 중인 GitLab 인스턴스.
  • 자체 호스팅 클러스터의 경우:
    • Auth Service 구성에서 최신 license.pem이 사용되고 있는지 확인하세요.
    • 실행 중인 Access Graph 노드 v1.21.4 이상. Access Graph 설정 방법에 대한 자세한 내용은 Identity Security 페이지를 확인하세요.
    • Access Graph 서비스를 실행하는 노드는 Teleport Auth Service에서 접근 가능해야 합니다.

1/3단계. GitLab 토큰 생성#

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

  • read_api

GitLab 인스턴스로 이동하여 User Settings에 접근한 다음, Access Tokens 옵션을 선택하세요. read_api 스코프로 새 토큰을 생성하고 생성된 토큰을 복사하세요. 자세한 내용은 GitLab 문서를 참조하세요.

임포터는 이 토큰을 사용하여 GitLab 인스턴스에서 필요한 리소스를 가져옵니다.

Warning

GitLab 임포터는 토큰이 접근 권한을 가진 리소스만 가져옵니다. 토큰과 연결된 사용자가 가져오려는 리소스에 접근/조회할 수 있는 필요한 권한을 가지고 있는지 확인하세요.

GitLab.com 계정을 사용하는 경우, 임포터는 조직에 속하거나 토큰이 접근할 수 있는
프로젝트에 접근 권한이 있는 사용자만 가져옵니다.

자체 호스팅 GitLab 인스턴스를 사용하는 경우, 임포터는 토큰이 접근 권한을 가진 모든
리소스를 가져오며, 여기에는 해당 인스턴스에 속한 모든 사용자가 포함됩니다.

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

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

Gitlab Sync 구성을 위한 설정 마법사를 시작하려면 Teleport UI에 접근하여 Identity Security 사이드바 버튼을 클릭한 다음 Integrations를 클릭하세요.

"Setup new integration" 버튼을 클릭한 다음 "Gitlab"을 선택하세요. 아직 구성한 적이 없다면 새 Teleport Gitlab 통합을 생성하라는 메시지가 표시됩니다. 또는 이미 구성된 통합을 선택할 수도 있습니다.

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 Identity Security로 GitLab 접근 패턴 탐색

Teleport v18.9
원문 보기
요약

Access Graph를 사용하는 Identity Security로 GitLab 계정 내 접근 패턴에 대한 인사이트를 얻으세요. 이 가이드에서는 Teleport Access Graph와 GitLab 통합을 설정하고 GitLab 접근 패턴을 분석합니다.

Access Graph를 사용하는 Identity Security로 GitLab 계정 내 접근 패턴에 대한 인사이트를 얻으세요. 모든 권한, 사용자, 그룹, 프로젝트를 스캔하여 GitLab 환경 내 권한 모델을 개선하는 데 도움이 되는 시각적 표현을 제공합니다. 이 기능을 통해 다음과 같은 질문에 답할 수 있습니다:

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

이 가이드에서는 Teleport Access Graph와 GitLab 통합을 설정하고 GitLab 접근 패턴을 분석합니다.

Access Graph은 Teleport Enterprise 에디션 고객이 사용할 수 있는 Teleport Identity Security 제품의 기능입니다.

클러스터에 Access Graph이 올바르게 설정되었는지 확인하려면 Teleport Web UI에 로그인하고 Identity Security 사이드바 버튼을 클릭한 다음 Browse 메뉴 항목을 클릭합니다. 아이덴티티, 리소스 등이 나열되어야 합니다.

작동 방식#

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

가져오기 프로세스는 두 가지 주요 단계로 이루어집니다:

GitLab API 폴링#

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

  • 사용자
  • 그룹
  • 프로젝트
  • 그룹 멤버십
  • 프로젝트 멤버십

필요한 모든 리소스를 가져온 후, Teleport는 이를 Access Graph에 푸시하여 GitLab 인스턴스의 최신 정보로 항상 업데이트된 상태를 유지합니다.

리소스 가져오기#

Identity Security의 Access Graph 기능은 가져온 리소스와 그 관계를 심층적으로 분석하여 그래픽 표현을 만듭니다.

사전 요구사항#

  • 실행 중인 Teleport Enterprise 클러스터 v15.3.1 이상.
  • 계정에 Identity Security가 활성화되어 있어야 합니다.
  • GitLab v9.0 이상을 실행 중인 GitLab 인스턴스.
  • 자체 호스팅 클러스터의 경우:
    • Auth Service 구성에서 최신 license.pem이 사용되고 있는지 확인하세요.
    • 실행 중인 Access Graph 노드 v1.21.4 이상. Access Graph 설정 방법에 대한 자세한 내용은 Identity Security 페이지를 확인하세요.
    • Access Graph 서비스를 실행하는 노드는 Teleport Auth Service에서 접근 가능해야 합니다.

1/3단계. GitLab 토큰 생성#

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

  • read_api

GitLab 인스턴스로 이동하여 User Settings에 접근한 다음, Access Tokens 옵션을 선택하세요. read_api 스코프로 새 토큰을 생성하고 생성된 토큰을 복사하세요. 자세한 내용은 GitLab 문서를 참조하세요.

임포터는 이 토큰을 사용하여 GitLab 인스턴스에서 필요한 리소스를 가져옵니다.

Warning

GitLab 임포터는 토큰이 접근 권한을 가진 리소스만 가져옵니다. 토큰과 연결된 사용자가 가져오려는 리소스에 접근/조회할 수 있는 필요한 권한을 가지고 있는지 확인하세요.

GitLab.com 계정을 사용하는 경우, 임포터는 조직에 속하거나 토큰이 접근할 수 있는
프로젝트에 접근 권한이 있는 사용자만 가져옵니다.

자체 호스팅 GitLab 인스턴스를 사용하는 경우, 임포터는 토큰이 접근 권한을 가진 모든
리소스를 가져오며, 여기에는 해당 인스턴스에 속한 모든 사용자가 포함됩니다.

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

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

Gitlab Sync 구성을 위한 설정 마법사를 시작하려면 Teleport UI에 접근하여 Identity Security 사이드바 버튼을 클릭한 다음 Integrations를 클릭하세요.

"Setup new integration" 버튼을 클릭한 다음 "Gitlab"을 선택하세요. 아직 구성한 적이 없다면 새 Teleport Gitlab 통합을 생성하라는 메시지가 표시됩니다. 또는 이미 구성된 통합을 선택할 수도 있습니다.

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 페이지에서 오류 로그를 확인하세요.