-
タグ
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR
2024年9月10日、Oracle Cloud Infrastructure(以下、OCI)にて新しいネットワークセキュリティサービスであるOCI Zero Trust Packet Routingサービスが発表されました。多くの場面でクラウドを利用することが一般的となった現代、企業のネットワークはより複雑になり、それに伴ってセキュリティリスクもますます大きくなっています。
こうした状況に対し、新たなアプローチとして登場したのがZero Trust Packet Routingです。本記事ではZero Trust Packet Routing(以下、ZPR)の概要およびOCI ZPRサービスの使用方法を紹介します。
Zero Trust Packet Routingとは
最初に、そもそもZPRとは何なのかについて、その概要を説明します。
複雑化するネットワーク
企業のITインフラは急速に変化、拡大しており、特に近年ではクラウドサービスの利用、リモートワークの増加やモバイルデバイスの普及によりそのネットワーク構成は一層複雑化しています。
ファイアウォールによるアクセス制御やルーティングといった従来のネットワークセキュリティ設定はネットワーク構成と密接に結びついており、ネットワークが複雑化するほど誤設定を誘発し、それに加えてセキュリティ設定が適切かどうかを確認することが困難になります。実際、外部に公開しているサービスのアクセス設定ミスによる情報漏洩事案を耳にしたことがある方も多いのではないでしょうか。
ZPR概要:次世代のネットワークセキュリティ
このような背景からApplied Invention社およびその他の企業とOracleが共同で考案した新しいセキュリティモデルがZPRです。
ZPRでは通信(パケット)の送信者、受信者それぞれに役割や所属などの情報が紐づけられます。この紐づけられた情報を属性(attribute)とよび、属性に基づいてポリシーを記述し、ネットワークレベルでセキュリティルールを強制します。
以下にZPRの特徴を紹介します。
ネットワーク構成とセキュリティ設定の分離
従来のネットワークセキュリティでは、IPアドレスやプロトコル、ポート番号をもとにルーティングやアクセス制御を行います。ネットワーク構成とセキュリティが深く結びついているため、ネットワーク構成が複雑化するほどセキュリティの設定も複雑になっていきます。
一方ZPRでは、上述の属性をもとにどの送信者と受信者の間での通信を許可するかを指定するため、セキュリティ設定がネットワークから分離され、ネットワーク構成が変更されても一貫したセキュリティの適用を実現できます。
インテントベースのセキュリティ・ポリシー
インテント(intent)とは日本語で意図、目的といった意味で、ZPRでは自然言語を用いて人間が読むことのできる形でセキュリティ・ポリシーを記述します。これによりセキュリティ管理者の意図に沿った制御が容易になり、管理の効率化や設定ミスの低減を実現するほか、監査等においてセキュリティ・ポリシーがコンプライアンスに準拠しているかどうかを判断しやすくなります。
OCI ZPRサービス
OCIのZero Trust Packet RoutingサービスはZPRをOCI上で実装したサービスです。VCNおよびコンピュートやデータベースといったリソースにセキュリティ属性を設定し、対応する属性値に基づいてポリシーを記述することでアクセス制御を行います。2025年1月時点では以下のようなリソースがZPRに対応しています(詳細は公式ドキュメント※をご確認ください)。
※ Zero Trust Packet Routingの概要
- コンピュート
- Oracle Database
- ネットワーキング(VCN、VNIC、Private Endpoint)
- ネットワーク・ロード・バランサ
ZPRポリシーは既存の仮想ファイアウォール機能であるセキュリティ・リスト、NSGと共存する形で設定されます。つまり、あるリソースにセキュリティ属性を付加し、ZPRによる保護を有効にした場合、そのリソースにアクセスするためにはセキュリティ・リストまたはNSGとZPRポリシーの両方でアクセスを許可する必要があります。なお、OCI ZPRサービスはほかの多くのセキュリティ機能と同様に無償で利用できます。
OCI ZPRサービスの使い方
ここからはOCI ZPRサービスの設定方法を説明していきます。以下の流れに従ってZPRサービスを有効化し、設定します。
- ZPRの有効化
- セキュリティ属性ネームスペースの作成
- セキュリティ属性の作成
- ZPRポリシーの作成
- リソースへのセキュリティ属性の適用
ZPRの有効化
初めにOCI ZPRを有効化します。
IAMポリシーの設定
管理者グループに所属していないユーザを使用する場合は、対象のユーザが所属するグループにポリシーを設定する必要があります。ZPRの使用に際して設定が必要なIAMポリシーは以下の通りです。
Allow group <グループ名> to manage zpr-configuration in tenancy Allow group <グループ名> to manage security-attribute-namespace in tenancy Allow group <グループ名> to manage zpr-policy in tenancy
特にzpr-configurationとzpr-policyはテナントに対する権限が必要となります。
ZPR有効化
OCIコンソールのナビゲーション・メニューから「アイデンティティとセキュリティ」>「Zero Trust Packet Routing」>「概要」を選択します。概要画面で「ZPRの有効化」をクリックし、その後の画面でさらに「ZPRの有効化」をクリックします。
有効化が完了すると左側のリストに「ポリシー」、「セキュリティ属性ネームスペース」、「保護されたリソース」が表示されます。

