まだプログラマーですが何か?

プログラマーネタ中心。たまに作成したウェブサービス関連の話も https://twitter.com/dotnsf

タグ:securegateway

IBM Cloud 的には特別目新しいサービスではないのですが、リモートワーク時代に向いているサービスだと思ったので、改めてその視点で紹介させていただきます。

新型コロナウィルス流行の影響もあり以前よりもリモートワークが広まっています。中にはリモートワークの需要はあるんだけど、リモートから社内システムを利用するための環境構築ができなかったり、料金的な問題があったりして実現できずにいる人や組織もあると思っています。一般的には VPN(Virtual Private Network) と呼ばれる仕組みを導入して、社内システムを安全な形で外部に公開して利用する、という方法が多く用いられていると思っていますが、この「安全な形で外部に公開」するのは単純ではなく、リモートワークする人も専用のソフトウェアを導入&設定する必要があったり、想定する利用量の規模に合わせて専用のサーバーを1台以上追加する必要があり、その見積もりも簡単ではありません。本格的に利用しようとすると、この追加コストだけでもかなりの額になってしまい、結局二の足を踏まざるを得なくなっているケースもあると思います。

そんな要望に対して IBM Cloud からは SecureGateway と呼ばれるサービスが提供されています。通信用のサーバーは1台必要ですが、VPN とは異なる形で社内システムを外部公開することができ、リモートワークする人から見ても(専用ソフトウェアの導入&設定無しで)ほぼそのまま使うことができます。とりあえず実験的に社内の1つのシステムを公開するだけであれば(1ヶ月 500MB という通信量の制約はありますが)無料で試してみることができます。リモートワークの需要は今後も増えることが予想されるので、特に中小企業向けの小規模利用であれば安価に構築できる環境として紹介します:
2021101600


※SecureGateway は「非推奨」サービスという扱いになっていますが、この社会事情も含めて考慮され、現時点では少なくとも 2022 年6月まではサービス継続することがアナウンスされています。


【SecureGateway の仕組み】
まず、このブログエントリで説明する内容の中で想定しているユースケースを紹介します。企業内や自宅内などにネットワークが構築されていて、そのネットワークに接続している状態からであれば利用できるシステム(=これを「機密システム」と呼ぶことにします)があると想定します。機密システムには機密情報の含まれるデータベースや、それらを業務で扱うウェブアプリケーションなどがあります。 問題になるのはこのシステムが(もともとプライベートネットワークアドレスで構築された環境内に存在しているなどの理由で)社内ネットワーク向けに構築されていて、一般的なインターネットからは利用できない状態にあり、そのためそのままリモートワークへ移行できない、というケースです:
2021101501


このような環境でインターネットからのアクセスをさせようとすると、一般的には VPN(Virtual Private Network) という仕組みを構築します。専用の VPN サーバーを内部ネットワーク内に構築し、VPN サーバーへだけはファイアウォールやパケットフィルタリングを通す設定にしたうえで、インターネットから利用する各 PC に VPN クライアントをインストールして、目的の VPN サーバーに接続するための設定をします。これによって各 PC は VPN サーバーを経由してインターネットからでも「仮想的にプライベートネットワーク(Virtual Private Network)内にいるかのような状態」を作り出すことができ、社内の機密システムにアクセスすることができるようになります:
2021101502


ただこの方法には課題もいくつかあります。主なものとしては以下に挙げるものです:
・新たにサーバーを用意した上で、VPN サーバー機能を構築する必要がある
・VPN サーバーだけはインターネットからアクセスできる状態にする必要があるため、事前にファイアウォールやパケットフィルタリングで許可する必要がある
・インターネットから利用する全ユーザー(正確には全 PC)に VPN クライアントをインストールして、VPN サーバーに接続するための設定を行う、という手間がかかる
・VPN クライアントを導入する PC の台数や利用頻度にもよるが、VPN サーバーや社内ネットワーク、社内とインターネットを繋ぐネットワークは全ての VPN クライアントからの接続を処理することができるだけのスペックが必要になる。この見積も難しく、環境を構築した後に問題が発生すると改めて再設計が求められる可能性もある


