remote.itを使って、構築したサービスを内輪でシェアできるような構成を試してみました
短期的に特定の利用者にサービスを使ってもらうようなシーン(ワークショップなど)に有効な気がします
はじめに
記載している構成では以下に重点を置いています
- VMにグローバルIPを割り当てない
- VMのセキュリティルールでサービスが使用するポートを開放しない
- remote.itのエージェントを入れるVMは1つだけにする
- エージェントを入れられないVM(アプライアンス製品とか)に使用できる
特定のPCからのアクセスしか許容しないということはできません。
URLさえわかればアクセス可能ですので試す際は十分ご注意ください
なお、remote.itを使ってみれば設定できると思いますので詳細な手順については記載していません。
実行環境
Azureに作成したUbuntu VMを使用していますが、ほかのクラウドベンダー&OSでも特に差支えありません。
環境の構成イメージ
- VMの設定はグローバルIPを割り当てていない
- jump-server以外のVMで起動しているサービスは、jump-serverにポートフォワードしている
- remote.itの設定:サーバーエージェントをjump-serverに設定し、ブラウザから各種サービス設定をしている
接続イメージ
以下は、Rundeckサービスにアクセスしています。
remote.itで接続した際にhttp://xxxxyyy.io
とURLが表示されるので、それを利用者にシェアすれば完了です
環境構成の詳細
一部ですが、実際の設定内容について詳細を記載します
VMの設定はグローバルIPを割り当てない
以下は、jump-serverの設定ですがすべてのVMを同じ設定にしています
jump-server以外のVMで起動しているサービスは、jump-serverにポートフォワードする
以下のようにjump-serverからポートフォワードをすることで、remote.itのエージェントをjump-serverだけになるようにしています
aki-nasu@jump-server:~$ ps -ef |grep ssh
aki-nasu 5538 1 0 01:52 ? 00:00:00 ssh -gL 4440:10.0.0.5:4440 aki-nasu@10.0.0.5 -i .ssh/id_rsa -Nf
aki-nasu 8365 1 0 02:25 ? 00:00:00 ssh -gL 18080:10.0.0.6:8080 aki-nasu@10.0.0.6 -i .ssh/id_rsa -Nf
remote.itの設定
Service Typeについて、GuacamoleをHTTPにして、ほかのサービスはTCPにしています。同じHTTPに設定すると同時接続ができません。
おわりに
軽く使ってみた程度なので、認識に誤りがあればご指摘ください。
ほんとうは開発環境をセキュリティを気にせずに建てたくて、特定の端末からしか接続できないような使い方をイメージしていました。
自端末にもエージェントを入れればいいんですかね。
参考
環境構成のなかで登場しているサービスの公式ページ