Docker コンテナを利用した HPCI 仮想端末エミュレータ提供の検討
石井 宏治, 坂根 栄作, 合田 憲人
国立情報学研究所

k ishii@nii.ac.jp

A Study on Deployment of HPCI Terminal Emulator using
Docker Container
Koji Ishii, Eisaku Sakane, Kento Aida
National Institute of Informatics

概要
国立情報学研究所 (NII) は，革新的ハイパフォーマンス・コンピューティング・インフラ (HPCI) を構成する認証基盤の運用を担っている。その役割のなかで HPCI 資源にアクセスするための仮想端末エミュレータを主要なプラットフォームごとに提供している。本稿では，その維持管理において顕在化した問題点とその解決手法を報告する。

る電子証明書を用いた GSI 認証が，それぞれ行われ1 はじめにる。[4]革新的ハイパフォーマンス・コンピューティング・

NII は，HPCI 連携サービス運営・作業部会 認証

インフラ (High Performance Computing Infrastruc-

基盤サブワーキンググループ (Sub-WG) の一員とし

ture: HPCI) [1] は，全国の大学や研究機関（HPCI シて HPCI 認証局および関連システム等の運用を担当すステム構成機関）に設置・資源提供されているスーパーる他，HPCI 認証基盤に関連するソフトウェア開発やコンピュータやストレージを連携し，産業界を含めたHPCI 運用事務局ヘルプデスクに対する運用支援業務

幅広い利用者層の多様なニーズに応える共用計算環境なども行っている。[5]基盤を実現するものである。HPCI ではネットワーク

これまで，HPCI の利用者が計算資源にシングルサ上に分散した計算資源や Web 上のサービスに対してインオンする際の推奨仮想端末ソフトウェアの一つ統一したアカウント情報で認証できる環境（シングルとして，NII が保守する GSI-SSHTerm [6] を提供しサインオン）を提供しており，国立情報学研究所 (NII)てきたが，当該ソフトウェアを維持管理をしていくと HPCI システム構成機関は，X.509 公開鍵認証基盤上での問題点がいくつか浮上してきたため，これを機に基づく Grid Security Infrastructure(GSI) [2] およに GSI-SSH クライアントの提供体制を見直すこととび SAML に基づく Shibboleth [3] を用いた認証基盤した。
本稿では，Windows はもとより macOS，各種 Linux（HPCI 認証基盤）の運用を担当している。

HPCI 認証基盤は，HPCI 認証局ならびに証明書発ディストリビューションなど，様々な環境下における行システムなどの表 1 に掲げる関連システム，利用者使用が想定される HPCI の仮想端末エミュレータの提の認証情報を管理する Shibboleth Identity Provider

供と維持管理における問題点ならびに解決手法を報告(IdP) サーバ，スーパーコンピュータやストレージする。などの計算資源へのログインノードとなる GSI-SSHサーバにより構成されている。図 1 は，HPCI 認証基

2 維持管理における問題点と課題盤の構成ならびに利用者が計算資源にシングルサイン

本節では，HPCI における仮想端末エミュレータのオンする際の手順を示している。Web 上のサービス提供・維持管理にまつわる問題点と課題の整理を行う。

利用時には IdP のアカウント情報による Shibboleth
認証が，計算資源の利用時には HPCI 認証局が発行す258

表 1 HPCI 認証基盤システム

システム名

主な役割

CA サーバ

電子証明書の発行および失効
電子証明書発行および失効の申請に対する本人性を確認，

RA サーバ

電子証明書の発行や失効を CA サーバへ要求

認証局リポジトリ

認証局に関する情報公開
発行済み電子証明書の管理，証明書管理システム・証明書リポジトリ

電子証明書とローカルアカウントのマッピング情報管理
電子証明書発行のためのユーザインタフェース，証明書発行システム・代理証明書リポジトリ

代理証明書の管理

DS サーバ

Shibboleth IdP 選択サービス
HPCI認証局運用機関（NII）(1) 証明書発行システムにアクセス (Shibboleth)

証明書発行
システム

証明書管理
システム

代理証明書
リポジトリ

証明書
リポジトリ

RAサーバ

DSサーバ

認証局
リポジトリ

CAサーバ

(2) 代理証明書を取得

利用者