簡単に言ってしまうと、仕組みの肝となる VPN サーバーを自分で用意する必要があるため、「充分な性能を用意しておく」という見積段階から用意する側の責任範囲となってしまうことにあります(とはいえ VPN の仕組み上、VPN サーバーは接続先である社内に用意する必要があります)。また各 PC 1台ごとに接続のための設定を行うのも面倒です。


一方、今回紹介する IBM Cloud の SecureGateway (以降 "SG" と表記します)は似た概念ですが、この「VPN の面倒な部分」を大幅に簡易化したものです。スペック見積もりから面倒なサーバー部分は IBM Cloud がサービスインスタンスとして用意するので、クライアント増加による負荷対策を考慮する必要はありません(値段は変わりますけどw)。社内に専用のマシン(SG クライアント)を用意する必要がある点は VPN と同じですが、こちらは docker イメージが提供されていて、社内に docker 環境があれば "docker run" だけで簡単に構築できます。

そして個人的に最大のアドバンテージだと思う2つの点があります。1つは利用量の制約(1か月に 500MB 以内の通信)がありますが、機密システムが1つだけであれば無料で環境構築できること、もう1つは、接続 PC 個別に(VPN クライアントに相当するような)専用の設定を行う必要がなく、IBM Cloud 経由でそのまま社内の機密システムにアクセスできるようになる、という2点です:
2021101503


以下ではこの環境を構築する例として「社内ネットワークに接続したラズベリーパイに社外から SSH で接続する」ための設定手順を紹介します。「ラズベリーパイに SSH 接続」する部分はあくまで例※であり、「社内のある機密システムを利用」すると読み替えていただくとより実像がイメージしやすいかもしれません。

※1つの例であることはその通りですが、一般的な Windows でも Linux でもなければ、HTTP サーバーでもない、という意味では比較的特殊なシステムと考えることができ、それでも接続できることを示した例といえます。
2021101504





【SecureGateway の準備】
実際にこの例で SecureGateway を使って機密システムにアクセスできるようにするまでの手順を紹介します。設定手順は大きく3段階ですが、いずれも専門の知識を必要とするものではなく、docker 環境さえあれば②も簡単に実現できます(docker を使わない場合は SG クライアントに相当するアプリケーションをダウンロード&インストールする必要があります):

①IBM Cloud 内に SG サービスインスタンスの作成
②社内ネットワークに SG クライアントの用意
③どの機密システムを利用するか、の設定

2021101505


では3つの段階を順に説明します。まずは①の「SG サービスインスタンスの作成」です:
2021101506




SecureGateway は IBM Cloud から提供されているサービスですが、無料の(アカウント作成時にクレジットカードを登録しない)ライトアカウントでは利用できません。SG 自体は無料でも利用できますが、ライトアカウントでは使えない、という点に注意してください。必要に応じてクレジットカードを登録するなどして、通常アカウントの権限で以下を作業する必要があります。

改めて通常アカウントで IBM Cloud にログインし、「リソースの作成」から "Secure Gateway" を検索して選択します:
2021101507


2021101508


利用プランが選択できますが、"Essential" プランを選択すると料金はかかりません(ただし接続先は1つのみ、一ヶ月間の通信データ量は 500MB 以下という制約があります)。最後に「作成」でサービスインスタンスを作ります。
2021101501


以下のような画面になれば SG のインスタンスが作成されたことになります。簡単でしたね:
2021101502


続いて②の SG クライアントを作成します。こちらは社内ネットワーク内に準備する必要があります:
2021101501


まずは①で作成した SG インスタンスの画面で「ゲートウェイの追加」をクリックします:
2021101502


ゲートウェイの名前を適当に入力して(下図では「自宅ネットワーク」)、「ゲートウェイの追加」ボタンをクリックします:
2021101503


以下のような画面になればゲートウェイが準備できました。ただ、この時点ではまだ①の SG インスタンス側に接続の準備ができただけで、社内ネットワークとは接続できていません(画面右上に赤いアイコンが表示されているのが未接続を意味しています)。社内ネットワーク側の準備をするために「クライアントの接続」をクリックします:
2021101504


以下のような画面が表示され、社内ネットワーク側で行う必要のある SG クライアントの準備手順が表示されます。SecureGateway では SG クライアントを以下の3種類から選ぶことができ、それぞれの手順が表示されています:
 - 専用アプリケーション(社内ネットワークに接続された PC にダウンロードしてインストール)
 - docker コンテナ(社内ネットワークに接続された docker エンジンで実行)
 - 専用ハードウェア(社内ネットワークに追加設置)
