ノート:

Oracle Cloud Infrastructureゼロ・トラスト・パケット・ルーティングの作成および構成

イントロダクション

Oracle Cloud Infrastructure(OCI)Zero Trust Packet Routingは、基盤となるネットワーク・アーキテクチャとは別にネットワーク・セキュリティ・ポリシーを管理することで、データへの不正アクセスを防止します。セキュリティ管理者は、理解しやすいインテントベースのポリシー言語を使用して、データの特定のアクセス経路を定義できます。ポリシーで明示的に許可されていないトラフィックはネットワークを経由できず、セキュリティ、ネットワーク、および監査チームの作業を簡素化しながらセキュリティが向上します。

次のチュートリアルでは、Oracle Cloud Infrastructure (OCI)テナンシ内のネットワーク全体の通信を制御するためにセキュリティ制御を適用するようにOCI Zero Trust Packet Routingを構成する方法の詳細を説明します。このチュートリアルでは、次のアーキテクチャがデプロイされています。

このZPRユースケースのアーキテクチャーを示す図。

このアーキテクチャでは、次のリソースが構成されています。

また、このユース・ケースには、次のもので構成される個別のVCN (so-vcn-pt)が構成されています:

目的

前提条件

タスク1: クライアントからのデータベースへのアクセスの確認

このタスクでは、両方のコンピュート・インスタンスがOracle Instant Clientを介してデータベースにアクセスできることを確認します。

  1. opcユーザーとしてSSHを使用して、client-prodコンピュート・インスタンスに接続します。

  2. 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-prodへのSSHアクセスを示すスクリーンショット。

  3. client-devからデータベース接続テストを繰り返します。

    client-devへのSSHアクセスを示すスクリーンショット。

    Oracle Instant Clientが正しく動作していて、すべての前提条件が完了している場合は、データベースに正常に接続し、コマンドを実行できる必要があります。show user;コマンドを実行してユーザーを確認します。

タスク2: OCIゼロ・トラスト・パケット・ルーティングの有効化

テナンシ内でOCI Zero Trust Packet Routingを初めて使用する場合は、これを有効にする必要があります。

  1. OCI Zero Trust Packet Routingリソースおよびこのチュートリアルで使用されるその他のリソースを管理するための適切な権限を持つユーザーとして、OCIコンソールにログインします。

  2. 「アイデンティティとセキュリティ」に移動し、「ゼロ・トラスト・パケット・ルーティング」をクリックします。

  3. 「ZPRの有効化」をクリックすると、ボタンがグレー表示され、OCI Zero Trust Packet Routingメニューにアクセスできるようになります。

    ZPRが有効になっていることを示すスクリーンショット。

タスク3: OCIゼロ・トラスト・パケット・ルーティングのセキュリティ属性の構成

OCIゼロトラスト・パケット・ルーティングを構成するには、OCIゼロトラスト・パケット・ルーティング・ポリシーで使用されるセキュリティ属性を設定する必要があります。

このタスクでは、ネットワーク、データベースおよびアプリケーションを表す3つの新しいセキュリティ属性を作成します。これらのセキュリティ属性に事前定義された値を作成します。

  1. 「ゼロ信頼パケット・ルーティング」に移動し、「セキュリティ属性ネームスペース」をクリックします。

  2. 「リスト範囲」で、root「コンパートメント」を選択します。事前定義済のoracle-zprネームスペースが表示されます。

    ZPRセキュリティ属性ネームスペースを示すスクリーンショット。

  3. oracle-zprをクリックすると、事前定義済のsensitivityセキュリティ属性が表示されます。このチュートリアルでは属性を使用しません。

  4. 「セキュリティ属性の作成」を選択して、新しいセキュリティ属性を作成します。

  5. 「セキュリティ属性の作成」に、次の情報を入力します。

    • 名前: appと入力します。
    • 説明: Security attribute representing applicationsと入力します。
    • セキュリティ属性値タイプ: 「値リスト」を選択します。
    • 値: prodおよびdevを(個別の行に)入力します。

    アプリケーションのZPRセキュリティ属性を示すスクリーンショット。

  6. 新しい属性を作成するには、「作成」をクリックします。

  7. ステップ5と6を繰り返して、さらに2つのセキュリティ属性を作成します。

    • 次の情報を使用して、データベースのセキュリティ属性を作成します。

      • 名前: dbと入力します。
      • 説明: Security attribute representing databasesと入力します。
      • セキュリティ属性値タイプ: 「値リスト」を選択します。
      • 値: prodおよびdevを(個別の行に)入力します。
    • 次の情報を使用して、ネットワークのセキュリティ属性を作成します。

      • 名前: networkと入力します。
      • 説明: Security attribute representing networksと入力します。
      • セキュリティ属性値タイプ: 「値リスト」を選択します。
      • 値: prodおよびdevを(個別の行に)入力します。

    完了すると、事前定義済のsensitivity属性を含むセキュリティ属性のリストが表示されます。

    ゼロ信頼パケット・ルーティングのセキュリティ属性のリストを示すスクリーンショット。