セキュリティ属性ネームスペースとセキュリティ属性の作成
続いてセキュリティ属性ネームスペースとセキュリティ属性を作成します。OCI ZPRでは保護対象リソースにセキュリティ属性を適用し、対応する属性値に基づいてアクセス制御を行います。セキュリティ属性ネームスペースは複数のセキュリティ属性をグルーピングする論理的なコンテナです。
前提として今回は以下のような構成のネットワークを対象にZPRの動作を検証します。
リソース | 名前 | 備考 |
---|---|---|
VCN | TEST_VCN | 2つのパブリック・サブネットを作成 |
コンピュート | App1 | Oracle Instant Clientを導入 |
コンピュート | App2 | Oracle Instant Clientを導入 |
コンピュート | Bastion | |
BaseDB | ORCL |

また、セキュリティ・リストを使用して以下のように各サーバ間での通信を許可しています。
対象サブネット | 送信元 | プロトコル/ポート | 備考 |
---|---|---|---|
APP_PUB_SUB (10.0.0.0/24) |
自端末グローバルIP | TCP/22 | 自端末からのSSH接続を許可 |
10.0.0.0/24 | TCP/22 | サブネット内でのSSH接続を許可 | |
DB_PUB_SUB (10.0.1.0/24) |
自端末グローバルIP | TCP/22 | 自端末からのSSH接続を許可 |
10.0.0.0/24 | TCP/22 | APP_PUB_SUBからのSSH接続を許可 | |
10.0.0.0/24 | TCP/1521 | APP_PUB_SUBからのDBへの接続を許可 |
セキュリティ属性ネームスペースの作成
ZPRのトップ画面左のリストから「セキュリティ属性ネームスペース」を選択し、「セキュリティ属性ネームスペースの作成」をクリックします。必要事項を入力して、「セキュリティ属性ネームスペースの作成」をクリックすることでセキュリティ属性ネームスペースが作成されます。なお、セキュリティ属性ネームスペース名はテナントで一意である必要があります。
コンパートメント用に作成 | セキュリティ属性ネームスペースを作成するコンパートメントを指定 |
---|---|
名前 | セキュリティ属性ネームスペース名を指定 |
説明 | 作成するセキュリティ属性ネームスペースの説明を入力 |

今回は以下の3つのセキュリティ属性ネームスペースを作成しました。
セキュリティ属性ネームスペース名 | 説明 |
---|---|
Networks | VCN用ネームスペース |
Servers | コンピュート用ネームスペース |
Database | データベース用ネームスペース |
セキュリティ属性の作成
次に各ネームスペースにセキュリティ属性を作成します。セキュリティ属性ネームスペースのリストから対象のネームスペース名をクリックして詳細画面を開き、「セキュリティ属性の作成」をクリックします。必要事項を入力して、「作成」をクリックすることでセキュリティ属性が作成されます。
名前 | セキュリティ属性名を指定 |
---|---|
説明 | 作成するセキュリティ属性の説明を記入 |
セキュリティ属性値タイプ |
|
値 | 属性値タイプで「値のリスト」を選択した場合、属性値のリストを改行区切りで入力する |