2021101505


本ブログエントリでは最も手軽と思われる docker コンテナを使った方法を紹介します。docker アイコンを選択すると、社内の docker エンジンで実行するためのコマンド(1行!)が表示されるので、この内容をコピーします:
2021101506


コピーした内容を社内の機密システムと同じネットワーク上で稼働する docker エンジン環境で実行します。

なお、先ほどの画面で表示されていた内容は
 $ docker run -it ibmcom/secure-gateway-client XXXXX

という内容でしたが、私が確認した環境では、
 $ docker run --net=host -it ibmcom/secure-gateway-client XXXXX

と、"--net=host" というオプションを付けないと正しく実行できませんでした。念のため記載しておきます:
2021101507


docker コンテナが正しく実行されると、画面に "Your Client ID is XXXXXX" と表示されます。この段階で SG クライアントも起動し、SG インスタンスとの接続も完了しています:
2021101508


念のため IBM Cloud 内の SecureGateway ダッシュボード画面を確認すると、クライアントが追加され、正常を示す緑色のアイコンが表示されているはずです:
2021101509


これで①と②が用意できました。続けて③の、具体的な機密システムまでの接続作業を行います。①、②ほど簡単ではありませんが、作業は個別のシステム内容に合わせて順に実行していくだけなのでそれほど難しいことはないと思っています:
2021101501


SG ダッシュボード画面で、まだクライアントを選択していない場合はこのタイミングで選択しておきます:
2021101502


SG クライアントが選択された状態になりました。ここで「宛先(0)」と表示されていることを確認します(登録されている機密システムが0個、という意味です)。ここに新しい機密システムを追加するため、宛先(0) のタブを選択後にプラスのアイコンをクリックします:
2021101503


「宛先の追加」ダイアログが表示され、この画面の質問に答えていく形で宛先を追加できます。まずは「ガイド付きセットアップ」が選択されていることを確認し、リソースの場所として(今回は社内ネットワーク内のラズベリーパイに接続することが目的なので)「オンプレミス」を選択し、「次へ」をクリックします:
2021101504


次に具体的な接続先の IP アドレスとポート番号を指定します。今回の例ではラズベリーパイへ SSH 接続することが目的なので、該当ラズベリーパイの IP アドレスと、SSH のポート番号を指定します。SSH ポート番号は通常 22 ですが、意図的に変更している場合は変更後のポート番号を指定します。

※ここでプライベート IP アドレスである 192.168.xx.xx というアドレスを指定している点に注目してください。プライベートネットワーク内の、プライベート IP アドレスを指定しているので、通常の方法ではインターネットからアクセスすることはできないシステムを指定しています。 また対象システムもウェブアプリケーションだったり、データベースだったり、ホストコンピュータだったり、いろんなパターンがあると思いますが、いずれの場合も IP アドレスおよびポート番号(対象によっては認証の仕組みも)を正しく指定できることが必要です。

その後「次へ」をクリックします:
2021101505


機密システムへ接続する際に用いるプロトコルを指定します。今回は SSH への接続なので「TCP」を選択します(機密システムがウェブアプリケーションであれば HTTP を選択するなど、実際の接続先に合わせて選んでください)。その後「次へ」をクリックします:
2021101506


次の画面で接続に利用する認証方式を選択します。今回の例では不要なので「None」を選択しましたが、ここも実際の接続先に合わせて選択します。「次へ」をクリック:
2021101507


設定後、この仕組みを利用可能な PC に IP アドレス指定をかけることが可能です。制約をかける場合はこの画面で対象 PC の IP アドレスを指定して追加します。特に不要であればそのままでも構いません。「次へ」をクリックします:
2021101508

※例えば機密のデータベースシステムを公開して、特定のパブリックなウェブアプリケーションから利用するような場合であれば、データベースそのものは誰でも使えるような形にはせず、対象のウェブアプリケーションサーバーからしか接続できないようにしたい、といった場合にそのウェブアプリケーションサーバーの IP アドレスを指定する、といった形で制約をかけます。