タスク4: OCIゼロ・トラスト・パケット・ルーティング・ポリシーの作成

セキュリティ属性を定義しました。ここでは、ネットワーク上の情報のフローを制御するポリシーを作成する必要があります。

このユース・ケースでは、本番アプリケーションが本番データベースと通信できるようにするポリシーが必要です。このタスクでは、これを実現するようにOCIゼロ・トラスト・パケット・ルーティング・ポリシーを構成します。

  1. OCIコンソールに移動し、「アイデンティティとセキュリティ」「ゼロ・トラスト・パケット・ルーティング」に移動して、「ポリシー」をクリックします。

  2. 「ポリシーの作成」をクリックして、新しいOCIゼロ・トラスト・パケット・ルーティング・ポリシーを作成します。

  3. 次の情報を入力し、「ポリシー・ステートメントの追加」をクリックしてポリシーにポリシー・ステートメントを追加します。

    • 名前: prod_policyと入力します。
    • 説明: Policy to allow production clients in the production network to access production databasesと入力します。
  4. ポリシー・ステートメントを構築するための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文を示すスクリーンショット。

    完了したポリシーは次のようになります。

    prod_policyを示すスクリーンショット。

  5. 「ポリシーの作成」をクリックして、prod_policyの作成を完了します。

    ノート:リソースにセキュリティ属性を割り当てると、OCI Zero Trust Packet Routingポリシーが強制され、OCI Zero Trust Packet Routingポリシーに一致するトラフィックのみがネットワークを転送できるようになります。2つのコンピュート・インスタンスにセキュリティ属性を割り当てるため、クライアントへのSSHアクセスを許可するOCI Zero Trust Packet Routingポリシーがないため、それらのコンピュート・インスタンスへのSSHアクセスは失われます。そのため、2つの追加ポリシーを作成して、これを修正する必要があります。

  6. ステップ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アドレスを含める必要があります。

    完了したポリシーは次のようになります。

    ZPRポリシー・リストを示すスクリーンショット。

タスク5: リソースへのセキュリティ属性の割当て

このタスクでは、OCI Zero Trust Packet Routingを構成するには、セキュリティ属性を必要なリソースに割り当てます。

dbセキュリティ属性をデータベースに関連付け、appセキュリティ属性を2つのクライアントに関連付け、networkセキュリティ属性をVCNに関連付けます。

