LoginSignup
0
1

OCI Bastion経由でプライベート・サブネット内のOracle Analytics Cloudに接続

Last updated at Posted at 2023-12-15

初めに
冒頭ですが、この記事は次のシリーズ記事の1つです。
OCI Bastion サービス

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

検証環境

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

ステップ

1. 事前準備

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

「追加詳細」から、ホスト名IPアドレスをコピーし、メモしておきます。
image.png

2. Bastionの作成

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

項目 内容
要塞名 適当な名前を入力
ターゲットVCNとサブネット OACが所属するVCNとサブネットを選択
CIDRブロック許可リスト このテストではCIDRブロックの許可リストを「0.0.0.0/0」に設定しているが、運用時には範囲を絞り込むことが推奨される。例えば、 接続元(クライアント)のIPアドレスのみを許可するように。

注意
OCI Bastionを作成する際には、ターゲットのVCNとサブネットを指定する必要がありますが、Bastion自体に対しては、置き場所の指定は不要です。

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

3. セッションの作成

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

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

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

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

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

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

OACインスタンスのアクセス制御を編集する:
image.png

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トンネルを作成するコマンド:

ssh -i <privateKey> -N -L <localPort>:<Private_IP_of_OAC>:443 -p 22 <bastion_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 <bastion_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アカウントのログイン画面が表示されたら、ユーザーとパスワードを入力して、ログインします。

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

付録

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

OACへの接続が失敗した場合、以下の原因は一般的です。ご参考ください。

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

Bastionの制限

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

以上です。

関連記事
オラクル・クラウドの個人シリーズ・ブログ

0
1
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
0
1