はじめに
こんにちは。NTTデータ先端技術の@EumJinmanです。
Oracle Cloud Infrastructure(OCI)では、セキュリティ制御の手段としてNetwork Security Group(NSG)が提供されています。NSGは、仮想クラウドネットワーク(VCN)内のリソースに対して、インバウンド・アウトバウンドのトラフィックを細かく制御できる機能でComputeインスタンスや、Autonomous Database(ADB)などOCIのリソースに直接関連付けることが可能です。
本記事では、Computeインスタンスおよび、ADB に NSG を関連付けた状態から、NSGを解除した場合にどのような動作となるか検証した結果について紹介します。
※本記事で紹介している事象は、2025/8/20に実施した検証で確認した内容になります。今後、OCIメンテナンスにより、事象は解消される可能性があるため、最新情報を必ずご確認ください。
目次
- 概要及び、構成
- 環境情報
- 前提条件
- 現状確認(NSG が関連付けた状態)
4-1. OCI コンソール確認
4-2. クライアント環境から接続確認(Computeインスタンス)
4-3. クライアント環境から接続確認(ADB) - NSG 解除
5-1. Computeインスタンス NSG 解除
5-2. ADW NSG 解除 - NSG 解除後動作確認
6-1. クライアント環境から接続確認(Computeインスタンス)
6-2. クライアント環境から接続確認(ADB) - 原因分析及び、対処策
7-1. 原因分析
7-2. 対処策 - まとめ
1. 概要及び、構成
上記構成図の通り、クライアント環境から ComputeインスタンスとADBへの接続ができるように通信要件を設定したNSG(赤い枠) が各インスタンスに関連付けられている状態です。NSGにはクライアント環境からの接続を許可する制御が設定されており、各インスタンスに関連付けられている NSG を解除するとクライアント環境からの接続ができなくなる想定ですが、実際にどのような動作をするか検証で確認します。
2. 環境情報
クライアント環境
OS:Windows 10
接続ツール:Teraterm 5.2、SQL Developer 24.3.1
OCI環境
リージョン:ap-tokyo-1(アジアパシフィック (東京))
Computeインスタンス情報
イメージ:Oracle-Linux-9.6
シェイプ:VM.Standard.E2.1.Micro
ADB情報
ワークロード・タイプ:Oracle Autonomous Transaction Processing
データベースのバージョン:19c
アクセス・タイプ:プライベート・エンドポイントのみアクセス許可
3. 前提条件
クライアント環境
①SQL Developerがインストールされていること
②シェル・ターミナル・コンソールがセットアップされていること
③Network Load Balancer(NLB)経由でクライアント環境からADBに接続できること
④クライアント環境からComputeインスタンスにSSH接続できること
OCI環境
①Computeインスタンスが作成されていること
②ADBが作成されていること
③Network Load Balancer(NLB)が作成されており、クライアント環境からNLB経由でADBに接続できるイングレスルールが設定されていること(例:ポート1522など)
④パブリックサブネットのセキュリティリストにクライアント環境からComputeインスタンスに接続するための適切なイングレスルールが設定されていること(例:SSHポート22など)
⑤クライアント環境の任意の場所にWalletがダウンロードされていること
4. 現状確認(NSG が関連付けた状態)

上記構成図の通り、各インスタンスにNSGが関連付けられており、クライアント環境から接続できることを確認します。
4-1. OCI コンソール確認
ComputeインスタンスのNSG関連付け状況確認は以下の通り確認します。
OCIコンソールページ左上から「ナビゲーション・メニュー」→「コンピュート」→「インスタンス」順にクリックし、インスタンスページに移動します。
インスタンスページから対象Computeインスタンス名をクリックし、「ネットワーキング」タブから「ネットワーク・セキュリティ・グループ」を確認します。
ADBのNSG関連付け状況確認は以下の通り確認します。
OCIコンソールページ左上から「ナビゲーション・メニュー」→「Oracle Databse」→「Autonomous Database」順にクリックし、Autonomous Databaseページに移動します。
Autonomous Databaseページから対象ADB名をクリックし、「Autonomous Database情報」タブから「ネットワーク・セキュリティ・グループ」を確認します。
4-2. クライアント環境から接続確認(Computeインスタンス)
クライアント環境からComputeインスタンスに接続できることを確認します。
※今回は、接続ツールとしてTera Term 5.2を使用しています。
クライアント環境のデスクトップからTera Termを開き、「Tera Term:新しい接続」画面から以下の情報を入力し「OK」をクリックします。
・ホスト:ComputeインスタンスのパブリックIPアドレス
・サービス:SSH
・TCPポート:22
次、「SSH認証」画面から以下の情報を入力し「OK」をクリックします。
・ユーザ名:opc
・認証方式:RSA/DSA/ECDSA/ED25519鍵を使う
・機密鍵:Audit Vault ServerのSSH機密鍵
※opcユーザは、コンピュートインスタンス作成時にデフォルトで作成される初期管理ユーザーです。
4-3. クライアント環境から接続確認(ADB)
クライアント環境からADBに接続できることを確認します。
※今回は、接続ツールとしてSQL Developer 24.3.1を使用しています。
SQL Developerメイン画面から左上の「+」→「新規データベース接続」をクリックし、データベース接続の作成/選択画面に移動します。
データベース接続の作成/選択画面から以下の情報を入力し、「テスト」をクリックします。
Name:接続名
ユーザー名:admin
パスワード:adminのパスワード
接続タイプ:クラウド・ウォレット
構成ファイル:Walletファイル(.zip)
サービス:接続文字列
※構成ファイルはダウンロード済みのWalletファイルをzipファイルのまま選択します。
※サービスは任意の接続文字列を選択します。(例:<小文字のADB名>_high、<小文字のADB名>_low、<小文字のADB名>_mediumなど)
5. NSG 解除

