목차
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 검토 및 승인 정책 적용.
- 워크플로우 내 비밀 키 관리 강화.
마무리
오늘은 설명을 위한 이미지 자료가 부족합니다.
'study > Git&Github' 카테고리의 다른 글
| [Git & GitHub] - 트러블 슈팅과 실무 활용 (0) | 2025.02.07 |
|---|---|
| [Git & GitHub] - 커밋 수정과 되돌리기 (0) | 2025.02.05 |
| [Git & GitHub] - Github 협업 기능 이해 및 활용 (1) | 2025.02.04 |
| [Git & GitHub] - Fork & Pull Request (1) | 2025.02.04 |
| [Git & GitHub] - GitHub 기초 (0) | 2025.02.03 |