認証処理を依頼 (Shibboleth)(3) スパコン/ストレージにアクセス (GSI)

GSI-SSHサーバ

IdPサーバGfarmクライアント

GSI-SSHサーバ

IdPサーバGfarmクライアント

HPCIシステム構成機関
Gfarm

図 1 HPCI 認証基盤の構成とシングルサインオン手順

2.1

ドルウェア Globus Toolkit [8] においてセキュリティ

GSI-SSH クライアント2019 年 9 月現在，HPCI において利用者が計算資機能を提供するもので，HPCI 認証基盤システムを構源にシングルサインオンする際の推奨仮想端末ソフト成する主要な認証・認可技術の一つである。GSI-SSH

ウェアには GSI-OpenSSH Client と GSI-SSHTerm

は，GSI を利用できるようにした SSH である。の二種類の GSI-SSH クライアントがあり，NII では

2.1.1

必要に応じて，それぞれに対する独自の改修を行ってGSI-OpenSSH

GSI-OpenSSH は，Globus Toolkit に含まれている
コマンドラインインタフェースの GSI-SSH クライアいる。

GSI は，米国アルゴンヌ国立研究所およびシカゴ大学を中心とする Globus Alliance によってオープンントで、OpenSSH をベースに GSI 対応にしたものである。実装言語は C である。

ソースソフトウェアとして開発および保守されていた

Globus Alliance による Globus Toolkit のサポー

グリッドコンピューティング環境を構築するためのミトは 2018 年末に終了となったため，NII では次期259

HPCI システム更新までの HPCI 認証基盤の安全性利用している。GSI-SSHTerm については，GSSAPIを維持するためにソフトウェア保守管理体制を独自

そのものは Java 純正ライブラリで提供されているもに組み，2017 年度第 4 四半期以降は随時の対応をのの GSI は想定されていないために、オープンソー行っている。NII 改修版 Globus Toolkit は，Red Hat

スで開発されている暗号ライブラリからフォークしEnterprise Linux (RHEL) 6, 7 および互換 OS のクラて GSI に必要なメソッドを追加する、という手法をイアント向けとして GSI-OpenSSH ならびに代理証明用いて GSI をサポートしている。そのような実装の書リポジトリから代理証明書をダウンロードするため事情から、TLS 1.2 に追従するにはベースとしているの MyProxy を含む RPM パッケージを作成，NII 独暗号ライブラリを更新し、その上で GSI に必要なメ自の公開リポジトリにて配布している。

ソッドを追加するなど改修の範囲が多岐に渡り，工数NII 改修版とは独立に Globus Toolkit から派生しが膨大となることが容易に想定される。したがって、て Grid Community Forum (GridCF) による保守がGSI-SSHTerm の TLS 1.2 対応は極めて困難と言わざ行われている Grid Community Toolkit (GCT) [9] がるを得ない状況にあり、代替となる GSI-SSH クライ存在する。2019 年 9 月時点における GCT の提供状アントの検討が課題となる。

況は，RHEL 6, 7 および互換 OS ならびに Fedora 28,GSI-SSHTerm に代わる GSI-SSH クライアントを29, 30 を対象とした RPM パッケージのみが正式版と検討するにあたり，以下に掲げる項目が要件として挙され，GSI-OpenSSH を含む内容で提供されている。

げられる。

その他の OS 向けについてはテスト段階やプレビュー

1. 利用者の負担を考慮した導入の容易さはもとより版の扱いのパッケージが提供されているものの，それ極力少ない費用で入手および利用できること。

らの中には GSI-OpenSSH は含まれてはいない。

2.1.2

2. GSI-SSH クライアントを利用するローカル端末

GSI-SSHTermと計算資源との間でファイル転送できること。

GSI-SSHTerm は，イギリス NGS (National Grid

3. 利用者が安心して利用できるように配布物の真正Service) で開発されたグラフィカルユーザインタフ性を担保できること。

ェースの GSI-SSH クライアントで，Java で実装され4. 維持管理の観点から、依存する暗号技術・プロト

た SSHTerm をベースに GSI 対応にしたものである。

コルの最新版に容易に追従できること。

NGS に よ る 開 発 は 既 に 終 了 し て い る が ，GSISSHTerm のソースコードはオープンソースソフト

3 解決策の提案

