はじめに
本記事ではOracle Cloud Infrastructure(以下OCI)のクラウド・シェルからプライベート・サブネット上のコンピュート・インスタンスにSSH接続した時の手順を紹介します。
デフォルトの設定ではクラウド・シェルからのアクセスはテナンシのホーム・リージョン内の他のOCIリソースのみ可能となっています。
クラウド・シェルからプライベート・サブネット内のリソースへアクセスするには「プライベート・ネットワーク・アクセス」を用いることで実現できます。
このような接続方法に興味がありましたらご一読下さい。
※紹介する内容は2024年5月末時点のものです。
目次
はじめに |
1 構成図
今回は以下の構成で検証しました。
SSH接続の対象となるコンピュート・インスタンスにSSH接続ができるよう設定下さい。
注意点
SSH接続したいコンピュート・インスタンスがホーム・リージョン内にあることを確認下さい。
ホーム・リージョン外にある場合はホーム・リージョン内のVCNとのピアリング接続を確立する必要があります。
ホーム・リージョンはOCI コンソールの画面右上から確認できます。
下図はホーム・リージョンが東京であることを示しています。
2 実施手順
2.1 ポリシー設定
接続ユーザが所属しているグループに以下のコマンドでポリシーを設定して下さい。
・allow group <グループ名> to use subnets in compartment <コンパートメント名>
・allow group <グループ名> to use vnics in compartment <コンパートメント名>
・allow group <グループ名> to use network-security-groups in compartment <コンパートメント名>
・allow group <グループ名> to inspect vcns in compartment <コンパートメント名>
2.2 クラウド・シェルに接続する
下図のようにOCI コンソールの右上の「Cloud Shell」をクリックします。
数秒後、OCI コンソール下部に以下のような画面が表示されます。
2.3 プライベート・ネットワーキングを使用する
下図のように「ネットワーク:パブリック」と表示されたプルダウンから「エフェメラル・プライベートネット・・・」を選択します。
画面右側に「エフェメラル・プライベート・ネットワーク設定」の設定画面が表示されます。
SSH接続したいコンピュート・インスタンスが存在するVCNおよびサブネットを選択し、画面下部の「アクティブなネットワークとして使用」を選択します。
数秒後、下図赤枠の表示が「ネットワーク:エフェメラル」となります。
2.4 秘密鍵をクラウド・シェル上に配置する
コンピュート・インスタンスに登録されている公開鍵に対応する秘密鍵をクラウド・シェル上のホーム・ディレクトリの「.ssh」ディレクトリに配置します。
(「.ssh」ディレクトリが無い場合は「mkdir ~/.ssh」で作成できます。)
配置するにあたって、今回は以下のように秘密鍵を暗号化した上で配置しました。
i (任意) 秘密鍵をopenssl等であらかじめ暗号化する。
(コマンド例)
openssl aes-256-cbc -md sha256 -k {パスワード} < {秘密鍵} > {暗号化した秘密鍵}
ii 秘密鍵もしくは暗号化した秘密鍵をクラウド・シェルへドラッグアンドドロップで送付する
iii (ⅰ. で秘密鍵を暗号化した場合は実施) ホーム・ディレクトリに送付されたファイルを復号する
(コマンド例)
openssl aes-256-cbc -md sha256 -k {パスワード} -d < {暗号化した秘密鍵} > {秘密鍵}
※ ホーム・ディレクトリに残っている復号した後の暗号化した秘密鍵は削除して問題ありません。
iv 秘密鍵のパーミッションを「600」に設定し、「.ssh」ディレクトリに配置する。
2.5 プライベート・サブネット上のコンピュート・インスタンスにSSH接続する
(コマンド例)
ssh -i {秘密鍵} {接続ユーザ名}@{プライベートIPアドレス}
以下はopcユーザで接続した時の画面です。
上図のように「Are you sure you want to continue connecting (yes/no)?」と表示された場合は「yes」と入力してエンターキーを押下することで進めます。
最後に
今回はOCIのクラウド・シェルからプライベート・サブネット上のコンピュート・インスタンスにSSH接続する方法を紹介しました。検証作業中の時などに気軽に接続できるのが便利だと感じましたがいかがでしょうか。お役に立てれば幸いです。
参考文献
OCI マニュアル クラウド・シェルのプライベート・ネットワーキング
https://docs.oracle.com/ja-jp/iaas/Content/API/Concepts/cloudshellintro_topic-Cloud_Shell_Networking.htm#Cloud_Shell_Private_Access