'
본문 바로가기
study/Git&Github

[Git & GitHub] - 협업과 보안 설정

by meowdule 2025. 2. 6.

 

1. 팀원 권한 관리

 

GitHub에서는 프로젝트의 기여자와 팀원의 역할에 따라 권한을 설정할 수 있습니다.
효과적인 협업과 보안을 위해 적절한 권한 관리가 중요합니다.

 

1) 권한 수준 설명

  • Owner (소유자): 저장소 및 조직의 모든 권한을 보유합니다.
  • Maintainer: 프로젝트의 주요 관리자로, PR 승인 및 병합, 설정 변경 가능.
  • Collaborator (협력자): 코드 변경, PR 요청, 이슈 생성 가능.
  • Read Access (읽기 권한): 코드 열람 및 이슈 확인만 가능.

2) 권한 설정 방법

  • Settings → Manage Access에서 팀원에게 권한을 부여하거나 변경할 수 있습니다.
  • 필요한 작업에 따라 최소 권한 원칙을 적용하는 것이 보안을 강화하는 방법입니다.

3) 권한 관리 보안 팁

  • 민감한 프로젝트에서는 Owner 권한을 최소 인원에게만 부여합니다.
  • Collaborator의 권한을 주기적으로 검토하고 필요 시 변경합니다.
 

 

 

2. GitHub 보안 정책 및 기능

 

1) 저장소 비공개 전환 및 접근 관리

  • 프로젝트가 외부에 노출되지 않도록 비공개(Private)로 설정 가능합니다.
  • 개인 저장소에서는 비공개 설정이 기본이며, 팀 프로젝트에서는 필요에 따라 설정 변경.

2) GitHub Dependabot

  • Dependabot은 의존성(Dependency) 업데이트 및 보안 취약점 패치를 자동으로 관리하는 기능입니다.
  • 보안 경고가 발생할 경우, Dependabot이 자동으로 PR을 생성하여 패치 요청을 제출합니다.

3) 비밀 키 및 토큰 관리

  • .env 파일 또는 GitHub Secrets 기능을 통해 API 키, 비밀 토큰 등의 민감한 정보를 보호합니다.
  • 코드 내에 민감한 정보가 직접 노출되지 않도록 주의해야 합니다.
 

 

 

3. GitHub Actions를 활용한 CI/CD

 

GitHub Actions는 자동화 워크플로우를 구축할 수 있는 강력한 기능입니다.
자동화된 테스트 및 배포 파이프라인을 통해 개발 프로세스를 효율화할 수 있습니다.

 

1) 기본 개념

  • 워크플로우(Workflow): 특정 이벤트 발생 시 자동으로 실행되는 작업 집합.
  • Job: 워크플로우에서 수행하는 개별 작업 단위.
  • Step: Job 내에서 실행되는 각 단계.

2) 주요 사용 사례

  • 코드 푸시 시 자동 테스트 실행.
  • PR 병합 시 프로덕션 환경으로 배포.
  • 지속적 통합 및 배포(CI/CD) 환경 구축.

3) 예시 워크플로우

name: CI/CD Pipeline

on:
  push:
    branches:
      - main

jobs:
  build-and-test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: Run Tests
        run: npm test
      - name: Deploy
        run: npm run deploy
 

 

 

4. Advanced Fork & Collaboration Workflows

 

1) 대규모 협업에서 Fork의 활용 전략

  • 오픈 소스 프로젝트에서는 수많은 기여자가 각자 Fork를 생성하여 작업합니다.
  • Pull Request(PR)를 통해 변경사항을 검토 후 병합합니다.
  • 협업 과정에서 팀원 간의 리뷰 및 승인 절차를 문서화하여 일관성을 유지합니다.

2) 서브모듈과 모노리포 관리

  • 대규모 프로젝트에서는 Git 서브모듈이나 모노리포(Monorepo) 구조가 사용됩니다.
  • 서브모듈은 외부 프로젝트를 의존성으로 포함하여 관리할 수 있습니다.
     
git submodule add <외부 저장소 URL>
 

 

 

5. 보안 관련 GitHub 실무 사례 및 팁

 

1) 주요 보안 사고 사례

  • 코드에 민감한 정보(비밀 키, 토큰 등)가 노출되어 보안 침해 발생.
  • 협업 중 잘못된 권한 설정으로 인해 데이터 유출 또는 변경 사고 발생.

2) 예방 조치

  • 주기적인 보안 점검: GitHub에서 제공하는 보안 경고 확인.
  • GitHub Advanced Security 기능 활용: 비밀 정보 검색 및 경고 기능 사용.
  • 권장 설정 목록:
    • 두 단계 인증(2FA) 활성화.
    • PR 검토 및 승인 정책 적용.
    • 워크플로우 내 비밀 키 관리 강화.
 

 

 

마무리
오늘은 설명을 위한 이미지 자료가 부족합니다.