コンテナイメージを安全に保管・署名・脆弱性スキャン!クラウド時代の自前レジストリ — harbor

goharbor/harborGo28.2k

Harborは、コンテナイメージ(アプリケーションの実行に必要な部品をひとまとめにしたパッケージ)やHelmチャート(クラウド上のアプリ設定ファイル)を安全に保管・管理するためのオープンソースのレジストリ(保管庫)です。いわば「自社専用のアプリ倉庫」を構築できるツールで、セキュリティの脆弱性を自動的にチェックしたり、誰がどのイメージにアクセスできるかを細かく制御したりできます。CNCF(クラウド技術の標準化団体)が正式にホストしており、企業の既存の認証システム(LDAP/ADなど)とも連携可能です。複数のデータセンターやクラウド間でイメージを自動同期する機能もあり、大規模な運用にも対応しています。開発チームやインフラ担当者が、安全かつ効率的にコンテナイメージを管理したい場合に最適なツールです。

🔥 なぜ話題?

コンテナ技術やKubernetesの普及に伴い、企業がセキュリティやコンプライアンスの観点からパブリックなレジストリではなく自前のプライベートレジストリを求める動きが加速しており、CNCFの卒業プロジェクトとしての信頼性と豊富な機能を備えたHarborへの注目が高まっています。v2.15.0からリリース成果物の暗号署名検証にも対応し、サプライチェーンセキュリティへの対応が強化された点も話題です。

💡 こう使える!

たとえば、社内で開発したWebアプリケーションのコンテナイメージを、外部のDocker Hubではなく自社のHarborサーバーに保管することで、機密性の高いコードが社外に流出するリスクを防ぎつつ、デプロイ前に脆弱性スキャンを自動実行して『セキュリティに問題があるイメージは本番環境にデプロイさせない』というポリシーを適用できます。

ユースケース: 企業やチームがコンテナイメージを安全に保管し、脆弱性チェックやアクセス制御を行いながらクラウド環境へデプロイするために使う。

  • コンテナイメージの脆弱性を自動スキャンし、問題のあるイメージのデプロイをブロックできる
  • 複数のレジストリ間でイメージを自動同期(レプリケーション)でき、マルチクラウド運用に対応
  • LDAP/AD・OIDC連携やロールベースのアクセス制御など企業向けセキュリティ機能が充実
GitHubで見る →

An open source trusted cloud native registry project that stores, signs, and scans content.

技術情報

言語

Go

ライセンス

Apache-2.0

最終更新

2026-04-09

スター数

28,209

フォーク数

5,183

Issue数

828

トピック

cloud-nativecncfcncf-projectcontainercontainer-managementcontainer-registrycontainersdockerhacktoberfesthelmkubernetesregistry

技術詳細

アーキテクチャ・仕組み

  • Docker Distribution(オープンソースのコンテナレジストリ)をベースに、セキュリティ・認証・管理機能を拡張した構成
  • 詳細なアーキテクチャは Architecture Overview of Harbor で公開されている
  • OCI Distribution仕様への準拠テストをパスしている

主要機能一覧

  • コンテナイメージ&Helmチャート管理: コンテナランタイムやKubernetes向けのクラウドネイティブレジストリ
  • ロールベースアクセス制御 (RBAC): プロジェクト単位でユーザーごとに異なる権限を設定可能
  • ポリシーベースレプリケーション: リポジトリ・タグ・ラベルのフィルタ条件に基づき、複数レジストリ間でイメージやチャートを自動同期。エラー時は自動リトライ
  • 脆弱性スキャン: イメージを定期的にスキャンし、脆弱なイメージのデプロイを防止するポリシー設定が可能
  • LDAP/AD連携: 既存の企業ディレクトリサービスとの認証統合、LDAPグループのインポートにも対応
  • OIDC連携: 外部IDプロバイダーとの連携によるシングルサインオン
  • イメージ削除&ガベージコレクション: 不要なマニフェストやブロブを削除してストレージを解放
  • Notary(署名機能): Docker Content Trustを活用したコンテナイメージの署名・検証。未署名イメージのデプロイ防止ポリシーも設定可能
  • WebUI: ブラウザからリポジトリの閲覧・検索・プロジェクト管理が可能
  • 監査ログ: リポジトリへの全操作を記録・追跡
  • RESTful API: 管理操作のAPI。Swagger UIが組み込みで提供

