16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Oracle Cloud] Bastionサービスを使ってみた (2021/05/31)

Posted at

パブリック・エンドポイントを持たないターゲット・リソースへの制限付きおよび時間制限付きのアクセスを提供するBastionサービスを使って、プライベートサブネットにあるOracle LinuxインスタンスへのSSH接続とWindowsインスタンスへのリモートデスクトップ(RDP)接続してみた。

実施した構成

image.png

事前準備

  • OCI チュートリアルを参考に

    • VCN/Public Subnet,Private Subnet/Service Gateway/ルート表/Security Listのネットワークリソースを作成

      • Service Gatewayのサービス:「All Services in Oracle Services Network」
      • ルート表:作成したService Gatewayへのルート・ルール
    • Seculity List:ソースPublic Subnet CIDR、宛先 TCP:3389ポートのイグレスルール

    • Seculity List:ソースPublic Subnet CIDR、宛先 TCP:22ポートのイグレスルール

    • Private SubnectにComputeインスタンスを作成

      • Oracle Linuxのインスタンス
      • Windows Serverのインスタンス
  • IAMポリシーの作成

    • Bastionサービスを使用するために必要な権限
    • Bastion、セッション、ネットワークの管理
    • ComputeインスタンスのRead
    • Computeインスタンス エージェント プラグインのRead
    • Work-Requestのinspect

ポリシーの例

Allow group SecurityAdmins to manage bastion in tenancy
Allow group SecurityAdmins to manage bastion-session in tenancy
Allow group SecurityAdmins to manage virtual-network-family in tenancy
Allow group SecurityAdmins to read instance-family in tenancy
Allow group SecurityAdmins to read instance-agent-plugins in tenancy
Allow group SecurityAdmins to inspect work-requests in tenancy

Bastionの作成

Identity & Security > Bastion から Bastion(要塞)の作成をクリック
image.png

名前、配置VCN・Public Subnet、CIDRブロック許可リスト(アクセス元)を入力
image.png

管理対象SSHセッションの作成

作成したBastionにセッションを作成
image.png

  • セッション・タイプ:管理対象SSHセッション
  • セッション名:名前
  • ユーザ名:ssh接続ユーザ名(Oracle提供Oracle Linuxイメージの場合「opc」)
  • コンピュート・インスタンス:接続対象インスタンス
  • SSHキーの追加:SSH公開キーの入力

image.png

SSHポート転送セッションの作成

作成したBastionにセッションを作成

  • セッション・タイプ:SSHポート転送セッション
  • セッション名:名前
  • 次を使用してターゲット・ホストに接続します:インスタンス名
  • コンピュート・インスタンス:接続対象インスタンス(Windows Serverインスタンス)
  • ポート:3389
  • SSHキーの追加:SSH公開キーの入力

image.png

管理対象SSHセッションへの接続

接続対象のセッションのメニューから「SSHコマンドのコピー」を選択
image.png

テキスト エディタを使用して、セッションの作成時に指定した SSH キー ペアの秘密キーへのパスでを置換

更新前例

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

更新前後

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

コマンド ラインを使用して、カスタマイズされた SSH コマンドを発行

>  ssh -i id_rsa -o ProxyCommand="ssh -i id_rsa -W %h:%p -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.aaaaaa@host.bastion.ap-tokyo-1.oci.oraclecloud.com" -p 22 opc@10.0.1.2
The authenticity of host 'host.bastion.ap-tokyo-1.oci.oraclecloud.com (147.154.235.219)' can't be established.
RSA key fingerprint is SHA256:AAAAAAAAAAAA.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Warning: Permanently added 'host.bastion.ap-tokyo-1.oci.oraclecloud.com,147.154.235.219' (RSA) to the list of known hosts.
The authenticity of host '10.0.1.2 (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:AAAAAAAAAAAA.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.0.1.2' (ECDSA) to the list of known hosts.
[opc@OracleLinux01 ~]$

SSHポート転送SSHセッションを使用してWindowsインスタンスにRDP接続

接続対象のセッションのメニューから「SSHコマンドのコピー」を選択
image.png

テキスト エディタを使用して、セッションの作成時に指定した SSH キー ペアの秘密キーへのパスでを置換、を置換

更新前例

ssh -i <privateKey> -N -L <localPort>:10.0.1.3:3389 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.aaaaaa@host.bastion.ap-tokyo-1.oci.oraclecloud.com

更新前後

ssh -i id_rsa -N -L 3399:10.0.1.3:3389 -p 22 ocid1.bastionsession.oc1.ap-tokyo-1.aaaaaa@host.bastion.ap-tokyo-1.oci.oraclecloud.com

コマンド ラインを使用して、カスタマイズされた SSH コマンドを発行

> ssh -i id_rsa -v -N -L 3399:10.0.1.124:3389 -p 22 ocid1.bastionsession.oc1.ap-london-1.aaaaaa@host.bastion.ap-tokyo-1.oci.oraclecloud.com
OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
debug1: Connecting to host.bastion.uk-london-1.oci.oraclecloud.com [147.154.235.219] port 22.
debug1: Connection established.

<略>

debug1: pledge: network

ターミナルを閉じないでください。
詳細出力 ( -v)を有効にした場合、接続が成功した後の最終メッセージは次のとおりです。
debug1: pledge: network

localhost: でリモートデスクトップ接続を開始

image.png

ポート転送の例

ATPへの接続
Oracle SQL Developer などのデータベース クライアントを起動し、localhost:127.0.0.1: に接続
データベース上の既存のユーザーの名前とパスワードを入力します。

MYSQLデータベースへの接続
MySQL Workbench などのデータベース クライアントを起動し、localhost:127.0.0.1: に接続
データベース上の既存のユーザーの名前とパスワードを入力します。

おわりに

Bastionサービスを使い、Public IPアドレスを持たないインスタンスに接続することができた
( Internet Gateway も不要 )

参考

16
3
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
16
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?