今回は各セキュリティ属性ネームスペースに以下のセキュリティ属性を作成しました。
セキュリティ属性ネームスペース | セキュリティ属性 | 属性値タイプ | 値のリスト |
---|---|---|---|
Networks | VCN1 | 静的 | - |
Servers | App | 値のリスト | App1 App2 |
Bastion | 値のリスト | Bastion1 | |
Database | Sensitivity | 値のリスト | High Low |
ZPRポリシーの作成
続いてZPRポリシーを作成します。ポリシーには複数のポリシー・ステートメントを含めることができ、各ポリシー・ステートメントによってアクセス制御を行います。ポリシー・ステートメントはセキュリティ属性に基づいてZero Trust Packet Routing Language(ZPL)を使用して記述しますが、基本的にはどこからどこへのアクセスを許可するかを英語で記述する形になります。
ポリシー構文
ポリシー・ステートメントは以下の構文に従い記述します。
in <VCNの属性> VCN allow <接続元属性> endpoints to connect to <接続先属性> endpoints
このポリシーにより<VCNの属性>が適用されたVCN内で、<接続元属性>が適用されたリソースから、<接続先属性>が適用されたリソースへの通信が許可されます。
より詳細な記述方法は以下の通りです。
- 各属性は[<セキュリティ属性ネームスペース>].<セキュリティ属性>:<属性値>の形で記述する。なお、属性値はリソースにセキュリティ属性を適用する際に指定する
- ネームスペースは省略可能で、省略した場合はZPR有効化時にルート・コンパートメントにデフォルトで作成される「oracle-zpr」ネームスペースに設定される
- VCN外のリソースを指定する場合はIPアドレスをCIDR形式で記述する。この際「endpoints」は記載しない
また、条件を指定しない場合、すべてのプロトコル、ポートに対してアクセスが許可されます。これらの条件を指定する場合はwith句を使用します。詳しくは公式ドキュメント※や以下のポリシー作成例をご確認ください。
※ ポリシー構文|Oracle Cloud Infrastructureドキュメント
ポリシーの作成
実際にポリシーを作成します。今回は以下のようなアクセス制御を実現するポリシーを作成することとします。
- 「Bastion」インスタンスのみ、自端末からのSSH接続を許可
- 「Bastion」インスタンスからは他のコンピュート・インスタンスおよびBaseDBへのSSH接続を許可
- 「App1」インスタンスからのみデータベースへの接続を許可
また、各リソースには以下のようなセキュリティ属性および属性値を設定する想定です。

ナビゲーション・メニューから「アイデンティティとセキュリティ」>「Zero Trust Packet Routing」>「ポリシー」を選択します。「ポリシーの作成」をクリックしてポリシー作成画面を表示します。「名前」と「説明」を入力したら「ポリシー・ステートメントの追加」からポリシー・ステートメントを作成できます。

ポリシー・ステートメントは一から自分で記述することもできますが、ステートメントの作成を補助するために「ポリシー・テンプレート・ビルダー」や「簡易ポリシー・ビルダー」が用意されています。「ポリシー・テンプレート・ビルダー」ではSSH接続の許可やDBへの接続など一般的なシナリオに基づいたポリシー・ステートメントのテンプレートが自動入力されるため、テンプレートをもとにステートメントを記述することができます。

今回は以下のポリシーを作成しました。
- ZPR_SSH_POLICY
各サーバへのSSH接続を許可するポリシー・ステートメントを構成in Networks.VCN1:test-nw VCN allow '<自端末グローバルIP>' to connect to Servers.Bastion:Bastion1 endpoints with protocol='tcp/22' in Networks.VCN1:test-nw VCN allow Servers.Bastion:Bastion1 endpoints to connect to Servers.App:App1 endpoints with protocol='tcp/22' in Networks.VCN1:test-nw VCN allow Servers.Bastion:Bastion1 endpoints to connect to Servers.App:App2 endpoints with protocol='tcp/22' in Networks.VCN1:test-nw VCN allow Servers.Bastion:Bastion1 endpoints to connect to Database.Sensitivity:High endpoints with protocol='tcp/22'
with句を使用してアクセスを許可するプロトコルをSSH(tcp/22)に限定しています。また、自端末からBastionサーバへのSSHを許可するために、接続元を'<グローバルIP>'の形で指定しています。 - ZPR_DB_POLICY
App1からDBへの接続と、DBからOracle Service Networkへの接続を許可するポリシー・ステートメントを構成in Networks.VCN1:test-nw VCN allow Servers.App:App1 endpoints to connect to Database.Sensitivity:High endpoints with protocol='tcp/1521' in Networks.VCN1:test-nw VCN allow Database.Sensitivity:High endpoints to connect to 'osn-services-ip-addresses'
BaseDBでは利用の前提としてDBシステムがOSNへ接続可能である必要があります。OSNを接続元または接続先として指定する際は'osn-services-ip-addresses'と指定します。


なお、接続はステートフルとして許可されるため、戻りの通信を許可するステートメントを明示的に構成する必要はありません。ステートレスとしてアクセスを許可したい場合はwith句においてconnection-state = 'stateless'を指定します。
リソースへのセキュリティ属性の適用
ポリシーを作成したら保護対象リソースにセキュリティ属性を適用することで、ポリシーによるアクセス制御が実施されるようになります。セキュリティ属性を適用する必要があるリソースは、ZPRによる保護対象が存在するVCNおよび保護対象のリソース自身となります。
ZPRページの「保護されたリソース」や、各リソースの詳細ページからセキュリティ属性を適用することができるため、今回は各リソースの詳細ページから適用しました。


