Oracle Bastionを使ってみた
こんにちは。Oracle Cloud Infrastructure(OCI)特集 編集部です。
今回はOracle Bastionのご紹介と構築方法、使用方法についての内容になります。
プライベートサブネットに配置されているサーバに接続するためには、パブリックIPを持つ踏み台サーバを経由する必要があります。
しかし、Oracle Bastionを使用することで踏み台サーバを用意することなくプライベートサブネットに配置されているサーバに接続することができます。
目次
Oracle Bastionの概要
OCIの公式マニュアルから引用します。
インターネットからアクセスできないクラウド内のターゲットリソースへのセキュアなパブリック・アクセスを提供する論理エンティティです。
パブリック・サブネットに存在し、ユーザーをプライベート・サブネット内のターゲット・リソースに接続するために必要なネットワーク・インフラストラクチャを確立します。
プライベートサブネットに配置されているリソースへのアクセスを許可、制御することができます。
また、接続する際にはRDPやSSHを使用することができます。
※Oracle Bastionはパブリックサブネットに存在しますが、
パブリックサブネットを事前に作成する必要はありません。
Oracle Bastionの構築
今回構築する構成図は下記の通りです。
プライベートサブネットに配置されているWindowsサーバとLinuxサーバにOracle Bastionを使用して接続していきたいと思います。
・ネットワーク関連(VCN、サブネット、セキュリティリスト)
・インスタンス(Linux、Windows)
ネットワークやサーバの構築方法に関しては下記でご紹介していますので是非ご覧ください。
Oracle Cloud Infrastructureのご紹介 ~ネットワークサービス~
Oracle Cloud Infrastructureのご紹介 ~コンピュートサービス~
では構築していきます。
まずはOracle Bastionを作成します。
OCIコンソールにログイン後、左上の「三」→「アイデンティティとセキュリティ」→「要塞」をクリックします。
「要塞の作成」をクリックします。
続いて「要塞名」、「仮想クラウドネットワーク構成」、「CIDRブロック許可リスト」、「最大セッション持続時間」を入力し、「要塞の作成」をクリックします。
状態がアクティブになっていることが確認できれば作成完了となります。
Linuxの接続方法
続いては、セッションの作成を行います。
※事前にOracle Bastion、公開キー、秘密キーを作成しておく必要があります。
セッションの作成では、接続するリソースの選択や、接続を許可している時間を決めます。
セッションを作成するOracle Bastionをクリックします。
「セッションの作成」をクリックします。
「セッション・タイプ」、「セッション名」、「インスタンスの選択」、「ポート」、「SSHキーの追加」を入力します。
「SSHキーの追加」ではあらかじめ作成した秘密キーを選択します。
SSH接続を行うので「ポート」は「22」を入力します。
下にスクロールし、「最大セッション持続時間」、「ポート番号」、「ターゲットインスタンスのIPアドレス」を入力し、「セッションの作成」をクリックします。
状態がアクティブになっていることが確認できれば作成完了となります。
ここからはOracle Bastionを使用してLinuxサーバにSSH接続を行っていきます。
まずは、作成したセッションの右端にある「︙」をクリックし、「SSHコマンドの表示」を選択します。
コマンドが表示されますのでコピーします。
先ほどコピーしたコマンドの<privateKey>にセッションの作成時に指定したSSHキーペアの秘密キーの名前を代入します。
C:\Users\hasegawas\.ssh>ssh -i id_rsa -v -N -L 10022:10.0.1.118:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaaugapdmqakaotw3ombn36mnplrkmkmdppi5frzmttrq7lkkurn7zq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
接続元PCでSSHコマンド実行環境(今回はコマンドプロンプトを使用しています)を開き、秘密キーが格納されているディレクトリに移動しコマンドを実行します。
C:\Users\hasegawas\.ssh>ssh -i id_rsa -v -N -L 10022:10.0.1.118:22 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaaugapdmqakaotw3ombn36mnplrkmkmdppi5frzmttrq7lkkurn7zq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Connecting to host.bastion.ap-tokyo-1.oci.oraclecloud.com [192.29.38.223] port 22.
debug1: Connection established.
<略>
debug1: pledge: network
最後の行が「debug1: pledge: network」であることが確認できれば完了になります。
※接続したい間はコマンドプロントを閉じないでください。
続いては、Teratermを使用してLinuxサーバに接続していきます。
Teratermを起動します。
「ホスト」に「localhost」、「TCPポート」に「10022」を入力し、「OK」をクリックします。
「ユーザ名」、「秘密キー」を指定し、「OK」をクリックします。
問題がなければ接続できていることが確認できます。
ファイル転送を行う場合は「ファイル」→「SSH SCP…」をクリックします。
「From」と「To」を入力し、「Send」をクリックします。
ファイルが転送されていることが確認できました。
Windowsの接続方法
セッションを作成するOracle Bastionをクリックします。
※事前にOracle Bastion、公開キー、秘密キーを作成しておく必要があります。
先ほどと同様に「セッションの作成」をクリックします。
「セッションタイプ」、「セッション名」、「インスタンス」、「ポート」、「SSHキーの追加」を入力します。
「SSHキーの追加」ではあらかじめ作成した秘密キーを選択します。
「ポート」に関してはRDP接続なので「3389」にします。
下にスクロールし、「最大セッション持続時間」、「ターゲットインスタンスのIPアドレス」を入力し、「セッションの作成」をクリックします。
状態がアクティブになっていることが確認できれば作成完了となります。
ここからはOracle Bastionを使用してWindowsサーバにRDP接続を行っていきます。
まずは、作成したセッションの右端にある「︙」をクリックし、「SSHコマンドの表示」を選択します。
コマンドが表示されますのでコピーします。
先ほどコピーしたコマンドの<privateKey>にセッションの作成時に指定したSSHキーペアの秘密キーの名前を代入します。
ssh -i id_rsa -v -N -L 3399:10.0.1.173:3389 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaaugapdmqakzs3u6wbjz2pdtdizm4cnrfqoqgv3647lntxd7bzfmfq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
接続元PCでSSHコマンド実行環境(今回はコマンドプロンプトを使用しています)を開き、秘密キーが格納されているディレクトリに移動しコマンドを実行します。
C:\Users\hasegawas\.ssh>ssh -i id_rsa -v -N -L 3399:10.0.1.173:3389 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaaugapdmqakzs3u6wbjz2pdtdizm4cnrfqoqgv3647lntxd7bzfmfq@host.bastion.ap-tokyo-1.oci.oraclecloud.com
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Connecting to host.bastion.ap-tokyo-1.oci.oraclecloud.com [192.29.38.223] port 22.
debug1: Connection established.
<略>
debug1: pledge: network
最後の行が「debug1: pledge: network」であることが確認できれば完了になります。
※接続したい間はコマンドプロントを閉じないでください。
続いてはRDP接続を行っていきます。
RDP接続を起動します。
「コンピューター」に「localhost:3399」を入力し、「接続」をクリックします。
「パスワード」を入力し、ログインすることができれば完了となります。
ファイル転送は接続元PCでコピーを行い、接続先PC(Windows)でペーストを行うことでできます。
最後に
今回はOracle Bastionについてご紹介させていただきました。
Oracle Bastionを使用することでパブリックIPアドレスを持たないリソースに接続することができました。
踏み台サーバを別途用意する必要がなくなり、とても便利になりました。
また、比較的簡単に作成、設定を行うことができますので興味のある方は試してみて下さい。
他にもOCIには様々なサービスが提供されており、無料利用枠もあるので試してみてください!