はじめに

皆様こんにちは。
今回はOCIチュートリアル応用編にもある、Bastionサービスを使って、パブリックIPアドレスを持たないインスタンスへのSSH接続を実際にやっていきたいと思います。

今回の執筆者は直近、Oracle Cloud Infrastructure Foundations 2023 Certified Associate、ORACLE MASTER Bronze DBA 2019を取得しました!に登場しています!是非ご覧ください!

概要

Bastion(要塞)とは

Bastion(要塞)とは、パブリックIPアドレスを持たないインスタンスに、踏み台サーバーを経由せず直接接続を可能にする機能です。

このサービスのメリットとしては以下の通りです。

  • パブリックIPアドレスを持つ踏み台サーバーを用意する必要がなくなる
  • 接続可能時間を制限できるため、意図しないアクセスを防ぐことができる
  • 無料で利用できる

前提

今回は、VCNの作成とパブリックIPを持たないインスタンスの作成を前提として進めていきます。

実践

今回は以下の5つのステップでプライベートサブネット内のインスタンスへSSH接続を行っていきます。

  1. ポリシーの付与
  2. インスタンスのプラグインを有効化
  3. Bastionの作成
  4. セッションの作成
  5. SSH接続

ポリシーの付与

Bastionサービスを利用するには、以下二つの権限が必要となります。

manage bastion
manage bastion-session

管理者やall resourceで全リソースを使用できる権限が付与されているユーザーで実行する場合は、こちらの手順は必要ありません。
実際にポリシーを付与する際には、以下のようになります。

Allow group <グループ名> to manage bastion in tenancy/compartment<コンパートメント名>
Allow group <グループ名> to manage bastion-session in tenancy/compartment<コンパート名>

インスタンスのプラグインを有効化

作成していたインスタンスのプラグインを有効化します。
インスタンスの詳細を開き、「Oracle Cloudエージェント」を選択し、一番下の項目の「要塞」のプラグインを有効化します。

こちらのプラグインを有効化していないと、後述のセッションの作成ができなくなります。
詳細は公式マニュアルをご参照ください。

Bastionの作成

Bastionの作成を行います。設定項目は以下の通りです。

要塞名:Bastion<作成日時>

仮想クラウドネットワーク:BastionVCN(作成したVCNを選択します。)

ターゲット・サブネット:private_Bastion(作成したプライベートサブネットを選択します。)

CIDRブロック許可リスト:0.0.0.0/0

セッションの作成

Bastionの作成が完了したら、作成したBastionを選択し、「セッションの作成」をクリックします。

セッションタイプ:管理対象SSHセッション

セッション名:Session<作成日時>

ユーザー名:opc

コンピュートインスタンス:instance-Bastion(作成したインスタンスを選択します。)

SSHキーの追加:SSH公開キーを選択しアップロードします。SSHキー・ペアの作成を選択しても大丈夫です。

SSH接続

作製したセッションの右側にあるメニューバーをクリックして、「SSHコマンドのコピー」を選択します。

以下のようなコマンドがコピーされるため、メモ帳などテキストエディタを用いて<privateKey>を実際の配置先が指定できるように置換します。
<ocid>、<IPアドレス>は自動的に適切なものになっているため置換する必要はありません。

ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 <ocid>" -p 22 opc@<IPアドレス>

置換ができたらコマンドプロンプトなどで実行します。

無事にインスタンスにSSH接続ができました!

最後に

ご覧いただきありがとうございました。

Bastionサービスを利用することで、セキュリティを高く保ったままパブリックIPアドレスを持たないインスタンスへの接続が可能になります。

次回の更新もお楽しみに!

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!