LoginSignup
4
0

More than 1 year has passed since last update.

Oracle Cloud: Cloud Shell から 要塞(Bastion) 経由でコンピュート・インスタンスにアクセスしてみてみた

Last updated at Posted at 2022-06-09

Oracle Cloud Infrastructure (OCI)クラウド・シェルは、Oracle CloudコンソールからアクセスできるWebブラウザベースのターミナルです。
Private Subnet のコンピュート・インスタンスへ SSH接続するには、要塞(Bastion) 経由して接続します。
ということで、Cloud Shell から 要塞(Bastion) 経由してPrivate Subnet のコンピュート・インスタンスへインスタンスへ接続してみてみます。

■ 構成イメージ

構成イメージ.jpg
要塞(Bastion)に登録する「CIDRブロック許可リスト」は、セキリティ要件で 0.0.0.0/0 は NGというところがあります。
というこで、Cloud Shell のエンドポイントのIP Adressを「CIDRブロック許可リスト」へ登録します。

■ コンピュート・インスタンス事前準備

● 要塞(Bastion) プラグイン有効化

[管理対象SSHセッション]を使用した 要塞(Bastion)アクセスでは、コンピュートの'要塞プラグイン'が有効化されている必要があります。
無効化されている場合は、有効化してステータスが’実行中’であることを確認
確認は、コンピュート・インスタンス画面にある [Oracle Cloudエージェント]タブで確認できます
01_要塞プラグイン有効化01.jpg

■ Cloud Shell: エンドポイント調査

1) Cloud Shell 起動

コンソールにログインし、コンソール・ヘッダーで「クラウド・シェル」アイコンをクリックして起動
「クラウド・シェル」ウィンドウの右上隅にあるアイコンを使用すると、クラウド・シェル・セッションを最小化、最大化、再起動および閉じることができます。
CloudShell01.jpg
※クラウド・シェルの起動時に、コンソールの「リージョン」選択メニューで選択されているリージョンに対してコマンドが実行されることに注意してください。

2) エンドポイント確認

Cloud Shellへログインして次のコマンドを実行すると Cloud ShellのエンドポイントになるIP Adressを確認することができます

・コマンド

curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'

・実行例

shirok@cloudshell:~ (ap-Tokyo-1)$ curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
 129.213.201.220

■ Bastion作成

● Bastion作成

1) OCIコンソール

[アイデンティティとセキュリティ]> [要塞] をクリック
01_Bastion作成01.png

2) 要塞の作成画面

[リスト範囲]の[コンパートメント]リストで、要塞を作成するコンパートメントを選択し、[要塞の作成]をクリック

    ・要塞名: 任意の表示名
    ・仮想クラウド・ネットワーク: 関連付けるVCNを選択
    ・サブネット: Private Endpoint IPアドレスを配置するサブネットを選択
    ・CIDRブロック許可リスト: セッション接続を許可する1つ以上のアドレス範囲(CIDR表記)
    ・最大セッション存続時間(TTL): 最小値は30分で、180分(3時間)を超えない値を指定

01_Bastion作成03.jpg

3)作成完了

01_Bastion作成04.jpg

● Bastion セッション作成

1) Bastion画面

[セッションの作成]をクリック

    ・セッション・タイプ: [管理対象SSHセッション]を選択 ターゲット・リソースの特定ポートへのSSHトンネルを作成
    ・セッション名: 新規セッションの表示名を入力
    ・次を使用してターゲット・ホストに接続します:
    ・インスタンスの選択: ターゲット・コンピュートのインスタンス名を選択
    ・ポート: ターゲット・リソースで接続するポート番号を入力
    ・SSHキーの追加: セッションに使用するSSHキー・ペアの公開キー・ファイルを指定

02_セッション作成01.png

1) SSHセッション・コマンド取得

セッションの「アクション」メニューで、「SSHコマンドのコピー」をクリック
02_ssh接続03.jpg

2) SSHセッション・コマンドのコピー確認

ssh -i <privateKey> -o ProxyCommand="ssh -i <privateKey> -W %h:%p -p 22 ocid1.bastionsession.oc1.phx.amaaaaaassl65iqapvcqmu3c@host.bastion.ap-tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.0.2

3) SSHセッション・コマンドの編集

テキスト・エディタを使用して、'privateKey'を秘密キーへ置き換えます。

ssh -i ./id_rsa -o ProxyCommand="ssh -i ./id_rsa -W %h:%p -p 22 ocid1.bastionsession.oc1.phx.amaaaaaassl65iqapvcqmu3c@host.bastion.ap-tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.0.2

■ Cloud Shell へ ssh鍵アップロード

1) Cloud Shell画面: ssh鍵アップロード

左端のリスト・アイコンをクリックし、[Upload]をクリック
02_CloudShell-ssh鍵アップロード.jpg

2) File Upload to your Home Directory画面

Bastion接続のための SSH秘密鍵(id_rsa) を添付し、[Upload]をクリック
02_CloudShell-ssh鍵アップロード02.jpg

3)Upload確認

shirok@cloudshell:~ (ap-tokyo-1)$ ls -l
    total 16
    -rw-r--r--. 1 shirok oci  425 Jun  9 05:08 id_rsa

4) SSH秘密鍵パーミッション変更

SSHアクセスできるために SSH秘密鍵(id_rsa)のパーミッションを600へ変更

shirok@cloudshell:~ (ap-tokyo-1)$ chmod 600 id_rsa
shirok@cloudshell:~ (ap-tokyo-1)$ ls -l
    total 16
    -rw-------. 1 shirok oci  425 Jun  9 05:08 id_rsa

■ 接続

Cloud Shell上で Bastionで取得した SSHセッション・コマンドを実行

1) Bastionセッション SSHコマンド実行

Cloud Shell 画面で、Bastionセッション SSHコマンドを実行
CloudShell02.jpg

shirok@cloudshell:~ (ap-tokyo-1)$ ssh -i ./id_rsa -o ProxyCommand="ssh -i ./id_rsa -W %h:%p -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.amaaaaaassl65iqapvcqmu3c@host.bastion.ap-Tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.0.2
FIPS mode initialized
FIPS mode initialized
Use of the Oracle network and applications is intended solely for Oracle's authorized users. The use of these resources by Oracle employees and contractors is subject to company policies, including the Code of Conduct, Acceptable Use Policy and Information Protection Policy; access may be monitored and logged, to the extent permitted by law, in accordance with Oracle policies. Unauthorized use may result in termination of your access, disciplinary action and/or civil and criminal penalties.
Activate the web console with: systemctl enable --now cockpit.socket

Last login: Wed Jun  8 06:31:01 2022 from 10.0.0.59
[opc@tokyo-inst01 ~]$ 

2) コンピュート・インスタンス接続確認

コンピュート・インスタンスへ接続できたことを確認

[opc@tokyo-inst01 ~]$ hostname
 tokyo-inst01

■ 参考

● Sevice情報

クラウド・シェル
Oracle Bastion

● Oracle Cloud Infrastructureドキュメント

クラウド・シェル
クラウド・シェルの使用
要塞ドキュメント
・FAQ: Oracle Cloud Infrastructure Bastion Serviceに関するよくある質問
要塞のトラブルシューティング

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0