Harbor 아키텍처 구조 이해

Harbor 아키텍처 구조 이해

1️⃣ + Harbor의 핵심 컴포넌트

Harbor는 단순한 컨테이너 이미지 저장소가 아닌, 보안엔터프라이즈 기능이 강화된 모듈형 아키텍처입니다.

아래는 주요 구성요소입니다:


1. Core Service

  • Harbor의 중심 로직
  • 사용자 요청을 처리하며, DB 및 다른 컴포넌트들과 통신
  • API, Web UI, RBAC 정책 처리 포함

2. Registry


3. Job Service

  • 백그라운드 작업 처리 담당
  • 예: 이미지 복제, 스캔, 삭제 스케줄링 등

4. Database

  • Harbor는 주로 PostgreSQL 사용
  • 사용자, 프로젝트, 이미지 메타데이터 저장

5. Clair / Trivy

  • 취약점 스캐너
  • 업로드된 이미지의 보안 이슈를 자동으로 탐지
  • Clair 또는 Trivy 중 선택 가능

6. Notary

  • 이미지 서명(Signing) 기능 제공
  • 신뢰된 이미지 배포 가능 (Content Trust)

7. Portal (Web UI)

  • 사용자 인터페이스
  • 프로젝트 생성, 권한 설정, 이미지 조회 등 대부분의 기능 수행 가능

Harbor 컴포넌트 아키텍처 다이어그램

                   ┌───────────────┐
                   │   Web Portal  │
                   └──────┬────────┘
                          │ REST API
                    ┌──────────────┐
                    │   Core API   │
                    └────┬───┬─────┘
                         │   │
           ┌─────────────┘   └──────────────┐
           ▼                                ▼
   ┌──────────────┐                ┌─────────────────┐
   │ Job Service  │                │     Registry     │
   └──────┬───────┘                └────────┬────────┘
          │                                 │
          ▼                                 ▼
 ┌────────────────┐              ┌─────────────────────┐
 │ Scanner (Clair/│              │   Notary (Signer)   │
 │ Trivy)         │              └─────────────────────┘
 └────────────────┘

 ┌─────────────┐
 │ PostgreSQL  │ ◄─── Harbor DB (메타데이터 저장)
 └─────────────┘

2️⃣ + 데이터 흐름과 통신 방식

컨테이너 이미지의 Push/Pull, 스캔 등은 다양한 컴포넌트 간의 상호작용을 필요로 합니다.


1. 이미지 Push/Pull 흐름

[Client (Docker)] ⇄ [Nginx Proxy] ⇄ [Registry]
                        [Core Service]
                        [DB 저장]
  • 사용자가 docker push를 하면 Nginx Reverse Proxy를 통해 Registry로 전달
  • Core는 이미지 메타데이터를 DB에 저장
  • 스캔이 설정되어 있다면 Job Service가 자동으로 스캔 요청

2. 이미지 스캔 흐름

[Push 완료]
[Core] ──▶ [Job Service] ──▶ [Scanner (Trivy/Clair)]
                                     [DB에 결과 저장]
  • 취약점 탐지는 자동화되며 결과는 UI에서 확인 가능

3. 이미지 복제 흐름 (멀티 레지스트리)

[Core] ─▶ [Job Service] ─▶ [원격 Registry] ⇄ 이미지 복제
  • Job Service가 정기적으로 이미지 동기화를 실행
  • 멀티 클러스터/리전 환경에서 유용

3️⃣ + 내부 인증/인가 구조와 RBAC

Harbor는 세밀한 접근 제어를 위해 RBAC(Role-Based Access Control) 및 인증 연동 기능을 제공합니다.


1. 인증(Authentication)

방식 설명
DB 기본 사용자 계정 관리 (내부 DB)
LDAP/AD 사내 인증 서버 연동
OIDC OpenID Connect 기반 Single Sign-On
Robot 계정 자동화 도구용 토큰 기반 계정

2. 인가(Authorization)

  • 프로젝트 단위의 권한 설정이 핵심
  • 역할 기반 정책 제공
역할 기능 요약
Admin 전체 시스템 관리자
Project Admin 해당 프로젝트의 설정 및 멤버 관리 가능
Developer 이미지 Push/Pull 가능
Guest 이미지 조회(Pull)만 가능

RBAC 흐름도

        ┌────────────┐
        │ 사용자 로그인 │
        └────┬───────┘
        ┌────▼─────┐
        │ 인증 방식 │
        │ (LDAP 등)│
        └────┬─────┘
        ┌──────────────┐
        │ 역할 매핑    │  ← Core가 RBAC 룰 확인
        └────┬─────────┘
        ┌──────────────┐
        │ 요청 승인 여부│
        └──────────────┘

Harbor의 모듈별 아키텍처, 내부 흐름, 그리고 보안 체계를 잘 이해하면,
단순한 이미지 저장소가 아닌 엔터프라이즈급 컨테이너 관리 허브로서의 활용이 가능해집니다.


RSS Feed
마지막 수정일자