最後にこの宛先に名前を付けて保存します。下図の例では「ラズパイSSH」という名前を指定しています。そして「宛先の追加」をクリックします:
2021101501


1つ前の画面に戻り、指定した名前の宛先が追加されたことが確認できます。ただこの時点ではまだ宛先の右上に赤い印が表示されていて、接続許可が足りないことがわかります:
2021101502


というわけで、同機密システムへの接続許可を SG クライアントに指定します。docker 画面を再び表示して、以下のように(2回にわけて)入力します:
> A 192.168.0.101:22 1

> S

A(allow) コマンドに続けて 宛先のIPアドレス:宛先のポート番号 1 を指定します(最後の1はワーカーIDと呼ばれるもので、ここは1を指定します)。そして S(show) コマンドで設定内容を確認します:
2021101503


↑このように「宛先の追加」ダイアログで指定したものと同じ内容が docker コンテナの SG クライアントでも指定できていれば成功です。

この時点で先ほどまでダッシュボード画面に表示されていた赤いアイコンは消え、宛先である機密システムへの接続が確立できているはずです:
2021101504


ここまでが SecureGateway によるプライベートネットワークへの接続に必要な設定手順です。繰り返しますが、実際の接続先である機密システムや、この後接続時に使う PC への設定は一切不要です。また SG インスタンスや SG クライアントも非常に簡単に設定できている点がメリットだと考えています。


では実際にインターネットからプライベートネットワーク内の機密システム(=ラズベリーパイの SSH )に接続できるか動作確認してみましょう:
2021101505


まずはダッシュボード画面で接続時に必要な情報を確認します。宛先として作成したアイコンの右下の歯車をクリックします:
2021101506


以下のようなダイアログが表示されます。この「クラウド・ホスト:ポート」と表示されている部分にインターネットからアクセスすると、SG クライアントを通じて内部ネットワークから「リソース・ホスト:ポート」へ接続できるようになっています(この画面を確認したら右上の×をクリックして消します):
2021101507


改めてインターネットにアクセスできるPCから「クラウド・ホスト:ポート」で表示されている宛先に接続します。今回は接続先が SSH サーバーなので SSH クライアントを使って、ホスト名とポート番号を SG インスタンスのダッシュボードで表示されたものを指定して接続を試みます:
2021101508


今回は SSH への接続なので、この後で認証を求められます。内部ネットワークから利用する時と同じユーザー名とパスワード(場合によっては秘密鍵など)を入力します:
2021101501


正しい認証情報が入力できればログインが完了します。このアプリケーションの場合は接続先のホスト名がタイトルウィンドウに表示されますが、内部ネットワークの IP アドレスではなく、SG ダッシュボードで表示されたホスト名が表示されている点に注目してください。VPN を使わずに内部ネットワークとインターネットがトンネリングされ、専用のホスト名とポート番号だけで内部ネットワーク内の機密システムにアクセスすることができました:
2021101502


内部ネットワークからでないとアクセスできなかったシステムに無事にアクセスできました。SecureGateway は Essential プラン(無料)の場合は宛先を1つしか設定できませんが、別の有償プランにすることで1つの SG インスタンスで複数の宛先を指定することもできるようになるので、③の手続きを必要な宛先のぶんだけ繰り返すことで必要な社内ネットワークシステムへのアクセスが可能になります。

中小規模のリモートワーク環境を整える上で、手続きやコストで有力な選択肢になると思っているので、ぜひ試してみてください。

 

IBM SecureGateway は、プライベート環境内のデータをクラウド環境から利用する際のトンネリングを行う上で簡単かつセキュアに環境を用意することができて、ハイブリッドクラウドを実現する上で非常に便利なサービスです(詳しくはこちらも参照ください):
2017041804


このトンネリング環境を作る方法として3つのクライアント環境が用意されています。この3つの環境を比較してみました:
2017041900


まず1つ目は「IBM インストーラー」と名付けられている、専用ソフトウェアです。ハイブリッド化の対象となるプライベートネットワークに接続された Windows/Mac/RHEL/Ubuntu(z, PPC, x86_64) に、各システム向けにビルドされた軽量な専用モジュールからインストールして利用します:
2017041801


2つ目は「Docker」です。ハイブリッド化の対象となるプライベートネットワーク内に Docker 環境があれば(または用意して)、専用の Docker イメージをダウンロードしてコンテナ上で稼働させます:
2017041802