ノート:セキュリティ属性を割り当てる際は、OCI Zero Trust Packet Routing画面内から、または個々のリソースから実行できます。このチュートリアルでは、両方の方法について説明します。

  1. データベースにセキュリティ属性を割り当てます。

    1. OCIコンソールに移動し、Oracle DatabaseおよびAutonomous Databaseに移動します。

      ノート:データベースを作成したコンパートメントにいることを確認します。リストされているはずです。

      Autonomous Databaseを示すスクリーンショット。

    2. 使用可能なデータベースのリストからデータベース(Finance-PRODなど)を選択します。

    3. 「セキュリティ属性」をクリックします。現在空であり、セキュリティ属性が割り当てられていないことがわかります。

      「セキュリティ属性」タブを示すスクリーンショット。

    4. 「セキュリティ属性の追加」をクリックし、次の情報を入力します。

      • ネームスペース: oracle-zprを選択します。
      • キー: dbを選択します。
      • 値: prodを選択します。

      セキュリティ属性の選択を示すスクリーンショット。

    5. 「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。データベースが更新され、属性が割り当てられます。

      移入された「セキュリティ属性」タブを示すスクリーンショット。

  2. コンピュート・インスタンスにセキュリティ属性を割り当てます。

    1. OCIコンソールに移動し、「コンピュート」および「インスタンス」に移動します。

      ノート:コンピュート・インスタンスを作成したコンパートメントにいることを確認してください。両方がリストされていることを確認してください。

      コンピュート・インスタンスを示すスクリーンショット。

    2. 使用可能なインスタンスのリストからclient-prodインスタンスを選択します。

    3. 「セキュリティ」をクリックします。セキュリティ属性がインスタンスにまだ割り当てられていないため、これは空です。

      「セキュリティ属性」タブを示すスクリーンショット。

    4. 「セキュリティ属性の追加」をクリックし、次の情報を入力します。

      • ネームスペース: oracle-zprと入力します。
      • キー: appと入力します。
      • 値: prodを入力します。

      セキュリティ属性の選択を示すスクリーンショット。

    5. 「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。コンピュート・インスタンスが更新され、属性が割り当てられます。

      移入された「セキュリティ属性」タブを示すスクリーンショット。

    6. OCIコンソールに移動し、「コンピュート」および「インスタンス」に移動します。

      コンピュート・ブレッドクラム・メニューを示すスクリーンショット。

    7. 使用可能なインスタンスのリストからclient-devインスタンスを選択します。

    8. 「セキュリティ」をクリックします。

      「セキュリティ属性」タブを示すスクリーンショット。

    9. 「セキュリティ属性の追加」をクリックし、次の情報を入力します。

      • ネームスペース: oracle-zprを選択します。
      • キー: appを選択します。
      • 値: devを選択します。

      セキュリティ属性の選択を示すスクリーンショット。

    10. 「セキュリティ属性の追加」をクリックして、セキュリティ属性をデータベースに割り当てます。コンピュート・インスタンスが更新され、属性が割り当てられます。

      移入された「セキュリティ属性」タブを示すスクリーンショット。

  3. VCNにセキュリティ属性を割り当てます。

    1. OCIコンソールに移動し、「ネットワーキング」および「Virtual Cloudネットワーク」に移動します。

      ノート: VCNを作成したコンパートメントが表示されていることを確認します。

      VCNを示すスクリーンショット。

    2. 使用可能なVCNのリストからso-vcn-pt VCNを選択します。

    3. 「セキュリティ」をクリックします。

      「セキュリティ属性」タブを示すスクリーンショット。

      ノート:このセキュリティ属性を割り当てる場合は、リソースからではなく、「OCI Zero Trust Packet Routing」メニューから割り当てます。ここでは、OCIゼロ・トラスト・パケット・ルーティングのセキュリティ属性を割り当てる2つの異なる方法を示します。

    4. OCIコンソールに移動し、「アイデンティティとセキュリティ」「ゼロ・トラスト・パケット・ルーティング」に移動して、「保護されたリソース」をクリックします。

      たとえば、セキュリティ属性が割り当てられているなど、保護されているリソースの既存のリストが表示されます。

      ZPRで保護されたリソースを示すスクリーンショット。

    5. 「リソースへのセキュリティ属性の追加」をクリックします。

    6. リストをフィルタするには、VCNを作成したコンパートメントを選択し、リソース・タイプVcnとして選択します。

      ZPRで保護されたリソースを示すスクリーンショット。

    7. VCN (so-vcn-pt)を選択し、「次へ」をクリックします。

    8. 次の情報を入力します

      • セキュリティ属性ネームスペース: oracle-zprを選択します。
      • セキュリティ属性: networkを選択します。
      • セキュリティ属性値: prodを選択します。

      ZPRで保護されたリソース属性の選択を示すスクリーンショット。

    9. 「次へ」をクリックし、サマリーを確認します。

      ZPRで保護されたリソース属性選択サマリーを示すスクリーンショット。

    10. 「送信」および「閉じる」をクリックして、「作業リクエスト」を終了します。数分後、作業リクエストが完了し、VCNが保護されたリソースに表示されます。VCNをチェックインして、セキュリティ属性が割り当てられていることを確認することもできます。

    11. ステップ1から3を繰り返して、VCNに割り当てられたセキュリティ属性を確認します。

      VCNに割り当てられたセキュリティ属性を示すスクリーンショット。

タスク6: ポリシーのテスト

これで、OCIゼロ・トラスト・パケット・ルーティングの構成が完了しました。最後のタスクは、ポリシーをテストすることです。このチュートリアルでは、2つのテスト・ケースがあります。

  1. 最初のテストケースは、client-prodfinanceprodデータベースに引き続きアクセスできることを確認することです。

    1. opcユーザーとしてSSHを使用して、client-prodコンピュート・インスタンスに接続します。

      OCIゼロ・トラスト・パケット・ルーティング・ポリシーでローカル・マシンからのこの接続が許可されているため、SSH接続を成功させる必要があります。

    2. sqlplusコマンドを実行して、自律型データベースに接続します。

      OCI Zero Trust Packet Routingポリシーでは、本番クライアント(client-prod)から本番データベース(financeprod)へのこの接続が許可されているため、データベースに正常に接続し、show user;コマンドを実行できる必要があります。

      client-prodへのSSHアクセスを示すスクリーンショット。

  2. 2番目のテストケースは、client-devfinanceprodデータベースにアクセスできなくなったことを確認することです。

    1. opcユーザーとしてSSHを使用して、client-devコンピュート・インスタンスに接続します。

      Zero Trust Packet Routingポリシーでは、ローカル・マシンからのこの接続が許可されているため、SSH接続は成功します。

    2. sqlplusコマンドを実行して、自律型データベースに接続します。

      開発クライアント(client-dev)から本番データベース(financeprod)へのこの接続を許可するOCIゼロ・トラスト・パケット・ルーティング・ポリシーがないため、接続はブロックされます。

      client-devからのDBへのSQLアクセスの失敗を示すスクリーンショット。

承認

その他の学習リソース

docs.oracle.com/learnの他のラボを確認するか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントは、Oracle Help Centerを参照してください。