セキュリティ属性適用時にはセキュリティ属性ネームスペースとセキュリティ属性(設定画面上の項目名は「キー」となっています)を選択して、さらに属性値を指定する必要があります。セキュリティ属性作成時に属性値タイプを「静的」とした場合は、ここで属性値を直接入力します。

属性タイプを「値リスト」とした場合は、あらかじめ指定した値から属性値を選択する形になります。

作成したポリシーに合わせて以下のようにセキュリティ属性を適用しました。
リソース | 名前 | セキュリティ属性ネームスペース | セキュリティ属性 | 属性値 |
---|---|---|---|---|
VCN | TEST_VCN | Networks | VCN1 | test-nw |
コンピュート | App1 | Servers | App | App1 |
コンピュート | App2 | Servers | App | App2 |
コンピュート | Bastion | Servers | Bastion | Bastion1 |
BaseDB | ORCL | Database | Sensitivity | High |
リソース | 名前 | セキュリティ属性 ネームスペース |
セキュリティ属性 | 属性値 |
---|---|---|---|---|
VCN | TEST_VCN | Networks | VCN1 | test-nw |
コンピュート | App1 | Servers | App | App1 |
コンピュート | App2 | Servers | App | App2 |
コンピュート | Bastion | Servers | Bastion | Bastion1 |
BaseDB | ORCL | Database | Sensitivity | High |
ZPRページの「保護されたリソース」からセキュリティ属性を適用したリソースの一覧を確認できます。

接続の検証
最後に接続の検証を実施しました。各リソースにセキュリティ属性を適用するまでは、セキュリティ・リストによってのみリソースへのアクセスが制御されるため、セキュリティ・リストで許可した範囲において自端末や各サーバ間で自由に通信が可能でした。
セキュリティ属性適用後は以下のようにアクセスが制御されました。
SSH接続
自端末からは踏み台に見立てたコンピュート(Bastion)にのみSSH接続ができ、その他のサーバにはアクセスできなくなりました。またコンピュート間のSSH接続においても、Bastionからのみ各コンピュートにアクセスできるようになりました。

#Bastion→DB (SSH) [opc@bastion ~]$ ssh -i db.key opc@10.0.1.174 Last login: Mon Jan 6 10:48:23 2025 from 10.0.0.79 [opc@orcl ~]$
#App1→DB (SSH) [opc@bastion ~]$ ssh -i app.key opc@10.0.0.14 Activate the web console with: systemctl enable --now cockpit.socket Last login: Mon Jan 6 01:48:45 2025 from 10.0.0.79 [opc@app1 ~]$ [opc@app1 ~]$ ssh -i db.key opc@10.0.1.174 ssh: connect to host 10.0.1.174 port 22: Connection timed out
DB接続
DBへの接続はApp1からのみ可能でApp2からは接続できなくなりました。