そして3つ目が「IBM DataPower」と呼ばれる専用アプライアンスサーバーです。ハイブリッド化の対象となるプライベートネットワークに直接接続して電源を入れると稼働する、専用サーバーおよびハードウェアです:
2017041803


ちなみに DataPower サーバーの実体の外見はこんな感じです。「ザ・サーバー」って感じ:
ibm datapowers



Secure Gateway のクライアントとして利用する場合、いずれも機能そのものとしての違いはないのですが、選択する上で考慮する要素はいくつかあるので考えてみました。

まずは配布形態と、その形態による依存条件です。IBM インストーラーの場合はソフトウェアとしての配布なので、(仮想)マシンと OS があれば導入できます。Docker の場合は Docker 環境が必要です。プライベートネットワーク内に Docker 環境が用意されていればいいのですが、新たに構築可能かどうか、という点は問題になるかもしれません。そして DataPower は専用サーバーハードウェアなので、このハードウェア資産の購入とネットワークに新たに1サーバーを接続するという必要があります。

次に操作画面の違いです。IBM インストーラーと DataPower の場合はサービスとしてクライアントが実行され、その設定や操作は専用のウェブアプリケーションにアクセスして行うことになります。良く言えば詳しくなくてもウィザート通りにすすめていけるので便利、悪くいうとブラウザ環境必須(コマンドラインからは操作できないのでターミナルでリモートログインして・・というわけにはいかない)のです。Mac や Windows などの GUI 環境が用意されているマシンをネットワーク内で使える場合はいいですが、(現実的な)Linux でやろうとすると X Window まで用意された環境が必要になります:
2017041901


一方 Docker の場合は専用イメージを起動すると操作専用のコマンドラインが起動します。このコマンドラインから目的の操作を直接入力できるので、ターミナルを用いたリモート操作も可能です。Linux 環境前提で、ある程度コマンドライン操作に慣れた人が使うのであれば、こちらの方が便利かもしれません:
2017041902


まとめるとこんな感じですかね。トンネリング部分として同じ機能を提供するものなので、後は前提ネットワーク環境内のルールや操作する人のスキルを元にどれを選ぶかを判断することになると思います:
 IBM インストーラーDockerIBM DataPower
配布形態ソフトウェアDocker イメージアプライアンスサーバー
プライベート環境側に必要な事前準備このソフトウェアをインストール可能な Windows/Mac/RHEL/Ubuntu システムが同一ネットワーク内に存在している(或いは接続できる)こと同一ネットワーク内で Docker 環境が構築されていること特になし
クライアント起動形態サービスDocker コンテナ内で常に実行中サービス
クライアント操作画面GUI(ウェブブラウザ)専用のコマンドラインGUI(ウェブブラウザ)
メリットウィザード形式に沿って設定可能
既存環境の活用
コマンドラインから目的のコマンドを直接実行可能
新たにリソースを調達する場合のコスト
ウィザード形式に沿って設定可能
別途システムやハードウェア、ソフトウェアの準備準備不要
デメリット慣れてくると GUI が面倒
別途 OS が必要
Docker 環境必須
全てコマンドライン操作
(仮想環境なので)パフォーマンスの担保が難しい
専用アプライアンスサーバーの購入が必要


個人的な感想ですが、DataPower は「専用機を買う」という選択肢なので対象外。Docker 環境を用意できるなら Docker が一番楽で、用意できない場合は仮想サーバーの Linux に X Window と専用ソフトウェアをインストール、かな。


IBM Bluemix が提供するサービスの1つである Secure Gateway を紹介します:
2017040501


IBM も提唱する「ハイブリッド・クラウド」環境では、パブリックなクラウドだけでなく、一部のデータベースがセキュアなプライベート環境やオンプレミス環境上に存在したままでシステムシステムを実現する必要があります。ではどのような仕組みでパブリッククラウドとセキュアなデータベース接続を実現することができるでしょうか?
2017040501


一般的には VPN などの仕組みを使うことも考えられますが、そのためのサーバー機器やソフトウェア、およびそれらの仕組みをプライベートネットワーク側にも用意する必要があり、運用・管理も含めた負担は軽いものではありません。 今回紹介する Secure Gateway はプライベートネットワークの Docker イメージとしてトンネリングクライアントを用意し、Bluemix 側のトンネリングサーバー(ゲートウェイ)との間で通信して、目的のプライベートデータベースとの接続をシームレスに実現する、というものです:
2017040501


