Git 저장소 보호 구성하기

Git 저장소 보호 구성하기

Git Sync가 올바르게 동작하려면 두 계층에서 권한을 구성해야 해요.

  • Git 제공자 레벨에서 저장소를 보호하는 것 (이 문서에서 설명).
  • 저장소 관리와 리소스 접근을 위한 Grafana 레벨. 자세한 내용은 Git Sync 권한 및 접근 제어를 참고하세요.

Git Sync를 사용하면 대시보드 구성이 Git 저장소에 코드로 저장돼요. 이 소스 코드에 접근할 수 있는 사람과 수정할 수 있는 사람을 통제하도록 Git 저장소 보호를 구성할 수 있어요. 저장소 보호는 Grafana 내부 권한 다음에 오는 추가 보안 계층이에요.

출처: 문서

본문

Git 제공자 레벨에서 필요한 권한

Git Sync 인증 자격 증명은 Git 제공자에서 특정 권한을 가져야 해요.

모든 구성에 필요한 것:

  • 저장소 콘텐츠에 대한 읽기 권한
  • 브랜치 정보에 대한 읽기 권한

변경 사항을 쓰기 위해 필요한 것:

  • 커밋을 만들기 위한 쓰기 권한
  • 풀 리퀘스트를 만들 권한 (브랜치 보호가 활성화된 경우)
  • 기능 브랜치로 푸시할 권한 (풀 리퀘스트를 만들려면)

즉시 동기화를 위한 선택 사항:

  • 웹훅을 만들고 관리할 권한

Git 제공자용 인증 구성에 대한 자세한 지침은 Git Sync 설정 문서를 참고하세요.

대시보드 소스 코드에 대한 접근 제어

대시보드 소스 코드에는 각각 자체 보호 메커니즘이 있는 두 경로로 접근할 수 있어요.

  • Grafana files 엔드포인트: 사용자는 Grafana files API 엔드포인트로 대시보드 소스 코드를 보고 편집할 수 있어요. 접근 제어는 Grafana 폴더와 대시보드 권한을 사용해요. API를 통한 대시보드 소스 코드 접근 관리 문서를 참고하세요.
  • Git 저장소: 저장소 접근 권한이 있는 사용자는 대시보드 파일을 Git에서 직접 보고 수정할 수 있어요. 저장소 권한은 Git 제공자에서 통제할 수 있어요. Git 저장소 접근 제어 문서를 참고하세요.

대시보드 구성을 보호하려면 두 접근 지점을 모두 보호하세요.

API를 통한 대시보드 소스 코드 접근 관리

대시보드 소스 코드 보기

대시보드나 상위 폴더에 대한 Viewer 권한 이상이 있으면 files 엔드포인트로 대시보드 소스 코드를 볼 수 있어요. 이를 통해:

  • 프로비저닝된 폴더와 브랜치의 파일 목록 보기
  • 대시보드 JSON 콘텐츠 읽기
  • 폴더 구조와 구성 보기

대시보드 소스 코드 편집

대시보드나 상위 폴더에 대한 Editor 또는 Admin 권한이 있으면 files 엔드포인트로 대시보드 소스 코드를 수정할 수 있어요. 이를 통해:

  • 새 대시보드 파일 만들기
  • 기존 대시보드 콘텐츠 업데이트
  • 대시보드 삭제
  • 폴더 구조 수정

이 엔드포인트로 변경 사항을 저장하면 Git Sync가 그 변경 사항을 Git 저장소에 커밋해요 (브랜치 보호가 활성화되면 풀 리퀘스트를 만들고). Git 저장소 권한의 적용을 받아요.

Grafana에서 폴더와 대시보드 권한을 구성하는 자세한 내용은 Git Sync 권한 및 접근 제어를 참고하세요.

Git 저장소에 대한 접근 제어

Git 제공자 레벨의 접근 제어가 대시보드 소스 코드를 보고 수정할 수 있는 사람을 결정해요. 보안·규정 준수 요구 사항에 따라 저장소 접근을 구성하세요.

읽기 접근 (저장소 가시성)

읽기 접근은 저장소에 저장된 대시보드 소스 코드를 볼 수 있는 사람을 통제해요. 대시보드 JSON 파일, 폴더 구조, 저장소의 다른 파일들이 포함돼요.

  • 공개(Public) 저장소: 누구나 저장소 콘텐츠(대시보드 구성과 그 안의 데이터·쿼리 포함)를 볼 수 있어요. 대시보드에 민감한 정보가 없을 때만 공개 저장소를 쓰세요.
  • 비공개(Private) 저장소: 승인된 사용자만 저장소 콘텐츠를 볼 수 있어요. 대시보드 구성, 쿼리, 포함된 자격 증명이나 민감한 데이터를 공개로부터 보호해요.