デプロイ方式

  • Docker Compose: 最もシンプルなデプロイ方法
  • Helm Chart: Kubernetes環境向け(harbor-helm
  • Harbor Operator: Kubernetes Operator による管理も可能

互換性・連携

  • レプリケーションアダプタ: 他のレジストリとの同期に対応
  • OIDCアダプタ: 各種IDプロバイダーとの連携
  • スキャナーアダプタ: 複数の脆弱性スキャナーとの統合
  • 互換性リストは公式ドキュメントで公開

セキュリティ

  • 2019年10月にCure53による第三者セキュリティ監査を実施済み
  • v2.15.0からCosignによるリリース成果物の暗号署名検証に対応(サプライチェーンセキュリティ)
  • CII Best Practices、OpenSSF Scorecardのバッジを取得

ライセンス・商用利用

  • Apache License 2.0 で提供されており、商用利用可能
  • 一部コンポーネント(Photon OSなど)は個別のライセンスあり

コミュニティ

  • CNCF(Cloud Native Computing Foundation)のホストプロジェクト
  • 隔週でコミュニティミーティングを2つのタイムゾーンで開催
  • Slack(#harbor, #harbor-dev)、メーリングリスト、ライブデモ環境あり
  • 開発言語: Go(Go Report Card対応)

インストール・クイックスタート

システム要件

  • Linux環境: Docker 20.10.10-ce以上、docker-compose 1.18.0以上

インストール手順

  1. Harbor Releases からバイナリをダウンロード
  2. インストールガイド に従ってセットアップ

Kubernetesへのデプロイ

Kubernetes環境の場合は Harbor Helm Chart を使用

リリース署名の検証(v2.15.0以降)

# Cosignのインストール(v2.0以上)
brew install sigstore/tap/cosign

# 署名の検証
cosign verify-blob \
  --bundle harbor-offline-installer-v2.15.0.tgz.sigstore.json \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp '^https://github.com/goharbor/harbor/.github/workflows/publish_release.yml@refs/tags/v.*$' \
  harbor-offline-installer-v2.15.0.tgz

参考になる外部の関連記事

関連リポジトリ

コンテナもKubernetesもコードも丸ごとセキュリティチェック!万能脆弱性スキャナー — trivy

aquasecurity/trivyGo34.1k

Trivyは、ソフトウェアやインフラのセキュリティ上の問題を自動的に見つけ出す万能スキャナーです。コンテナイメージ(アプリを箱詰めしたもの)、ソースコード、Kubernetes(コンテナの管理基盤)、

kubernetes/kubernetes

kubernetes/kubernetesGo120.6k

Kubernetesは、コンテナ化されたアプリケーションの自動デプロイ、スケーリング、管理を行うオープンソースのコンテナオーケストレーションプラットフォームです。複数のサーバー間でコンテナを効率的に配

golangci/golangci-lint

golangci/golangci-lintGo18.5k

golangci-lintは、Go言語向けの高速なリンター(コード品質チェックツール)ランナーです。複数のリンターを並列実行することで、コードの品質問題、潜在的なバグ、スタイルの問題を効率的に検出でき

hashicorp/terraform-provider-aws

hashicorp/terraform-provider-awsGo10.8k

HashiCorp Terraformを使ってAWSリソースを管理するための公式プロバイダーです。EC2、S3、RDS、VPCなどのAWSサービスをコードで定義・構築・管理できます。Infrastru

kedacore/keda

kedacore/kedaGo9.9k

KEDAは、Kubernetes上でイベント駆動型の自動スケーリングを提供するコンポーネントです。メッセージキューの長さやHTTPリクエスト数などの外部メトリクスに基づいて、Podの数を自動的に増減で