Docker Registry 에 Project 생성
gitlab 의 프로젝트와 연결할 docker registry 의 project 를 생성해줍니다.
프로젝트 이름을 적고, 프로젝트 설정을 진행합니다. Project quota limits 는 프로젝트에서 사용할 수 있는 저장 공간 제한이고, -1 은 무제한을 뜻합니다.
이제 이 프로젝트에 이미지를 Push 할 수 있고, 저장된 이미지를 Pull 할 수도 있습니다.
Docker Registry 에 Robot Account 생성
Robot Account
Harbor에서 생성할 수 있는 특수한 계정 유형으로, 사람이 직접 로그인하는 것이 아닌 자동화된 시스템이나 CI/CD 파이프라인이 Harbor 레지스트리에 접근할 수 있도록 만들어진 비인간 사용자 계정입니다.
주요 특징
- 프로젝트 단위로 생성됨 (global 이 아니고, 프로젝트에 귀속됨)
- 사용자 이름은 robot$ 접두사로 시작됨 (e.g. robot$ci-runner)
- 레지스트리 인증을 위한 토큰(Access token)이 발급됨
- 읽기, 쓰기 등 세부 권한을 부여할 수 있음
- Web UI 로그인은 불가능하며, Docker CLI 나 API 호출에만 사용됨
사용 예시
- GitLab CI/CD 에서 이미지 푸시/풀
- 자동 백업 스크립트에서 이미지 복제 시
- 다른 시스템에서 이미지 상태 확인 시
사용 이유
- 보안상 이점 : 최소 권한 원칙, 사용 기간 지정 가능, 사용자 계정보다 노출 위험 낮음
Robot Account 만들기
Robot Account 만들기
접속 > Administration > Robot Accounts > New Robot Account
계정 기본정보 입력
System 권한 설정하기
이 계정의 harbor 시스템적인 권한
Project 권한 설정하기
프로젝트별로 권한 설정. 여기서 PERMISSIONS 를 누르면
해당 프로젝트에 대한 권한을 설정할 수 있음.
권한 설정까지 완료됐다면 FINISH
System Permission
Robot Account 의 시스템 권한은 아래와 같습니다.
No. | 카테고리 이름 | 설명 | CI/CD 관련 |
---|---|---|---|
1 | Audit Log | Harbor의 이벤트 및 사용자 활동 로그를 조회하는 기능 | |
2 | Catalog | Harbor에 저장된 전체 artifact 목록을 검색 및 탐색 | |
3 | Garbage Collection | 사용되지 않는 artifact 데이터를 정리해 저장소 공간 확보 |
|
4 | Job Service Monitor | 백그라운드 작업(Job)의 상태를 모니터링하는 기능 (예: 복제, 스캔 등) |
|
5 | Label | 전역 라벨(artifact태그) 생성,수정,삭제 등 메타데이터 관리 |
|
6 | LDAP User | LDAP 서버의 사용자 계정을 검색하고 조회 | |
7 | Preheat Instance | 콘텐츠 전송 최적화를 위한 Preheat 인스턴스 관리 (캐시 서버 등) |
|
8 | Project | 프로젝트 생성, 삭제, 설정 변경 등 전역 수준 프로젝트 관리 |
★ |
9 | Purge Audit | 감사 로그를 정리(삭제)하여 저장소 공간을 확보 | |
10 | Quota | 프로젝트/사용자별 저장소 할당량(Quota)을 조회 및 설정 |
|
11 | Registry | 외부 컨테이너 레지스트리 등록 및 설정 관리 (예: Docker Hub, AWS ECR 등) |
|
12 | Replication | 복제 작업(이미지/아티팩트 전송) 실행 제어 | |
13 | Replication Adapter | 복제 가능한 외부 시스템(어댑터) 목록 조회 (예: Helm, GitHub 등) |
|
14 | Replication Policy | 이미지 복제 규칙(정책) 생성, 수정, 삭제 등 관리 기능 | ★ |
15 | Robot Account | 시스템 전역 또는 프로젝트 내 로봇 계정 생성 및 관리 | ★ |
16 | Scan All | Harbor 내 모든 이미지에 대해 일괄 보안 스캔을 실행 | ★ |
17 | Scanner | 이미지 취약점 스캐너 설정 및 관리 (예: Trivy 등과의 연동 포함) |
★ |
18 | Security Hub | Harbor의 보안 관련 보고서나 분석 데이터 열람 (보안 대시보드 포함) |
|
19 | System Volumes | Harbor 시스템 리소스 상태 조회 (예 : 디스크 공간 사용량) |
|
20 | User | 사용자 계정 생성, 수정, 삭제, 목록 조회 등 사용자 관리 | |
21 | User Group | 사용자 그룹 생성, 수정, 삭제 및 그룹 매핑 기능 (LDAP 그룹 포함) |
Project Permission
No. | 카테고리 이름 | 설명 | CI/CD 관련 |
---|---|---|---|
1 | Accessory | 이미지에 부가적으로 생성된 데이터 (예: cosign 서명, provenance 등) 조회 및 관리 |
|
2 | Artifact | 컨테이너 이미지 및 기타 artifact 자체 (push/pull/delete 등) |
★ |
3 | Artifact Addition | 이미지에 덧붙여지는 정보 관리 (e.g., SBOM, 서명 등) |
|
4 | Artifact Label | 특정 artifact에 라벨을 부착/해제 | ★ |
5 | Export CVE | 이미지의 보안 취약점(CVE) 보고서를 export | |
6 | Immutable Tag | 태그 불변 정책(immutable tag rule) 설정 및 조회 | |
7 | Label | 프로젝트 전용 라벨 생성 및 관리 | |
8 | Log | 프로젝트 내 작업 로그 조회 | |
9 | Project Member | 프로젝트 사용자 및 역할 관리 (추가, 삭제, 수정 등) |
|
10 | Project Metadata | 프로젝트 메타데이터 조회 및 수정 (예: 공개 여부, 스캔 자동화 등) |
★ |
11 | Notification Policy | 이벤트 발생 시 외부로 알림을 보내는 정책 설정 (Webhook 등) |
|
12 | Preheat Policy | 이미지 프리히트(Preheat, 캐시) 정책 설정 | |
13 | Project | 프로젝트 정보 자체 조회 및 삭제 | |
14 | Quota | 프로젝트 저장소 사용량 및 제한량 설정 | |
15 | Repository | 저장소(Repo) 단위의 조회, 생성, 삭제, 태그 등 조작 | ★ |
16 | Robot Account | 프로젝트 범위의 로봇 계정 생성/삭제/조회 | ★ |
17 | SBOM | 이미지의 Software Bill of Materials 조회 (구성 소프트웨어 목록) |
★ |
18 | Scan | 이미지 취약점 스캔 수행 또는 결과 확인 | ★ |
19 | Scanner | 프로젝트에서 사용할 스캐너 설정 (기본 스캐너 지정 등) |
|
20 | Tag | 태그 생성/삭제 등 관리 (레포지토리 내부 단위) | ★ |
21 | Tag Retention | 오래된 태그를 자동 삭제하는 보존 정책 관리 | ★ |
권한 레벨
키워드 | 권한 수준 | 의미 |
---|---|---|
create |
생성(Create) | 새로운 자원 생성 (예: 새로운 레지스트리, 사용자 등) |
delete |
삭제(Delete) | 자원 제거 |
list |
조회(Read) | 여러 리소스의 목록 조회 |
read |
조회(Read) | 단일 리소스의 상세 정보 조회 |
update |
수정(Update) | 기존 자원의 속성 변경 |
stop |
작업 중단(Stop) | 실행 중인 백그라운드 작업을 중지 (예: 복제, GC 중단 등) |
push |
푸시(push) | 이미지를 Harbor로 업로드 (docker push 등) |
pull |
풀(Pull) | Harbor에서 이미지를 다운로드 (docker pull 등) |
깃랩 프로젝트와 Harbor 연결 설정
Settings > Integrations
목록에서 Harbor 를 찾아서 클릭
정보 세팅
레지스트리 보기
Reference
https://jeongchul.tistory.com/727
Comments