この Secure Gateway を利用する場合、その環境構築は非常に簡単です。ゲートウェイサーバー側は SaaS のサービスをインスタンス化するだけ、クライアント側はソフトウェアを導入してゲートウェイサーバーと接続するコマンドを実行するだけですが、導入方法の1つとして専用の Docker イメージが用意されているので、そのコンテナを Docker から起動するだけで済みます。管理・運用の負担が非常に小さくなります。


また Secure Gateway には利用量に応じたいくつかのプランがあります。無料版である Essentials プランでは1つのゲートウェイにつき接続先は1つ(例えば1つのデータベース)だけですが、1ヶ月間に 500MB のトンネリング通信を行うことができます。Bluemix の画面からプランを選択して「作成」ボタンをクリックすると、このサービスが利用可能になります(この時点ではまだインスタンス化していません):
2017040502


この(サービスを作成した直後の)時点で Bluemix の Secure Gateway サービス画面を見ると以下のようになります。ダッシュボードから利用状況が確認できますが、まだゲートウェイインスタンス(上記図の Secure Gateway サーバー)が生成されていないので通信は行われていません。ゲートウェイサーバーを作成するには、画面左下の「ゲートウェイの作成」をクリックします:
2017040503


ゲートウェイの追加画面が表示されます。ここではゲートウェイの(つまりは接続先の)名称を指定します。必要に応じてセキュリティ・トークンの設定を行い(下図では設定していません)、最後に「ゲートウェイの追加」をクリックします:
2017040504


これでゲートウェイサーバーインスタンスが生成されました。が、まだゲートウェイクライアントが作られていないので、未接続状態です(画面右上のチェーンが赤)。そこで続いて「クライアントの接続」をクリックします:
2017040505


ゲートウェイクライアントを導入するにはプライベートネットワーク内に専用のソフトウェアをインストールする他にも、専用の Docker イメージを使う方法や IBM DataPower アプライアンスサーバーを使う方法があります。今回はゲートウェイクライアントを Docker イメージから作るものとします(プライベートネットワーク内に Docker が導入されたマシンが存在するものとして、以降「Docker ホストマシン」と表現します)。そして接続方法に "Docker" を選択します。すると、Docker ホストマシン上で実行するべきコマンドが表示されます。ここに書かれている "docker run -it" で始まるコマンドを、プライベートネットワーク内の Docker ホストマシンで実行します:
2017040506


多くの場合、ここで作成する Docker イメージを起動したまま Docker ホストマシンのコマンドを抜けることになると思うので、Docker ホストマシンでコマンドを実行する前に一度 screen などでターミナルを多重化しておくのがいいと思います:
$ screen

その上で上記コマンドを実行するとこのような画面になり、最後にプロンプトが表示されます。Secure Gateway クライアントが起動した状態で Docker イメージが起動し、コマンド待ち状態になっています:
$ docker run -it ibmcom/secure-gateway-client XXXXXXXX_prod_ng
IBM Bluemix Secure Gateway Client Version 1.7.0
************************************************************************************************
You  are running the  IBM Secure  Gateway Client for Bluemix. When you enter the provided docker
command the IBM Secure Gateway Client  for Bluemix automatically downloads as a Docker image and
is executed on your system/device. This is released under an IBM license. The  license agreement
for IBM  Secure Gateway Client for Bluemix is available at the following location:

http://www.ibm.com/software/sla/sladb.nsf/lilookup/986C7686F22D4D3585257E13004EA6CB?OpenDocument

Your use of the components of the package and  dependencies constitutes your acceptance  of this
license agreement. If you do  not want to accept the license, immediately quit  the container by
closing the  terminal  window or by  entering 'quit' followed by the ENTER key. Then, delete any
pulled Docker image from your device.

For client documentation, please view the ReadMe located at:
.rpm and .deb installers: /opt/ibm/securegateway/docs/
.dmg installer:           <installation location>/ibm/securegateway/docs/
.exe installer:           <installation location>\Secure Gateway Client\ibm\securegateway\docs\
************************************************************************************************


