Harborの概要
Harborは、VMwareによって開発されたオープンソースのプライベートコンテナレジストリで、Docker Registryのように、コンテナイメージを管理するための機能を実装したレジストリです。
通常Dockerを利用する場合は、docker コマンドでNginxやbusyboxなどのコンテナイメージをデプロイします。このイメージの取得先がレジストリで、デフォルトではDocker hubから取得してきています。
しかし、Docker hubはパブリックなレジストリであるため、セキュリティ的にアクセス出来ない場合や、企業のプロジェクトで作成するような独自のコンテナイメージをアップロードするには適さない場合があります。
Harborはこのような問題の解決するため、クローズドな環境で利用されることを前提とした、プライベートレジストリとしての様々な機能を提供しています。
そもそもHarborは、2014年にVMwareがイメージ利用におけるセキュリティ体制の強化やコンプライアンスの遵守を目的として開発が開始されました。
2016年にオープンソース化され、2018年にはKubernetesなどの開発をホストするCloud Native Computing Foundation(CNCF)のプロジェクトの1つとして採用され、2020年にプロジェクトを卒業しました。
Harborの主な特徴
クラウドネイティブレジストリ | HarborはコンテナイメージとHelmチャートの両方をサポートし、コンテナランタイムやオーケストレーションプラットフォームなどのクラウドネイティブ環境のレジストリとして機能します。 |
---|---|
ロールベースのアクセス制御管理 (RBAC) | ユーザやプロジェクト毎に、公開するコンテナイメージや操作を制御することが可能です。 |
ポリシーベースのレプリケーション | フィルタ(リポジトリ、タグ、ラベル)を使用したポリシーに基づいて、サーバを跨いだ複数のレジストリインスタンス間でイメージを複製することで、負荷分散や高可用性を実現します。 |
LDAP/ADのサポート | ADやLDAPなどのユーザ管理システムを使用している場合、そのシステムをHarborに統合して、RBACに使用することが可能です。 |
ストレージの柔軟性 | S3やGoogle Cloud Storage、Azure Blob Storageなどの多様なストレージバックエンドに対応しています。 |
脆弱性スキャン | リポジトリ内のコンテナイメージに対して定期的に脆弱性のスキャンを実施し、脆弱なイメージが展開されることを防ぎます。 |
OIDCサポート | HarborはOpenID Connect(OIDC)を利用して、Keycloakなどの外部認証サーバからHarborポータルへのシングルサインオン(SSO)を実現することが可能です。 |
グラフィカルなユーザポータル | ユーザはHarborポータル(WebUI)を介して、リポジトリの参照、検索、プロジェクト管理を行うことができます。 |
監査 | リポジトリへの全ての操作は、WebUIやログを介して、監査、追跡することが可能です。 |
Harborの動作環境
- オペレーティングシステムとDocker
Harborは複数のDockerコンテナとしてデプロイされます。そのため、Dockerをサポートしている任意のLinuxディストリビューションにデプロイすることができます。ホストにはDockerとDocker Composeのインストールが必要です。
- ハードウェア
以下の表は、Harborをデプロイするため最小構成と推奨構成になります。
リソース 最小構成 推奨構成 CPU 2CPU 4CPU メモリ 4GB 8GB ディスクサイズ 40GB 160GB - ソフトウェア
以下の表は、ホストにインストールする必要があるソフトウェアとそのバージョンです。
ソフトウェア バージョン 説明 Docker engine Version 17.06.0-ce+ 以上 インストール方法については、Doker Engineのドキュメントを参照してください Docker Compose Version 1.18.0以上 インストール方法については、Doker Composeのドキュメントを参照してください Openssl Latest Harborの証明書と鍵を生成するために使用します。 - ネットワークポート
Harborを利用するためには、ホストで以下のポートが開いている必要があります。
ポート プロトコル 説明 443 HTTPS HarborポータルとコアAPIは、このポートでHTTPSリクエストを受け付けます。このポートは設定ファイルで変更できます。 4443 HTTPS HarborのDocker Content Trustサービスへの接続のために利用します。Notaryが有効になっている場合のみ必要です。このポートは設定ファイルで変更できます。 80 HTTP HarborポータルとコアAPIは、このポートでHTTPリクエストを受け付けます。このポートは設定ファイルで変更できます。
Harborのライセンス
Harborのライセンスは、「Apacheライセンスバージョン2」(Apache License version2)というライセンスに基づいて公開され、営利、非営利を問わず、誰でも自由かつ無償で利用・改変・再配布できるようになっています。
参考情報
Harbor公式サイト
Harbor最新版LiveDemo
Harbor機能VideoDemos
Harborのサポート
NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。