ノート:
- このチュートリアルでは、Oracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructureの資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了するときに、これらの値をクラウド環境に固有の値に置き換えます。
Oracle Cloud Infrastructureゼロ・トラスト・パケット・ルーティングの作成および構成
イントロダクション
Oracle Cloud Infrastructure(OCI)Zero Trust Packet Routingは、基盤となるネットワーク・アーキテクチャとは別にネットワーク・セキュリティ・ポリシーを管理することで、データへの不正アクセスを防止します。セキュリティ管理者は、理解しやすいインテントベースのポリシー言語を使用して、データの特定のアクセス経路を定義できます。ポリシーで明示的に許可されていないトラフィックはネットワークを経由できず、セキュリティ、ネットワーク、および監査チームの作業を簡素化しながらセキュリティが向上します。
次のチュートリアルでは、Oracle Cloud Infrastructure (OCI)テナンシ内のネットワーク全体の通信を制御するためにセキュリティ制御を適用するようにOCI Zero Trust Packet Routingを構成する方法の詳細を説明します。このチュートリアルでは、次のアーキテクチャがデプロイされています。
このアーキテクチャでは、次のリソースが構成されています。
-
financeprod
は、プライベート・ネットワークでホストされる本番データベースとして構成されたOracle Autonomous Databaseのインスタンスで、プライベート・エンドポイントを介してプライベート・サブネット内でアクセスできます。 -
client-prod
は、本番環境のエンタープライズ・アプリケーションをシミュレートするコンピュート・インスタンスです。このシナリオでは、これはOracle Instant Clientを実行しているOracle Linuxインスタンスです。 -
client-dev
は、開発環境でエンタープライズ・アプリケーションをシミュレートするコンピュート・インスタンスです。client-prodと同様に、これはOracle Instant Clientを実行しているOracle Linuxインスタンスです。
また、このユース・ケースには、次のもので構成される個別のVCN (so-vcn-pt
)が構成されています:
-
subnet-public
は、コンピュート・インスタンスを含むパブリック・サブネットです。 -
subnet-private
は、データベースを含むプライベート・サブネットです。 -
sl-allow-public
は、インターネットからのSSHアクセスを許可するセキュリティ・リストです。アウトバウンド・トラフィックを許可するようにエグレス・ルールも構成されています。subnet-public
に割り当てられます。 -
sl-allow-private
は、subnet-public
からのOracle Instant Clientトラフィック(ポート1522
)を許可するセキュリティ・リストです。アウトバウンド・トラフィックを許可するようにエグレス・ルールも構成されています。このセキュリティ・リストは、subnet-private
に割り当てられます。 -
route-public
は、すべてのトラフィックをインターネット・ゲートウェイにルーティングするルート表です。これはsubnet-public
に割り当てられます。 -
route-private
は、すべてのトラフィックをNATゲートウェイにルーティングするルート表です。これはsubnet-private
に割り当てられます。 -
gw-internet
は、route-public
で使用されるインターネット・ゲートウェイです。 -
gw-nat
は、route-private
で使用されるNATゲートウェイです。
目的
-
OCI Zero Trust Packet Routingの新しいセキュリティ属性を構成します。
-
OCI Zero Trust Packet Routingポリシーを作成して、ネットワーク・トラフィックのフローを制御します。
-
OCI Zero Trust Packet Routingのセキュリティ属性をリソースに割り当てます。
-
OCI Zero Trust Packet Routingポリシーをテストします。
前提条件
-
OCI Zero Trust Packet Routingリソースを管理するための適切な権限を持つOCIテナンシの有料サブスクリプション。
-
アーキテクチャで定義されているネットワーク構造。
-
パブリック・サブネットにデプロイされた、アーキテクチャに基づく2つのコンピュート・インスタンス。
-
両方のコンピュート・インスタンスにOracle Instant Client (SQL*Plusクライアントを含む)をインストールおよび構成します。
ノート: 「RPMを使用したOracle Instant Clientのインストール」からOracle Instant Clientをダウンロードしてインストールします。
-
アーキテクチャに従ってOracle Autonomous Databaseインスタンスを作成し、プライベート・サブネット内のプライベート・エンドポイントとともにデプロイします。
-
両方のコンピュート・インスタンスでOracle Instant Clientからデータベースへのアクセスを構成します。
タスク1: クライアントからのデータベースへのアクセスの確認
このタスクでは、両方のコンピュート・インスタンスがOracle Instant Clientを介してデータベースにアクセスできることを確認します。
-
opc
ユーザーとしてSSHを使用して、client-prodコンピュート・インスタンスに接続します。 -
sqlplus
コマンドを実行して、自律型データベースに接続します。前提条件に従って、Oracle Instant Clientをインストールして構成する必要があります。設定ステップの概要は次のとおりです。
-
Oracle Instant Clientをダウンロードしてインストールします。
-
Oracle Instant Clientを構成します。
-
OCIから自律型データベースの接続ウォレットをダウンロードします。
-
ウォレットをフォルダに抽出します。
-
ウォレットの場所を指すようにウォレット・フォルダ内の
sqlnet.ora
ファイルを構成します。 -
抽出したウォレットの場所を指すように変数
TNS_ADMIN
をエクスポートします。たとえば、export TNS_ADMIN=/opt/wallet
です。 -
sqlplus
コマンド(sqlplus admin@financeprod_low
など)を実行し、プロンプトが表示されたらパスワードを入力します。
Oracle Instant Clientが正しく動作していて、すべての前提条件が完了している場合は、データベースに正常に接続し、コマンドを実行できる必要があります。
show user;
コマンドを実行してユーザーを確認します。 -
-
client-devからデータベース接続テストを繰り返します。
Oracle Instant Clientが正しく動作していて、すべての前提条件が完了している場合は、データベースに正常に接続し、コマンドを実行できる必要があります。
show user;
コマンドを実行してユーザーを確認します。
タスク2: OCIゼロ・トラスト・パケット・ルーティングの有効化
テナンシ内でOCI Zero Trust Packet Routingを初めて使用する場合は、これを有効にする必要があります。
-
OCI Zero Trust Packet Routingリソースおよびこのチュートリアルで使用されるその他のリソースを管理するための適切な権限を持つユーザーとして、OCIコンソールにログインします。
-
「アイデンティティとセキュリティ」に移動し、「ゼロ・トラスト・パケット・ルーティング」をクリックします。
-
「ZPRの有効化」をクリックすると、ボタンがグレー表示され、OCI Zero Trust Packet Routingメニューにアクセスできるようになります。
タスク3: OCIゼロ・トラスト・パケット・ルーティングのセキュリティ属性の構成
OCIゼロトラスト・パケット・ルーティングを構成するには、OCIゼロトラスト・パケット・ルーティング・ポリシーで使用されるセキュリティ属性を設定する必要があります。
このタスクでは、ネットワーク、データベースおよびアプリケーションを表す3つの新しいセキュリティ属性を作成します。これらのセキュリティ属性に事前定義された値を作成します。
-
「ゼロ信頼パケット・ルーティング」に移動し、「セキュリティ属性ネームスペース」をクリックします。
-
「リスト範囲」で、
root
「コンパートメント」を選択します。事前定義済のoracle-zpr
ネームスペースが表示されます。 -
oracle-zpr
をクリックすると、事前定義済のsensitivity
セキュリティ属性が表示されます。このチュートリアルでは属性を使用しません。 -
「セキュリティ属性の作成」を選択して、新しいセキュリティ属性を作成します。
-
「セキュリティ属性の作成」に、次の情報を入力します。
- 名前:
app
と入力します。 - 説明:
Security attribute representing applications
と入力します。 - セキュリティ属性値タイプ: 「値リスト」を選択します。
- 値:
prod
およびdev
を(個別の行に)入力します。
- 名前:
-
新しい属性を作成するには、「作成」をクリックします。
-
ステップ5と6を繰り返して、さらに2つのセキュリティ属性を作成します。
-
次の情報を使用して、データベースのセキュリティ属性を作成します。
- 名前:
db
と入力します。 - 説明:
Security attribute representing databases
と入力します。 - セキュリティ属性値タイプ: 「値リスト」を選択します。
- 値:
prod
およびdev
を(個別の行に)入力します。
- 名前:
-
次の情報を使用して、ネットワークのセキュリティ属性を作成します。
- 名前:
network
と入力します。 - 説明:
Security attribute representing networks
と入力します。 - セキュリティ属性値タイプ: 「値リスト」を選択します。
- 値:
prod
およびdev
を(個別の行に)入力します。
- 名前:
完了すると、事前定義済の
sensitivity
属性を含むセキュリティ属性のリストが表示されます。 -
タスク4: OCIゼロ・トラスト・パケット・ルーティング・ポリシーの作成
セキュリティ属性を定義しました。ここでは、ネットワーク上の情報のフローを制御するポリシーを作成する必要があります。
このユース・ケースでは、本番アプリケーションが本番データベースと通信できるようにするポリシーが必要です。このタスクでは、これを実現するようにOCIゼロ・トラスト・パケット・ルーティング・ポリシーを構成します。
-
OCIコンソールに移動し、「アイデンティティとセキュリティ」、「ゼロ・トラスト・パケット・ルーティング」に移動して、「ポリシー」をクリックします。
-
「ポリシーの作成」をクリックして、新しいOCIゼロ・トラスト・パケット・ルーティング・ポリシーを作成します。
-
次の情報を入力し、「ポリシー・ステートメントの追加」をクリックしてポリシーにポリシー・ステートメントを追加します。
- 名前:
prod_policy
と入力します。 - 説明:
Policy to allow production clients in the production network to access production databases
と入力します。
- 名前:
-
ポリシー・ステートメントを構築するための3つのオプションを確認し、「手動ポリシー・ビルダー」を選択して次のポリシー・ステートメントを入力し、「追加」をクリックしてポリシー・ステートメントを保存します。
- ポリシー・ステートメント:
in network:prod VCN allow app:prod endpoints to connect to db:prod endpoints with protocol = 'tcp/1522'
と入力します。
ノート:ポリシー・ステートメントは、説明がなくてもわかりやすいです。ただし、わかりやすくするために、セキュリティ属性
app:prod
が割り当てられているリソースが、TCPプロトコル1522を介してnetwork:prod
VCN内でdb:prod
セキュリティ属性が割り当てられているすべてのリソースと通信できるようにすることをOCI Zero Trust Packet Routingに指示します。完了したポリシーは次のようになります。
- ポリシー・ステートメント:
-
「ポリシーの作成」をクリックして、
prod_policy
の作成を完了します。ノート:リソースにセキュリティ属性を割り当てると、OCI Zero Trust Packet Routingポリシーが強制され、OCI Zero Trust Packet Routingポリシーに一致するトラフィックのみがネットワークを転送できるようになります。2つのコンピュート・インスタンスにセキュリティ属性を割り当てるため、クライアントへのSSHアクセスを許可するOCI Zero Trust Packet Routingポリシーがないため、それらのコンピュート・インスタンスへのSSHアクセスは失われます。そのため、2つの追加ポリシーを作成して、これを修正する必要があります。
-
ステップ2から5を繰り返して、2つの追加のOCI Zero Trust Packet Routingポリシーを作成し、SSHを介してコンピュート・インスタンスに接続できるようにします。
-
client-prodへのSSHアクセスを許可するポリシー:
- 名前:
prod_client_access_policy
と入力します。 - 説明:
Policy to allow SSH access to the production clients in the production network
と入力します。 - ポリシー・ステートメント:
in network:prod VCN allow 'x.x.x.x/32' to connect to app:prod endpoints with protocol='tcp/22'
と入力します。
- 名前:
-
client-devへのSSHアクセスを許可するポリシー:
- 名前:
dev_client_access_policy
と入力します。 - 説明:
Policy to allow dev clients in the production network to access production databases
と入力します。 - ポリシー・ステートメント:
in network:prod VCN allow 'x.x.x.x/32' to connect to app:dev endpoints with protocol='tcp/22'
と入力します。
ノート:
-
x.x.x.x
をIPアドレスに置き換えます。 -
本番シナリオでは、クライアントへのアクセスは通常、OCI Bastionホストを介して行われます。ただし、このチュートリアルをシンプルにするために、アクセスは直接的です。したがって、SSHを介してクライアントに接続するソース・マシンの外部IPアドレスを含める必要があります。
- 名前:
完了したポリシーは次のようになります。
-
タスク5: リソースへのセキュリティ属性の割当て
このタスクでは、OCI Zero Trust Packet Routingを構成するには、セキュリティ属性を必要なリソースに割り当てます。
db
セキュリティ属性をデータベースに関連付け、app
セキュリティ属性を2つのクライアントに関連付け、network
セキュリティ属性をVCNに関連付けます。
ノート:セキュリティ属性を割り当てる際は、OCI Zero Trust Packet Routing画面内から、または個々のリソースから実行できます。このチュートリアルでは、両方の方法について説明します。
-
データベースにセキュリティ属性を割り当てます。
-
OCIコンソールに移動し、Oracle DatabaseおよびAutonomous Databaseに移動します。
ノート:データベースを作成したコンパートメントにいることを確認します。リストされているはずです。
-
使用可能なデータベースのリストからデータベース(
Finance-PROD
など)を選択します。 -
「セキュリティ属性」をクリックします。現在空であり、セキュリティ属性が割り当てられていないことがわかります。
-
「セキュリティ属性の追加」をクリックし、次の情報を入力します。
- ネームスペース:
oracle-zpr
を選択します。 - キー:
db
を選択します。 - 値:
prod
を選択します。
- ネームスペース:
-
「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。データベースが更新され、属性が割り当てられます。
-
-
コンピュート・インスタンスにセキュリティ属性を割り当てます。
-
OCIコンソールに移動し、「コンピュート」および「インスタンス」に移動します。
ノート:コンピュート・インスタンスを作成したコンパートメントにいることを確認してください。両方がリストされていることを確認してください。
-
使用可能なインスタンスのリストからclient-prodインスタンスを選択します。
-
「セキュリティ」をクリックします。セキュリティ属性がインスタンスにまだ割り当てられていないため、これは空です。
-
「セキュリティ属性の追加」をクリックし、次の情報を入力します。
- ネームスペース:
oracle-zpr
と入力します。 - キー:
app
と入力します。 - 値:
prod
を入力します。
- ネームスペース:
-
「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。コンピュート・インスタンスが更新され、属性が割り当てられます。
-
OCIコンソールに移動し、「コンピュート」および「インスタンス」に移動します。
-
使用可能なインスタンスのリストからclient-devインスタンスを選択します。
-
「セキュリティ」をクリックします。
-
「セキュリティ属性の追加」をクリックし、次の情報を入力します。
- ネームスペース:
oracle-zpr
を選択します。 - キー:
app
を選択します。 - 値:
dev
を選択します。
- ネームスペース:
-
「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。コンピュート・インスタンスが更新され、属性が割り当てられます。
-
-
VCNにセキュリティ属性を割り当てます。
-
OCIコンソールに移動し、「ネットワーキング」および「Virtual Cloudネットワーク」に移動します。
ノート: VCNを作成したコンパートメントが表示されていることを確認します。
-
使用可能なVCNのリストからso-vcn-pt VCNを選択します。
-
「セキュリティ」をクリックします。
ノート:このセキュリティ属性を割り当てる場合は、リソースからではなく、「OCI Zero Trust Packet Routing」メニューから割り当てます。ここでは、OCIゼロ・トラスト・パケット・ルーティングのセキュリティ属性を割り当てる2つの異なる方法を示します。
-
OCIコンソールに移動し、「アイデンティティとセキュリティ」、「ゼロ・トラスト・パケット・ルーティング」に移動して、「保護されたリソース」をクリックします。
たとえば、セキュリティ属性が割り当てられているなど、保護されているリソースの既存のリストが表示されます。
-
「リソースへのセキュリティ属性の追加」をクリックします。
-
リストをフィルタするには、VCNを作成したコンパートメントを選択し、リソース・タイプを
Vcn
として選択します。 -
VCN (so-vcn-pt)を選択し、「次へ」をクリックします。
-
次の情報を入力します
- セキュリティ属性ネームスペース:
oracle-zpr
を選択します。 - セキュリティ属性:
network
を選択します。 - セキュリティ属性値:
prod
を選択します。
- セキュリティ属性ネームスペース:
-
「次へ」をクリックし、サマリーを確認します。
-
「送信」および「閉じる」をクリックして、「作業リクエスト」を終了します。数分後、作業リクエストが完了し、VCNが保護されたリソースに表示されます。VCNをチェックインして、セキュリティ属性が割り当てられていることを確認することもできます。
-
ステップ1から3を繰り返して、VCNに割り当てられたセキュリティ属性を確認します。
-
タスク6: ポリシーのテスト
これで、OCIゼロ・トラスト・パケット・ルーティングの構成が完了しました。最後のタスクは、ポリシーをテストすることです。このチュートリアルでは、2つのテスト・ケースがあります。
-
最初のテストケースは、client-prodが financeprodデータベースに引き続きアクセスできることを確認することです。
-
opc
ユーザーとしてSSHを使用して、client-prodコンピュート・インスタンスに接続します。OCIゼロ・トラスト・パケット・ルーティング・ポリシーでローカル・マシンからのこの接続が許可されているため、SSH接続を成功させる必要があります。
-
sqlplus
コマンドを実行して、自律型データベースに接続します。OCI Zero Trust Packet Routingポリシーでは、本番クライアント(client-prod)から本番データベース(financeprod)へのこの接続が許可されているため、データベースに正常に接続し、
show user;
コマンドを実行できる必要があります。
-
-
2番目のテストケースは、client-devが financeprodデータベースにアクセスできなくなったことを確認することです。
-
opc
ユーザーとしてSSHを使用して、client-devコンピュート・インスタンスに接続します。Zero Trust Packet Routingポリシーでは、ローカル・マシンからのこの接続が許可されているため、SSH接続は成功します。
-
sqlplus
コマンドを実行して、自律型データベースに接続します。開発クライアント(client-dev)から本番データベース(financeprod)へのこの接続を許可するOCIゼロ・トラスト・パケット・ルーティング・ポリシーがないため、接続はブロックされます。
-
関連リンク
承認
- 著者 - Paul Toal (フィールドCISO、シニア・ディレクタ)
その他の学習リソース
docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントは、Oracle Help Centerを参照してください。
Create and Configure Oracle Cloud Infrastructure Zero Trust Packet Routing
G17493-01
October 2024