ウェアとして公開されており，NII ではこれまで必要に応じて独自の改修を行い，Web サイト上で ZIP 形

3.1

Docker Desktop の利活用

Globus Alliance の Globus Toolkit では，Cygwin式のファイルを公開・配布している。

NII 改修版 GSI-SSHTerm は，Globus Toolkit のもしく MinGW と組み合わせて利用する Windows 向

主たる動作環境が UNIX であったために、Windowsけのバイナリパッケージが提供されていたが，煩雑な環境向けとして提供することを目的としたものであセットアップ手順が必要となるため導入の難易度はるが，Java 実行環境上で動作することや導入の手軽高いと言える。しかしながら、C 言語で実装されたさなどのことから，macOS や各種 Linux ディストリ

ソースコードをそのまま流用するアプローチは有効

ビューション上においても利用されている。

であり、UNIX 向けの Globus Toolkit をどのように2.2 問題点と課題Windows 環境上に実現するかがポイントとなる。

昨今のソフトウェアあるいはプロトコルに対する

ここでは，Windows 環境で利用可能な仮想化ソフト脆弱性情報が次々と判明する状況を鑑みれば，機能改ウェアとして Docker Desktop for Windows の活用を善・拡張が積極的に検討されており、かつ GSI が依存考える。Docker Desktop for Windows は，コンテナ型する暗号プロトコルである Transport Layer Security

仮想化環境を提供する Docker [10] を Windows 環境(TLS) の最新技術に追従していくことは，GSI-SSH（Windows 10 Pro，Windows 10 Enterprise，Windows

クライアントの安全性を維持する上で必要不可欠であ10 Education の各エディションのバージョン 1511

る。TLS 1.0 および 1.1 を禁止するポリシが一般的にBuild 10586 以降。いずれも 64 ビット版で Hyper-なりつつある現状を踏まえれば、GSI-SSH の TLS 1.2

V を有効化しておく必要がある。）においても利用対応は焦眉の急である。GSI は GSSAPI の仕組みをできるようするためのソフトウェアである。Docker260

Desktop の導入には煩雑なセットアップ処理は必要

メージを Web サイト上で公開・配布する方法も考えなく，関連ツールも統合されているのため本ソフトられる。イメージ提供者は，公開する Docker イメー

ウェアのインストールのみで Windows 環境におけるジを tar ボール化し，Web サイト上に掲載する。利用

Docker の利用が実現されている。

者は，Web サイトからダウンロードしたイメージをDocker の仮想化環境を使用する際，読み込み専用Docker に取込んで使用する。のテンプレートである Docker イメージを入手した上■Docker Hub

Docker Hub [11] は，Docker 社が提で，実行用の Docker コンテナを起動する。Docker イ

供するレジストリのクラウドサービスで，様々な提メージは，Docker が動作する OS の種類に関わらず同供元によるリポジトリにおいてコンテナ構築に使え一のイメージの利用が可能である。したがって，1 個るイメージが公開されている。前述のとおり Dockerの NII 改修版 GSI-OpenSSH からクライアントに特image for GSI-OpenSSH Client のベースイメージと化した Docker イメージを作成すればよい。

して利用する CentOS 7 の公式イメージも Docker

ま た ，macOS（Sierra 10.12 以 降 。）に 対 応 す る

Hub 内にある CentOS のリポジトリにて提供されてDocker Desktop for Mac も用意されており，Win-いる。CentOS のリポジトリは，Docker 社の審査をdows 環境と同様に扱うことができる。

通過した Docker Oﬃcial Images として登録されてお3.2

り，誰もがイメージを登録できる公開レジストリであDocker image for GSI-OpenSSH Client

本小節では，GSI-OpenSSH Client を基に構成される Docker Hub のなかであっても信頼できるリポジト

る Docker image に関して，どういったイメージ構成リとして扱われている。にすべきか，またどのようにイメージを配布するかの■プライベート・レジストリ検討を行う。

トリをプライベート・レジストリと呼ぶ。プライベー

3.2.1 イメージ構成

ト・レジストリを構築する方法としては，Docker 社

独自に構築したレジス

Docker イメージの構成要素としての OS についが DockerHub で自ら配布する Registry コンテナを利ては前述のとおり CentOS 7 とし，Docker Hub の用して独自のレジストリを構築する方法，Amazon 社