#App1 [opc@app1 ~]$ sqlplus system@ORCL SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Thu Jan 9 13:22:09 2025 Version 23.6.0.24.10 Copyright (c) 1982, 2024, Oracle. All rights reserved. Enter password: Last Successful login time: Mon Jan 06 2025 02:04:00 +00:00 Connected to: Oracle Database 23ai Standard Edition 2 Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems Version 23.6.0.24.10 SQL>
#App2 [opc@app2 ~]$ sqlplus system@ORCL SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Mon Jan 6 02:05:49 2025 Version 23.6.0.24.10 Copyright (c) 1982, 2024, Oracle. All rights reserved. Enter password: ERROR: ORA-12170: Cannot connect. TCP connect timeout of 20s for host 10.0.1.174 port
上記の通り、セキュリティ・リストで許可されていてもZPRポリシーで許可されていないアクセスはブロックされることが確認できました。
アクセス制御有効化のタイミングと保護対象について
ZPRによるアクセス制御はリソースにセキュリティ属性を適用するとすぐに有効化されます。そのためセキュリティ属性適用時にポリシーが作成されていない場合、対象リソースへのすべてのアクセスがブロックされるため注意が必要です。
また、セキュリティ属性が適用されたリソースだけがZPRポリシーに基づいて保護されます。つまり、VCNにセキュリティ属性が適用されているかどうかにかかわらず、セキュリティ属性が適用されていないリソースについてはZPRの保護対象とならず、セキュリティ・リストまたはNSGによってのみアクセスが制御されます。逆にセキュリティ属性を適用するとZPRの保護対象となるため、この状態でVCNのセキュリティ属性やZPRポリシーを削除するとそのリソースにはアクセスできなくなります。
保護対象リソースへの セキュリティ属性の適用 |
VCNへのセキュリティ属性の適用 およびZPRポリシーの構成 |
セキュリティ・リスト またはNSGの設定 |
リソースへのアクセス |
---|---|---|---|
適用する | 構成する | 設定する | 許可 |
適用する | 構成する | 設定しない | ブロック |
適用する | 構成しない | 設定する | ブロック |
適用しない | 構成する/構成しない | 設定する | 許可 |
サービスを使用してみて
OCI ZPRサービスを実際に試してみて、ネットワーク構成を意識せずにセキュリティを設定できるという新しいアプローチを実感することができました。この特徴は、従来のネットワークセキュリティとは一線を画するものであり、非常に興味深い体験でした。
一方で、リリースされて間もないこともあり、現時点では機能が十分とは言えず、セキュリティ・リストやNSGとの大きな差別化はできていない印象です。
今後の機能拡張に期待される点として、例えば、IAMとの連携や対応リソースの拡張(Object Storage、Function、コンテナなど)が挙げられ、これらが実現することで利用シーンが大きく広がると感じました。また、アクセスログの収集や分析といったLoggingサービスとの連携も、セキュリティ監視の観点で重要な機能になるでしょう。
さらに、より高度なポリシー記述が可能になることにも期待しています。Applied InventionによるZPRの概要説明※では、以下のような柔軟な制御が可能であるとされています。
- 場所や人によるアクセス制御
- 時間帯による制御
- 1日当たりのデータ量による制御
これらの機能がOCI ZPRサービスに実装されれば、ネットワークセキュリティの新しい基準としての可能性がさらに広がるでしょう。また現時点では、VCN外のリソースに対しては依然としてIPアドレスを使用したポリシーの記述が必要です。マルチクラウドやハイブリッドクラウドが普及してきている現状において、セキュリティのネットワーク構成からの真の分離を目指すのであればこの点にどう対応していくかも重要だと考えます。
現段階ではまだ発展途上のサービスではありますが、そのポテンシャルは非常に高く、今後のアップデートに大いに期待しています。
おわりに
ZPRは、新しいネットワークセキュリティの形を提案する画期的な取り組みです。一方で、OCI ZPRサービスはまだ発展の途上にあり、これからの機能強化や拡張が期待されます。今後のサービスの進展に伴い、新たな情報があれば引き続きお知らせしていきます。
ラックではOCIだけでなく、AWS、Azure、Google Cloudにも対応しており、お客様のシステム環境の課題に合わせた最適な提案をします。マルチクラウドやハイブリッドクラウドも含めたシステム構成に関するお悩みがございましたら、ぜひラックまでお問い合わせください。
タグ
- セキュリティ
- 人材開発・教育
- システム開発
- アプリ開発
- モバイルアプリ
- DX
- AI
- サイバー攻撃
- サイバー犯罪
- 標的型攻撃
- 脆弱性
- 働き方改革
- 企業市民活動
- 攻撃者グループ
- JSOC
- もっと見る +
- JSOC INSIGHT
- サイバー救急センター
- サイバー救急センターレポート
- LAC Security Insight
- セキュリティ診断レポート
- サイバー・グリッド・ジャパン
- CYBER GRID JOURNAL
- CYBER GRID VIEW
- ラックセキュリティアカデミー
- すごうで
- ランサムウェア
- ゼロトラスト
- ASM
- EDR
- XDR
- SASE
- デジタルアイデンティティ
- インシデントレスポンス
- 情シス向け
- 対談
- CIS Controls
- Tech Crawling
- クラウド
- クラウドインテグレーション
- データベース
- アジャイル開発
- DevSecOps
- OWASP
- CTF
- FalconNest
- セキュリティ診断
- IoT
- EC
- サプライチェーンリスク
- スレットインテリジェンス
- テレワーク
- リモートデスクトップ
- アーキテクト
- プラス・セキュリティ人材
- 障がい者採用
- 官民学・業界連携
- カスタマーストーリー
- 白浜シンポジウム
- CODE BLUE
- 情報モラル
- クラブ活動
- 初心者向け
- 趣味
- カルチャー
- 子育て、生活
- 広報・マーケティング
- コーポレート
- ライター紹介
- IR