OCI Bastionサービスでプライベートサブネット内のOracle Analytics Cloudに接続する方法

OAC

初めに

プライベート・サブネットにOracle Analytics Cloud (OAC)を作成した場合、OACへのアクセスはプライベート・エンドポイントを介して行います。VPNを設定しない場合、OCI Bastionサービスを利用すると、踏み台サーバを構築せずにOn-Pのクライアントからプライベート・サブネット内のOACに接続できます。OCI Bastionサービスは無料で利用できます。
Connect to OAC in a private subnet via OCI Bastion service

検証環境
OAC アクセス・タイプ:プライベート
OAC エディション:Professional(Enterpriseにも適用する)
クライアントOS:Windows 11
SSHソフト:OpenSSH

1. 事前準備

OACのアクセス情報を確認
「インスタンスの詳細」から、アクセスURLをコピーし、メモしておきます。
Copy OAC URL

「追加詳細」から、ホスト名IPアドレスをコピーし、メモしておきます。
Copy OAC hostname and IP address

2. Bastionの作成

アイデンティティとセキュリティ → 要塞 → 要塞の作成

項目内容
Bastion名適当な名前を入力
ターゲットVCNとサブネットOACが所属するVCNとサブネットを選択
CIDRブロック許可リストこのテストではCIDRブロックの許可リストを「0.0.0.0/0」に設定しているが、運用時には範囲を絞り込むことが推奨される。例えば、 接続元(クライアント)のIPアドレスのみを許可するように。
Create an OCI Bastion
  • このテストでは、CIDRブロックの許可リストを「0.0.0.0/0」に設定しています。運用時には範囲を絞り込むことが推奨されます。例えば、接続元(クライアント)のIPアドレス範囲のみを許可するのが良いでしょう。
  • OCI Bastionを作成する際には、ターゲットのVCNとサブネットを指定する必要がありますが、Bastion自体に対しては、置き場所の指定は不要です。

Bastionはアクティブの状態になりましたら、「プライベート・エンドポイントIP」は以下の画面から確認できます。このIPが、ターゲット・サブネット内で自動割り当てられます。次のステップでこのIPをNSGの入力ルールに追加します。 「CIDRブロック許可リスト」を編集したい場合は、「編集」ボタンをクリックすればOKです。
Check private endpoint IP address

3. セッションの作成

要塞 → セッション → セッションの作成

項目内容
セッション・タイプ"SSHポート転送セッション"を選択
ターゲット・ホストに接続する方法"IPアドレス"を選択 (デフォルト)
IPアドレスOACの「IPアドレス」
ポート443
SSHキー既存のキーファイルを利用するか、新しいキーペアを作成する。
Create a bastion session

セッションはアクティブの状態になりましたら、次のように、3ドットのメニューをクリックしてSSHコマンドをコピーします。このコマンドは、「STEP 6. SSHトンネルの作成」で使用されます。
Copy SSH command
デフォルトでは、セッションは3時間有効ですが、Bastionを作成する際にはこの期間を変更することが可能です。

4. NSGにイングレス・ルールを追加する

OACにアクセスするためには、Bastionのプライベート・エンドポイントからのイングレス(TCPポート433)を許可する必要があります。

ネットワーク・セキュリティ・グループ(NSG)を作成する:
Create a NSG
※、"ソースCIDR"は、Bastionの「プライベート・エンドポイントIP」です(Bastionの情報画面に表示されます)。

OACインスタンスのアクセス制御を編集する:
Edit access control

Select NSG and save

5. ホストファイルの編集

接続クライアントに、次のファイルを編集します。

ファイル名
Windows OS: C:\Windows\System32\drivers\etc\hosts
Linux OS: /etc/hosts

追加内容: 127.0.0.1 <OAC_hostname>
例:127.0.0.1 oacprivate-nrjlzaw7invm-nt.analytics.ocp.oraclecloud.com
※、ホスト名の後ろは/ui/が要らない。

6. SSHトンネルの作成

クライアント側でSSHコマンドを実行してトンネルを作成します。この例では、OpenSSHを利用します。まだインストールされていない場合、管理者ユーザーでPowerShellを起動して、以下のコマンドでインストールしてください。
コマンド:Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

SSHトンネルを作成するコマンド: (STEP-3でコピーしたSSHコマンド)

ssh -i <privateKey> -N -L <localPort>:<Private_IP_of_OAC>:443 -p 22 <BastionSession_OCID>@host.bastion.ap-tokyo-1.oci.oraclecloud.com
  • <privateKey>を秘密キーのパスとファイル名に置き換える。
     Windowsの例(PowerShell):$home\.ssh\id_rsa
  • <localPort>443に置き換える。
  • <Private_IP_of_OAC>は自動に実のIPが埋められるので、変更する必要がない。

PowerShllのコマンド例:

PS C:\Users\opc> ssh -i $home\.ssh\id_rsa -N -L 443:10.0.0.68:443 -p 22 <BastionSession_OCID>@host.bastion.ap-tokyo-1.oci.oraclecloud.com

※、接続成功の場合、コマンドプロンプトを返さない。

7. OACに接続する

クライアントのWebブラウザを開き、OACのURLを入力します。
URLの例: https://oacprivate-nrjlzaw7invm-nt.analytics.ocp.oraclecloud.com/ui/
※、インスタンスの詳細画面からコピーできる(/ui/がある)。

OCIアカウントのログイン画面が表示されたら、ユーザーとパスワードを入力して、ログインします。
Oracle Cloud Account Sign In

ログインした後、OACの初期画面が表示されます。
OAC console

付録

トラブル・シューティング

OACへの接続が失敗した場合、以下の原因は一般的です:

  • OACインスタンスは、まだ起動していない。
  • TCP 443ポートは、イングレス・ルールに追加されていない。
  • SSHトンネルは未作成か、作成が失敗した。
    トンネル作成失敗、或いはタイムアウトの時、以下のメッセージが表示される。
    Connection to host.bastion.ap-tokyo-1.oci.oraclecloud.com closed by remote host.
  • Bastionのセッション期限が切れた(デフォルトは3時間)。
  • セッション期限が切れた後、SSHトンネルを作成しようとしたら、以下のエラーが発生する。
    <BastionSession_OCID>@host.bastion.ap-tokyo-1.oci.oraclecloud.com: Permission denied (publickey)
    対策:セッションを再作成する。

Bastionの制限

項目内容
最大Bastion数テナンシ毎に5つ
最大セッション数Bastionあたり20セッション
セッション存続時間30分~3時間
データ転送制限データ転送の制限はありません。
ただし、SSH接続あたりの接続速度は16 Mbpsに制限されます。

以上

タイトルとURLをコピーしました