CentOS 公式リポジトリ上の CentOS 7 のうち，最新提供のクラウドサービス Amazon Elastic Container版となる Docker イメージをベースにして，NII で独Registry の利用などが挙げられる。

自に改修する GSI-OpenSSH Client，MyProxy を含■Docker Content Trust Docker Hub に限らずプラむ必要最小限のパッケージを導入したイメージとしてイベート・レジストリを使用する場合も含めて，Docker作成する。

イメージをリポジトリから取得する際は Docker 内に配布するイメージについては，そのライフサイクルイメージを取込む手順までが一括して行われる。このも検討する必要があるが，Docker イメージの更新契時，Docker Content Trust を使用するように設定して機としては，ベースとなる CentOS イメージのマイいる場合は Docker イメージの提供者の検証が行われ，ナーバージョン毎のリリース時もしくは NII 改修版署名済みかつ提供者検証済みであるイメージのみコン

GSI-OpenSSH Client，MyProxy および関連パッケーテナとして利用することができる。Docker Content

ジの新バージョンリリース時が挙げられる。

Trust による検証の流れは次のとおりである。提供者

3.2.2 イメージの配布方法

がイメージをレジストリへ送信する前に，Docker はDocker イメージを公開・配布する方法には，いくつイメージ提供者の秘密鍵を使ってイメージに署名を行う。レジストリから Docker イメージを取得する際，かの選択肢がある。
まず挙げられるのは，レジストリを利用する方法でDocker はイメージ提供者の公開鍵を使い，イメージある。レジストリは，Docker イメージの保管と提供提供者が作成したものであるかを確認する。Dockerを行う場所であり，Docker イメージの提供元単位のContent Trust を使用するように設定していれば，レリポジトリに分けられる。Docker イメージの登録おジストリから取得したイメージに署名が無い場合や提よび取得は Docker が提供するツールに統合されてお供者が検証できない場合はイメージをレジストリからり，例えば利用者が Docker イメージをリポジトリか入手したとしてもコンテナとして利用することはでき

ら取得すると，Docker 内にイメージを取込む処理まない。

でが一括して行われる。

■tar ボ ー ル 化 イ メ ー ジ の 検 証

レジストリを使用する以外の方法では，Docker イ261

tar ボ ー ル 化 し たDocker イメージについては，利用者によるダウンロードと Docker への取込みは個別に行う必要がある

ント登録も無償。）、また、その導入は各 OS におけるため，Docker Content Trust によるイメージ提供者

一般的なインストール方法をサポートしていることかの検証を適用することもできないが，ファイルのハッら実現していると言える。

シュ値を別途公開しておき，Docker イメージと比較

要件 2 は利用者のローカル端末から HPCI 計算資することでファイルの真正性を確認することは可能源へのデータ転送が出来ることを求める。これにつである。Windows 7 以降では，標準機能として用意

いては Docker Desktop はその実行環境のフォルダされている CertUtil コマンドを使用することでファをコンテナにマウント可能であること、さらに GSI-イルのハッシュ値を確認することができ，対応するOpenSSH からファイル転送プログラムである gsiscp

ハッシュアルゴリズムは MD2，MD4，MD5，SHA-1，あるいは gsisftp を利用することにより実現できる。
要件 3 については、差し当たり Docker Content

SHA256，SHA384，SHA512 である。

Trust の仕組みを利用しないものの、パブリックドメ

3.2.3 配布方法の選定
Docker イメージの公開先として，Docker Hub，プインの証明書を利用した HTTPS プロトコルでダウライベート・レジストリならびに Web サイトのそれンロードすることにより必要最小限の要件を満たしてぞれを HCPI 認証基盤における事情を考慮しながら比いる。
要件 4 については、Docker image を通して C 言

較する。

Docker Hub を利用する場合，HCPI 認証基盤のリ語によるソースコードをそのまま Windows, macOSポジトリを作成した上で Docker から push することに適用できることから、基本的に C 言語のソースで Docker イメージの登録が完了し公開される。しか

コード管理に一本化でき、GSI-OpenSSH の依存するしながら，Docker Hub は公開レジストリであるため，OpenSSH ならびに OpenSSL に追従することにより誰もが自由にレジストリを作成できることから，配布最新の暗号技術をサポートすることが可能である。