Git Sync가 동작하려면 Grafana에 구성된 인증 자격 증명이 Git에서 Grafana로 대시보드 변경 사항을 가져올 읽기 권한을 가져야 해요.

쓰기 접근 (푸시 권한)

쓰기 접근은 저장소에 변경 사항을 푸시할 수 있는 사람을 통제해요. 대시보드 소스 코드를 직접 또는 풀 리퀘스트를 통해 수정할 수 있는 사람을 결정해요.

  • 직접 쓰기 접근: 쓰기 권한이 있는 사용자는 브랜치에 커밋을 직접 푸시할 수 있어요. Git Sync가 Grafana에서 Git으로 대시보드 변경 사항을 푸시하려면 인증 자격 증명이 저장소에 대한 쓰기 권한을 가져야 해요.
  • 보호된 브랜치: 브랜치 보호 규칙이 직접 쓰기를 제한하고, 쓰기 권한이 있는 사용자도 검토·승인을 거친 풀 리퀘스트를 통해 변경 사항이 들어가도록 요구할 수 있어요.

Git 제공자용 인증 구성 자세한 지침은 Git Sync 설정 문서를 참고하세요.

Git Sync에서 변경 사항이 쓰이는 방식 제어

Git Sync는 직접 커밋 허용부터 공식 검토 프로세스 요구까지, 대시보드 변경 사항을 저장소에 쓰는 여러 모드를 지원해요.

읽기 전용 모드

Grafana에서 저장소를 읽기 전용으로 구성하면 Grafana UI에서 Git으로의 어떤 쓰기도 막아요. 대시보드는 Git에서 Grafana로 동기화되지만, 사용자는 변경 사항을 Git으로 저장할 수 없어요.

언제 쓰나요: Git이 단일 진실 원천이고 모든 변경이 직접 Git 커밋이나 CI/CD 프로세스를 통해 이뤄져야 할 때.

직접 커밋 모드

저장소가 쓰기를 허용하고 브랜치 보호가 활성화되지 않았으면, Git Sync는 검토 없이 대시보드 변경 사항을 구성된 브랜치에 직접 커밋해요.

언제 쓰나요: 신속한 반복이 필요하고 변경에 공식 검토가 필요 없을 때, 예: 개발 환경.

풀 리퀘스트 모드

Git 제공자에서 브랜치 보호가 활성화되어 있으면, Git Sync는 직접 커밋하는 대신 Git 저장소에 풀 리퀘스트를 만들도록 안내해요. 변경 사항은 메인 브랜치에 병합되기 전에 검토와 승인이 필요해요.

언제 쓰나요: 변경에 검토와 승인이 필요할 때, 예: 프로덕션 환경 또는 여러 팀이 대시보드에서 협업할 때.

브랜치 보호

Git 제공자의 브랜치 보호 규칙은 특정 브랜치에 변경 사항이 이뤄지는 방식을 강제해요. Git Sync가 대상으로 하는 브랜치에서 활성화되면, 이 규칙은 Git Sync가 커밋을 직접 푸시하는 대신 풀 리퀘스트를 만들도록 요구해요.

브랜치 보호의 일반적인 사용 사례:

  • 변경 승인이 필요한 프로덕션 환경
  • 감사 추적과 검토를 위한 규정 준수 요구 사항
  • 변경 사항에 가시성이 필요한 다중 팀 환경

브랜치 보호는 병합 전 풀 리퀘스트 요구, 리뷰어 승인 요구, 자동 검증 점검 실행, 강제 푸시 방지, 보호된 브랜치에 직접 푸시할 수 있는 사람 제한 등 다양한 통제를 강제할 수 있어요.

브랜치 보호 규칙 구성에 대한 구체적인 지침은 Git 제공자 문서를 참고하세요.

코드 리뷰 할당

많은 Git 제공자는 변경된 파일에 따라 풀 리퀘스트에 리뷰어를 자동으로 할당하는 CODEOWNERS 파일을 지원해요. Git Sync가 풀 리퀘스트를 만들면 Git 제공자는 CODEOWNERS 파일로 해당 대시보드를 담당하는 팀이나 사용자를 리뷰에 할당할 수 있어요.

폴더 경로나 파일 패턴 기준으로, 해당 대시보드를 담당하는 팀이 대시보드 변경 사항을 검토하도록 보장해요.

CODEOWNERS 파일 구성 지침은 Git 제공자 문서를 참고하세요.

문제 해결

권한 문제 해결은 Git Sync 권한 문서의 권한 문제 해결을 참고하세요.

더 알아보기 (Learn more)