<press enter for the command line>
[2017-04-04 11:20:59.269] [INFO] (Client ID 1) No password provided. The UI will not require a password for access
[2017-04-04 11:20:59.278] [WARN] (Client ID 1) UI Server started. The UI is not currently password protected
[2017-04-04 11:20:59.279] [INFO] (Client ID 1) Visit localhost:9003/dashboard to view the UI.
[2017-04-04 11:20:59.521] [INFO] (Client ID 15) Setting log level to INFO
[2017-04-04 11:21:01.562] [INFO] (Client ID 15) The Secure Gateway tunnel is connected
[2017-04-04 11:21:01.752] [INFO] (Client ID XXXXXXXX_eoF) Your Client ID is XXXXXXXX_eoF
XXXXXXXX_eoF>

(追記)
ダッシュボード画面に表示されている Docker コマンドは上記(docker run -it ****)なのですが、実際にはネットワークモードをデフォルトのブリッジではなくホストモードで起動しないとエラーが発生する、という症状が出ることもあるので、その場合はホストモード(docker run --net=host -it ****)での起動を試みてください。自分はホストモードで起動しています。
(追記終わり)


このクライアントのワーカー ID (Essentials プランの場合は大抵1だと思いますが)を後で使うので確認しておきます。このプロンプトにおいて "L" という List の短縮コマンドを実行して、Worker ID を確認します:
XXXXXXXX_eoF> L
----------------------------------------
-- Current Secure Gateway Client Connections --

 Worker ID   Client ID     Description
      1     XXXXXXXX_eoF          木村家GW
----------------------------------------
XXXXXXXX_eoF>

もしもここでワーカー ID が確認できなかった場合は、何らかの原因でゲートウェイサーバーとの接続がうまく行ってないことになります。その場合は手動でゲートウェイ ID を指定して接続する必要があります。ゲートウェイ ID を確認するには Secure Gateway ダッシュボードで接続名(下図の場合は「木村家GW」)の右にある歯車マークをクリックします:
2017040502


すると以下のような画面が表示され、ゲートウェイ ID が表示されるので、この値をコピーしておきます:
2017040508


改めてゲートウェイクライアントのプロンプトで、以下のように指定してゲートウェイサーバーと接続します:
XXXXXXXX_eoF> c (ゲートウェイID)

その後、上記の L コマンドで接続を再確認してください。


ではここで確認したワーカー ID を使って、接続を許可するリソースを指定します。例えばプライベートネットワーク内のデータベースサーバーの IP アドレスが 192.168.0.101 で、データベースシステムが MySQL (ポート番号 3306)だった場合、以下のコマンドを実行して、Secure Gateway による接続を許可します:
XXXXXXXX_eoF> A 192.168.0.101:3306 1

  ↑最後の1はワーカーID


なお、上記で触れたようにゲートウェイクライアントで screen を実行してから Docker イメージを起動していた場合、キーボード操作で Ctrl + A, D (Ctrl を押しながら A 、続いて Ctrl を離して D)を実行すると Docker イメージを起動したまま screen を抜ける(デタッチする)ことができます:
XXXXXXXX_eoF> (Ctrl + A, D を実行)
$ 

こうしてデタッチした screen に再び接続(アタッチ)するには screen -r コマンドを実行します:
$ screen -r

XXXXXXXX_eoF>


これだけで Bluemix のランタイム(アプリケーションサーバー)などから、Secure Gateway を経由してプライベートネットワークのデータベース等に接続することができるようになります。 実際に接続する場合にランタイム側からどのようなサーバーとポートに対して接続すればよいのかを確認します。


先程の Secure Gateway のダッシュボード画面の、作成したゲートウェイの画面において、「宛先」タブを選び、上記で定義済みの宛先の設定ボタン(右下の歯車アイコン)を選択します:
2017040701


すると以下のような画面になります。ここで「リソース・ホスト:ポート」にはオンプレミス上の接続先リソースの情報が表示されますが、「クラウド・ホスト・ポート」に表示されているホスト名とポート番号の組み合わせをコピーしてください。そして実際のアプリケーションランタイムからは、このホスト名とポート番号に対して接続することでハイブリッドなクラウド環境が実現できます:
2017040702




このページのトップヘ