物の性格を考慮すると Docker Oﬃcial Images としてDocker image for GSI-OpenSSH Client は GSI-の認定を Docker 社から受けておくことが望ましいが，SSHTerm の代替として導入したものの、この手法審査および対応のための時間が必要となる。

は RHEL 以外の Linux ディストリビューション，例

プライベート・レジストリにて配布する場合，独自

えば Ubuntu や OpenSUSE に対しても適用可能であに構築したレジストリは新規の公開サイトとなるたり、当初の目標を超えたサポート拡充が期待できる。

め，運用・維持管理における検討も新たに必要となる

これらのことなどから総合的に判断して，Dockerなど，Docker イメージ公開に至るまでには時間を要

image for GSI-OpenSSH Client の提供開始以後はすることが懸念される。

GSI-SSHterm からの移行を推奨し，ある程度の期間Web サイト上で配布する場合，既に公開している
NII 改修版 GSI-SSHTerm と同様に tar ボール化したDocker イメージを公開すれば良く，既存の Web サイトの仕組みが流用できるため，公開までに必要な時間をもって GSI-SSHTerm の保守を終了することを検討している。

5 おわりに本稿では，マルチプラットフォーム対応を考慮しは最も短くなる見込みである。

Docker image for GSI-OpenSSH Client を迅速にた HPCI のエンドユーザ向けアプリケーションの提公開したい事情から，まずは Web サイト上での配布供と維持管理における問題点ならびに解決手法としてを行い，将来的には Docker 社の審査を受けた上でDocker コンテナを利用する方法を報告した。今回検Docker Oﬃcial Images として Docker Hub にて公開

討した手法は HPCI に限らず汎用的な利用方法にも応することを検討する。

用できるものでもあり，皆様の課題解決のお役に立てれば幸いである。

4 評価

また，Docker image for GSI-OpenSSH Client につ

本節では，HPCI の利用者向けに Docker image forGSI-OpenSSH Client を提供することによって，2.2節で掲げた要件を満たしているかの確認等を行う。
要件 1 については、Docker Desktop は無償にて提供されていること（Docker Hub からの入手，アカウ

262

いてはその汎用性の検証を行った上で，GSI を利用するコミュニティへも共有していく予定である。

参考文献[1] 革 新 的 ハ イ パ フ ォ ー マ ン ス・コ ン ピ ュ ー テ ィン グ・イ ン フ ラ (HPCI) の 構 築 に つ い て,http://www.mext.go.jp/a_menu/kaihatu/
jouhou/hpci/1307375.htm[2] Von Welch, Frank Siebenlist, Ian Foster, JohnBresnahan, Karl Czajkowski, Jarek Gawor,
Carl Kesselman, Sam Meder, Laura Pearlman,
Steven Tuecke, “Security for Grid Services”, inProc. of the 12th IEEE International Symposium on High Performance Distributed Computing, 2003.
[3] R.L. Morgan, Scott Cantor, Steven Carmody,
Walter Hoehn, Kenneth Klingenstein, “Federated Security: The Shibboleth Approach”, EDUCAUSE Quarterly, Vol.27, No.4, 2004.
[4] 合田 憲人, 坂根 栄作, 本山 一隆, 青木 道宏, 漆谷重雄, “HPCI のためのネットワーク・認証基盤”,
大学 ICT 推進協議会 2013 年度年次大会論文集,2013.
[5] 石井 宏治, 坂根 栄作, 合田 憲人, “HPCI 認証基盤の活動報告”, 大学 ICT 推進協議会平成 28 年度年次大会論文集, 2016.

[6] HPCI 向けソフトウェア, https://www.hpci.
nii.ac.jp/software/index.html[7] 石井 宏治, 坂根 栄作, 合田 憲人, “HPCI 認証基盤における Oracle Java SE サポート・ロードマッ
プへの対策”, 大学 ICT 推進協議会平成 30 年度
年次大会論文集, 2018.

[8] Globus

Toolkit,

http://toolkit.globus.

org/toolkit/[9] Grid Community Toolkit Oﬃcial Documentation, https://gridcf.org/gct-docs/[10] Enterprise Container Platform — Docker,
https://www.docker.com/[11] Docker Hub, https://hub.docker.com/

263