上記構成図の通り、ComputeインスタンスとADBに関連付けられているNSGを解除します。
5-1. Computeインスタンス NSG 解除
対象のComputeインスタンス詳細ページの「ネットワーキング」タブから「ネットワーク・セキュリティ・グループ」右側のある「編集」をクリックし、ネットワーク・セキュリティ・グループの編集画面に移動します。
ネットワーク・セキュリティ・グループの編集画面から対象NSGの右側にある「×」をクリックし、行を削除した後、「変更の保存」をクリックします。
Computeインスタンスからネットワーク・セキュリティ・グループが解除されたことを確認します。
5-2. ADW NSG 解除
対象のADB詳細ページの「Autonomous Database情報」タブから「ネットワーク・セキュリティ・グループ」右側のある「編集」をクリックし、ネットワーク・セキュリティ・グループの編集画面に移動します。
ネットワーク・アクセス構成の更新画面から対象NSGの右側にある「×」をクリックし、行を削除した後、「保存」をクリックします。
ADBからネットワーク・セキュリティ・グループが解除されたことを確認します。
6. NSG 解除後動作確認
ComputeインスタンスとADBに関連付けられているNSGを解除したのでクライアント環境から接続を許可する通信要件がなくなり、上記構成図の通り接続ができない想定です。実際にどのような動作をするか接続確認をします。
6-1 クライアント環境から接続確認(Computeインスタンス)
「4-2. クライアント環境から接続確認(Computeインスタンス)」で実施した手順と同様の手順でクライアント環境からComputeインスタンスに接続確認をします。
クライアント環境からComputeインスタンスへの接続ができなくなったことを確認できます。
6-2 クライアント環境から接続確認(ADB)
「4-3. クライアント環境から接続確認(ADB)」で実施した手順と同様の手順でクライアント環境からADBへの接続確認をします。
クライアント環境からADBへ接続できることが確認できます。
念のため、テストだけではなく、実際にADBに接続し、show con_name;コマンドで接続しているコンテナの名前を確認します。
※show con_name;コマンドは、現在接続しているコンテナ名(CDB/PDB)を表示するためにOracle Autonomous Database(ATPやADW)で使用されるSQLコマンドです。
接続しているADBが対象のADBであることが確認できます。
NSG 解除後動作確認した結果、Computeインスタンスへの接続は想定通りできなくなりましたが、想定とは異なりADBへ接続できていることが確認できました。
7. 原因分析及び、対処策
7-1. 原因分析
「5-2. ADW NSG 解除」手順で対象ATPからNSGが解除されていることは確認しました。OCI CloudShellから以下OCI CLIコマンドでNSGの関連付け状況を確認しましたが、関連付けられてないことが確認できました。
oci db autonomous-database get --autonomous-database-id <ATPのOCID>
...
...
...
"nsg-ids": null,
...
...
しかし、対象NSGの「VNIC」ダブから現在NSGが追加されているVNIC情報を確認すると対象ATPのプライベートエンドポイントVNICにNSGが追加されていることが確認できます。つまり、OCIコンソールからATPのNSGを解除してもプライベートエンドポイントVNICにNSG設定が残っているため、クライアント環境から接続ができてしまうことになります。
OCI CloudShellから以下OCI CLIコマンドで確認してもプライベートエンドポイントVNICにNSG設定が残っていることが確認できます。
oci network vnic get --vnic-id <vnicId>
...
...
...
"nsg-ids": [
"ocid1.networksecuritygroup.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
],
...
...
7-2. 対処策
対処策として現時点確認できたのは以下2つです。
※いずれか一方を実行することで問題は解消されます。
①Oracleサポートに依頼し、プライベートエンドポイントVNICに関連付けられているNSGを解除してもらう
②通信要件を持たないNSGを対象ATPに関連付けることでプライベートエンドポイントVNICの設定を上書きする
①についてプライベートエンドポイントVNICに関連付けられているNSGを解除するためにOCI CloudShellから以下OCI CLIコマンドを実行しましたが、対象のVNICはプライベートエンドポイントによって管理されており、テナントによって更新することができず、エラーが発生しました。なので、ユーザが直接プライベートエンドポイントVNICのNSGを解除することはできず、サポートに依頼し解除してもらう必要があります。
oci network vnic update --vnic-id <vnicId> --nsg-ids '[]'
...
...
...
"message": "Vnic is managed by ocid1.privateendpoint.oc1.ap-tokyo-1.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx and can not be updated by tenant ocid1.tenancy.oc1..xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
],
...
...
②について通信要件を持たない(セキュリティ・ルールが設定されてない)NSGを新規作成し、対象ATPに関連付けることでプライベートエンドポイントVNICが上書きされ、クライアント環境から接続ができなくなることを確認しました。
通信要件を持たないNSGを作成し、対象ATPに関連付けます。

通信要件を持たないNSGを対象ATPに関連付けた後、SQL Developerから接続確認を実施した結果、接続できなくなったことが確認できました。

8. まとめ
本記事では、Computeインスタンスおよび、ADB に NSG を関連付けた状態から、NSGを解除した場合にどのような動作となるか検証した結果を紹介しました。
各リソースに関連付けられているNSGをOCIコンソールから解除した後は、想定通り動作することの確認と各インスタンスのVNICにNSG設定が残っている可能性があるため、VNIC状況の確認が必要です。
※本記事で紹介している事象は、2025/8/20に実施した検証で確認した内容になります。今後、OCIメンテナンスにより、事象は解消される可能性があるため、最新情報を必ずご確認ください。



















