初めに
この記事は、OCI Bastion サービスシリーズ記事の1つです。
プライベート・サブネットにOracle Analytics Cloud (OAC)を作成した場合、OACへのアクセスはプライベート・エンドポイントを介して行います。VPNを設定しない場合、OCI Bastionサービスを利用すると、踏み台サーバを構築せずにOn-Pのクライアントからプライベート・サブネット内のOACに接続できます。OCI Bastionサービスは無料で利用できます。
検証環境
OAC アクセス・タイプ:プライベート
OAC エディション:Professional(Enterpriseにも適用する)
クライアントOS:Windows 11
SSHソフト:OpenSSH
ステップ
1. 事前準備
OACのアクセス情報を確認
「インスタンスの詳細」から、アクセスURLをコピーし、メモしておきます。
「追加詳細」から、ホスト名とIPアドレスをコピーし、メモしておきます。
2. Bastionの作成
アイデンティティとセキュリティ > 要塞 > 要塞の作成
項目 | 内容 |
---|---|
要塞名 | 適当な名前を入力 |
ターゲットVCNとサブネット | OACが所属するVCNとサブネットを選択 |
CIDRブロック許可リスト | このテストではCIDRブロックの許可リストを「0.0.0.0/0」に設定しているが、運用時には範囲を絞り込むことが推奨される。例えば、 接続元(クライアント)のIPアドレスのみを許可するように。 |
注意
OCI Bastionを作成する際には、ターゲットのVCNとサブネットを指定する必要がありますが、Bastion自体に対しては、置き場所の指定は不要です。
Bastionはアクティブの状態になりましたら、「プライベート・エンドポイントIP」は以下の画面から確認できます。このIPが、ターゲット・サブネット内で自動割り当てられます。次のステップでこのIPをNSGの入力ルールに追加します。 「CIDRブロック許可リスト」を編集したい場合は、「編集」ボタンをクリックすればOKです。
3. セッションの作成
要塞 > セッション > セッションの作成
項目 | 内容 |
---|---|
セッション・タイプ | "SSHポート転送セッション"を選択 |
ターゲット・ホストに接続する方法 | "IPアドレス"を選択 (デフォルト) |
IPアドレス | OACの「IPアドレス」 |
ポート | 443 |
SSHキー | 既存のキーファイルを利用するか、新しいキーペアを作成する。 |
セッションはアクティブの状態になりましたら、次のように、3ドットのメニューをクリックしてSSHコマンドをコピーします。このコマンドは、「STEP 6. SSHトンネルの作成」で使用されます。
デフォルトでは、セッションは3時間有効ですが、Bastionを作成する際にはこの期間を変更することが可能です。
4. NSGにイングレス・ルールを追加する
OACにアクセスするためには、Bastionのプライベート・エンドポイントからのイングレス(TCPポート433)を許可する必要があります。
ネットワーク・セキュリティ・グループ(NSG)を作成する:
※、"ソースCIDR"は、Bastionの「プライベート・エンドポイントIP」です(Bastionの情報画面に表示されます)。
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への接続が失敗した場合、以下の原因は一般的です。ご参考ください。
- 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に制限されます。 |
以上です。
関連記事
オラクル・クラウドの個人ブログ一覧