スマートスタイル TECH BLOG

データベース&クラウド技術情報

OCIのCloud Shellでプライベート接続をする

はじめに

今月2日のリリースで、OCIの Cloud Shell を使用してプライベート接続ができるようになりました。

今までは、作業端末からプライベートサブネット上の Compute インスタンスや、MySQL Database Service(MDS)インスタンスにアクセスする場合には以下のような手法を用いる必要がありました。

  • VPNを使用する
  • Bastion Serviceを使用する
  • パブリックサブネット上に踏み台サーバを用意する

今回のリリースにより、Cloud Shell を使用して直接プライベート上のインスタンスにアクセスできるようになりました。

ということで、実際にやって確認してみたいと思います。

構成

今回、検証した環境は以下のようになっております。
Homeリージョンとなる東京リージョンのプライベートサブネットにある Compute インスタンスと MDS インスタンス に Cloud Shell でアクセスしてみます。
両インスタンスには、セキュリティリストで、同一サブネット内からのアクセスを全て許可するように設定しています。

前提条件

Cloud Shell でプライベートアクセスを行う場合は、Cloud Shell を使用するポリシーとは別にプライベートアクセスを行う為のポリシー付与が必要となります。
詳細は以下のリファレンスをご確認下さい。

検証

まずは、OCIのコンソール画面にログインし、画面上部にあるアイコンから Cloud Shell を起動します。

起動してしばらくすると、画面下部に以下のように Cloud Shell の画面が起動します。

Cloud Shell 画面の上部に「ネットワーク:パブリック」と表示されていることから、現在はパブリックネットワーク上で起動されていることが分かります。
プライベート接続を行うには、上記表示箇所の右側のプルダウンを押下し、「プライベート・ネットワーク設定」を押下します。

設定画面が表示されますので、プライベート接続を行いたいリソースが存在するVCNとプライベートサブネットを選択し、「このネットワークに接続」を押下します。
(Cloud Shell からのアクセス先を限定したい場合は、別途、ネットワークセキュリティグループを用意して、設定する事も可能です)

Cloud Shell 画面の上部が「ネットワーク:パブリック」から「ネットワーク:プライベート(接続中)」に変わっています。

この状態で右横の「詳細」リンクを押下すると、以下のような画面が表示され、「状態」が「Connecting…」と表示されています。

接続が完了すると、「状態」が「接続済」となります。

プライベート接続が完了したので、プライベートサブネット上にある Compute インスタンスに SSH で接続してみましょう。

問題無く接続できています。
リファレンス には詳細が記載されておりませんが、/var/log/secure には、 Accepted publickey for opc from 10.0.2.150 port 49334 のようなアクセスの痕跡があり、プライベートサブネット上にエンドポイントが作成されているものと思われます。

それでは、MySQLクライアントで、プライベートサブネット上にある MDS インスタンスへもアクセスしてみます。

Cloud Shell には MySQL Shell もインストール済みですので、MySQL Shell でもアクセス確認してみます。

問題なくアクセスできている事が分かります。
ここまでの手順で、Home リージョンに存在するプライベートサブネットのリソースにアクセスする事を確認しました。
ただ、Home リージョン以外のリージョンに存在するプライベートサブネットのリソースにアクセスする場合には、Home リージョンに存在する VCN と対象のリージョンにあるサブネットの VCN をリモート・ピアリング接続を行う必要があります。
詳細と手順については、Oracle Cloud Infrastructureドキュメント / RPCを使用したリモートVCNピアリング をご参照下さい。

手順は上記リファレンスを確認頂くものとし割愛しますが、以下のような環境を用意して大阪リージョンのプライベートサブネット上の Compute インスタンスにアクセス確認を行ってみました。

こちらも問題無くアクセスできることを確認しました。

まとめ

Cloud Shell の制限により、セッションの最大時間は24時間で、20分間アイドル状態となった場合はタイムアウトするといった事もあるので、用途によっては使えないケースもあるかと思います。
ですが、以前、Bastion Service についても 弊ブログ で紹介しましたが、Bastion Service よりは手順としては簡単ですし、ファイルを書き換えたい、データを確認したい等の簡単な用途であれば大いに活用できるのではないでしょうか。

今後も、普段から使えそうな便利機能がリリースされるのを見落とさないようにしていきたいと思います。

Return Top