ノート:

OCI WAFを使用したOracle Integration (プロセス)カスタム・エンドポイントの構成および保護

イントロダクション

Oracle Integration は完全に管理された事前構成済の環境であり、クラウドおよびオンプレミス・アプリケーションの統合、ビジネス・プロセスの自動化、ビジネス・プロセスに関するインサイトの取得、ビジュアル・アプリケーションの開発、SFTP準拠のファイル・サーバーを使用したファイルの格納と取得、およびB2B取引パートナとのビジネス・ドキュメントの交換を行うことができます。

Oracle Cloud Infrastructure Web Application Firewall (OCI WAF)を使用して、悪意のある不要なインターネット・トラフィックからアプリケーションを保護します。WAFは、インターネット接続エンドポイントを保護し、顧客のアプリケーション全体で一貫したルール適用を提供できます。

目標

カスタム・エンドポイントを含むOracle Integrationインスタンスを構成し、OCIファイアウォールを使用してインターネットからの悪意のあるトラフィックから保護します。

このチュートリアルでは、WAFおよび許可リストの使用に関するOracle Integrationのリファレンス・アーキテクチャの推奨事項に従って、ドキュメントで推奨されています。

ソリューション・アーキテクチャ

詳細は、Oracle Integration Generation 2のプロビジョニングと管理を参照してください。

前提条件

タスク1: Oracle Integrationインスタンスの作成

  1. Webコンソールを使用して新しいOracle Integrationインスタンスを作成するには、「開発者サービス」メニューに移動し、「統合」をクリックします。

    OCIインテグレータの作成

  2. 「統合インスタンス」画面で、インスタンスが作成されるコンパートメントを選択し、「インスタンスの作成」をクリックします。

    コンパートメントの選択

  3. インスタンスを作成するための画面が表示されます。インスタンス名を入力して、Oracle Integrationバージョン(Gen 2)を選択し、「作成」をクリックします。

    必要な情報を入力します

    ノート:他の項目は、環境のニーズに応じて構成できます。このチュートリアルでは、デフォルト値のままにします。

  4. 作成が終了すると、インスタンスが使用可能になります。詳細を表示するには、インスタンス名をクリックします。

    インスタンスの詳細の表示

  5. Oracle Integrationインスタンスの機能を検証するには、インスタンスの詳細にアクセスした後、「サービス・コンソール」をクリックします。

    インスタンスのサービス・コンソールを開きます

  6. 新しいブラウザ・タブが開き、Oracle Integrationホーム画面にアクセスできます。

    アクセスの確認

タスク2: OCI Vault、DNSおよびSSL証明書の設定

Oracle Integrationインスタンスが作成されたら、インスタンスのカスタム・エンドポイントを作成します。カスタム・エンドポイントでは、プライベート・ドメインを使用してOracle Integrationインタフェースにアクセスできます。次に例を示します。

https://oic-lab.<exampledomain>.com/ic/home

カスタム・エンドポイントを作成するには、次の5つのステップに従います:

  1. パブリック・サブネットを使用したVCNの作成
  2. Oracle Integrationエンドポイントを指すカスタムDNSにCNAMEエントリを作成します
  3. 新規リンクのSSL証明書を作成します(例: oic.<exampledomain>.com)。
  4. 証明書が格納されるOCI Vaultを作成します
  5. Oracle Integrationインスタンスでのカスタム・エンドポイント構成の実行

タスク2.1: コンパートメントでのVCNおよびパブリック・サブネットの作成

  1. VCNを作成するには、OCI Webコンソールのサービス・メニューを開き、「Virtual Cloud Networks」をクリックします。

    VCNの作成

  2. 「ネットワーキング」ページ内に入ったら、正しいコンパートメントにいるかどうかを確認し、「VCNウィザードの起動」をクリックします。

    ウィザードを開始

    • 構築する環境の要件に従ってVCNを作成します。Oracle Integrationでは、パブリック・サブネットを作成してサービス・ゲートウェイを使用できるようにする必要があります(NAT Gateway)。

      それに応じてVCNを作成します

    • VCNは、Oracle Integrationカスタム・エンドポイントの作成時に使用されます。

      重要: VCNのOCIDは、Oracle IntegrationのWAF構成に使用されるため、ノートにとります。

タスク2.2: Oracle IntegrationエンドポイントのカスタムDNSでのCNAMEエントリの作成

Oracle Integrationを指すCNAMEエントリを作成するには、ドメインのDNS構成環境にアクセスする必要があります。WAFを構成する際、このCNAMEエントリは変更されますが、Oracle Integrationへのアクセスの転送時に暗号化に使用されるSSL証明書をインポートできるように、この時点で作成することが重要です。

  1. OCIコンソールのOracle Integrationサービスのページに戻ります。

    独自のDNSゾーンでのCNAMEの作成

  2. インスタンスの詳細内で、Oracle Integrationインスタンスのサービス・コンソールにアクセスするためにOCIによって提供されるドメインFQDNをメモします。

    Oracle Integration FQDNの取得

    • この例では、FQDN oic-lab-instance-axyjvqi24eaa-gr.integration.ocp.oraclecloud.comを使用します。
  3. Oracle Integrationカスタム・エンドポイントのFQDNを指すCNAMEをドメインに作成します。

    ノート: DNSゾーン・ファイルでCNAMEを構成する方法を示すために、このチュートリアルの範囲にはありません。

  4. FQDNを取得したら、自分のドメインのCNAMEを構成します。構成後、コマンドdigを使用してCNAMEが正しく構成されていることを確認します。

    $ dig <oic>.<exampledomain>.com

    digコマンドの実行例

タスク2.3: 新しいドメインのSSL証明書の作成

CNAMEを作成したら、インスタンスに対して暗号化されたインターネット・トラフィックを有効にするためにSSL証明書を作成する必要があります。このチュートリアルでは、自己署名SSL証明書を作成します。ただし、本番環境では、証明書が有効である必要があります。

  1. 自己署名証明書を作成するには、まず秘密キーを作成します。

    $ openssl genrsa -out oic-lab.key 2048

    • その結果、oic-lab.keyという名前の秘密キーが取得されます。

    秘密キーの生成

  2. 次に、CSR (証明書署名要求)を作成します。

    $ openssl req -key oic-lab.key -new -out oic-lab.csr

    • 要求された情報を入力して、最後に.csrファイルを取得します。「Common Name」は、チュートリアルで使用するFQDNである必要があることに注意してください。

    証明書署名要求の生成

  3. 秘密キー(oic-lab.key)とcsr (oic-lab.csr)があるため、自己署名SSL証明書を作成します。これを行うには、次のコマンドを実行します。

    $ openssl x509 -signkey oic-lab.key -in oic-lab.csr -req -days 365 -out oic-lab.crt

    • このコマンドは、365日間有効な自己署名証明書を生成します。

    自己署名証明書の生成

    自己署名証明書が作成されたので、Oracle Integration内で使用するためにOCI Vaultにインポートできます。

タスク2.4: OCI Vaultの作成およびSSL証明書のインポート

自己署名SSL証明書がすでにあるため、Oracle Integrationが実行されているコンパートメント内にOCI Vaultを作成する必要があります。

  1. OCI Vaultを作成するには、OCI Webコンソールの「サービス」メニューにアクセスします。

    OCI Vaultの作成

  2. Vault画面がロードされたら、正しいコンパートメントにいるかどうかを確認し、「ボールトの作成」をクリックします。

    コンパートメントを確認し、「ボールトの作成」ボタンを押します

  3. Vaultを正しく作成するための情報を入力し、「Vaultの作成」をクリックします。

    ボールト作成ページで必要な正しい情報を入力します

  4. Vaultの作成後、マスター暗号化キーを作成します。

    マスター暗号化キーの作成

    • 自己署名証明書を含むVaultシークレットを作成する前に、Vaultに格納する証明書の形式を調整する必要があります。この適合性は、証明書、鍵、中間証明書(存在する場合)、および証明書パスフレーズ(存在する場合)を連結したものです。最後のファイル形式は、次のモデルに示すようにJSONになります。

      ```
      {
          "key": "-----BEGIN PRIVATE KEY-----\n…..-----END PRIVATE KEY-----\n",
          "cert": "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
          "intermediates": [
              "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n",
              "-----BEGIN CERTIFICATE-----\n….-----END CERTIFICATE-----\n"
          ],
          "passphrase": "<private key password if encrypted key is provided>"
      }
      ```
      
      • 証明書と鍵のセットを使用してこの形式にするには、いくつかの処理が必要になります。これは、鍵、証明書、パスフレーズのいずれにも改行がないためです。
  5. 次のコマンドを使用して、キーを調整します。

    `awk -v RS= '{gsub(/\n+/, "\\n")}1' <seu\_arquivo.key>`
    

    秘密キーをVaultにシークレットとして格納する前に、データを正しくフォーマットする

  6. この値をコピーし、前述のJSONの例のkeyアイテムに挿入します。ファイルcrtを使用してプロセスを繰り返します。

    データをVaultのシークレットとして格納する前に、データを正しくフォーマットするためにcrtファイルを確認

  7. OCI Webコンソールに戻り、OCI Vaultの「シークレット」メニューをクリックし、「シークレットの作成」をクリックします。

    シークレットの作成

  8. フィールドに正しく入力し、「秘密の内容」フィールドに、前述のステップで作成したJSONを挿入します。

    正しい情報を入力

    1. 秘密の作成フォームで必要な情報を入力し、マスター暗号化キーを選択して、「秘密の内容」フィールドにJSONシークレットを貼り付けます。シークレットが作成されたら、Oracle Integrationカスタム・エンドポイントを作成します。

タスク2.5: Oracle Integrationインスタンスのカスタム・エンドポイントの構成

  1. Oracle Integrationカスタム・エンドポイントを構成するには、OCI Webコンソールの「統合」ページに戻り、インスタンスにアクセスします。

    Oracle Integrationカスタム・エンドポイントの構成

  2. 「編集」をクリックします。

    「Edit」をクリックします。

  3. Oracle Integration設定の編集ページで、「拡張設定の表示」をクリックしてカスタム・エンドポイント構成項目を表示します。

    「Show Advanced Settings」をクリックします。

  4. 構成を続行するには、カスタム・エンドポイントの名前を入力し、Vault内に格納されているSSL証明書を含むシークレットを選択します。最後に、「変更の保存」をクリックします。

    カスタム・エンドポイント名を入力し、変更を保存します

    • Oracle Integrationインスタンスが「更新中」ステータスに変更されます。再度アクティブになるまで待ちます。
  5. インスタンスがACTIVE状態に戻ったら、「サービス・コンソール」をクリックして新しいカスタム・エンドポイントへのアクセスをテストします。

    サービス・コンソールを再度開く

    • すべてが正しく構成されている場合は、DNS CNAME (タスク2.2のステップ2)で構成したFQDNを使用してサービス・コンソールが開きます。
  6. このチュートリアルでは、自己署名SSL証明書を使用していますが、ブラウザは証明書を検証できないことを示すアラートを発行する必要があります。ただし、カスタム・エンドポイントのFQDNはすでに使用されています。

    独自のDNSを使用したカスタム・エンドポイントへのアクセス

  7. アクセスすると、カスタム・エンドポイントが正しく機能していることを示すOracle Integrationコンソールが表示されます。

    成功

ノート: 有効なSSL証明書を使用する場合、証明書の有効性に関するブラウザ警告メッセージは発行されません。

タスク3: WAFおよびOracle Integrationの構成 AllowList

カスタム・エンドポイントを起動して実行したので、レイヤー7攻撃からのアクセスを保護するようにWAFルールおよびOracle Integration許可リストを構成します。

外部攻撃からOracle Integrationを保護するようにOCI WAFを作成および構成する前に、最初にOracle Integration許可リストを構成して、作成したカスタム・エンドポイントにアクセスできるソースIPアドレスを制限します。アクセス権限があるのはWAF OCI CIDRのみです。このようにして、外部アクセスをOracle Integrationインスタンスに制限し、その結果、すべての外部アクセスをWAFを介してのみトンネリングできます。

許可リストを正しく作成するには、まず、Oracle Integrationを構成するリージョンでWAF OCIが使用するサービスCIDRを取得する必要があります。

タスク3.1: OCIリージョンのCIDRの検索

タスク3.2: リージョンのWAF CIDRの検索

Oracle Integration許可リストにこれらのレコードを含めることができるように、見つかった住所に注意してください。

タスク3.3: Oracle IntegrationでのAllowListの構成

  1. WAF OCIパブリック・アドレスができたので、Oracle Integration内に許可リストを作成しましょう。これを行うには、インスタンス画面に戻り、「ネットワーク・アクセス」メニューをクリックして「編集」をクリックします。

    Oracle Integrationで許可リストを作成しています

  2. 前のステップで取得したCIDR、およびタスク2.2.1で作成されたVCNのOCIDに関する情報を入力します。

    必要な情報を入力します

  3. 許可リストを構成すると、WAF CIDRのみがコンソールに直接アクセスできます。インターネット経由のその他のアクセスはすべて、WAFを経由する必要があります。

  4. これを検証するには、Oracle Integration Serviceコンソールにアクセスしてみてください。すべてが正しく構成されている場合は、ブラウザに403 Forbiddenメッセージが表示されます。

    403禁止メッセージ

このアクセスを監視および保護できるようにWAFを構成します。

タスク3.4: OCI WAFエッジ・ルールの構成

最初は、Oracle IntegrationコンソールへのセキュアなHTTPSアクセスを提供するために使用されるSSL証明書のレコードを作成するために、WAFでも必要です。

  1. OCI Webコンソール・メニューから、「エッジ・ポリシー・リソース」をクリックします。

    エッジ・ポリシー・リソースに移動

  2. サービス・ページで、「証明書の作成」をクリックします。

    証明書の作成

  3. デジタル証明書を構成するページが開きます。要求された情報を入力し、前述のステップ2.2.3で作成した.crtおよび.keyファイルをアップロードします。

    正しい情報を入力してください

    ノート: 作成したSSL証明書は自己署名であるため、「自己署名証明書」オプションが選択されています。有効な証明書を使用する場合は、このオプションの選択を解除する必要があります。

  4. 証明書が作成されたら、「Web Application Firewall」メニューに戻って、すでに構成されているOracle Integrationエンドポイントを保護するWAFポリシーを作成します。これを行うには、「ポリシー」メニューで、「WAFポリシーの作成」をクリックします。

    WAFポリシーの作成

  5. レガシー・ワークフロー・ルールを作成するリンクをクリックします。

    レガシー・ワークフローのリンクをクリックします。

  6. 新しいメニューが開き、要求された情報を正しく入力する必要があります。

    要求された情報を入力します

    ここでは:

    1. Name: ポリシーの名前を入力します。
    2. WAFポリシー・コンパートメント: ポリシーを作成するコンパートメントを選択します。
    3. プライマリ・ドメイン: DNSで作成したインスタンスのFQDN。
    4. オリジン名: WAFが外部ユーザー・アクセスを送信するURLを識別する名前。
    5. URI: Oracle IntegrationインスタンスのFQDN(前述のステップ2.2.2でCNAMEで構成されたものと同じ)。
    6. アイテムを入力したら、「エッジ・ポリシーの作成」をクリックします。新しい画面にポリシーの詳細が表示されます。ポリシー・ステータスが「ACTIVE」になるまで待ちます。

終了するには、WAF保護ルール構成を実行する必要があります。また、WAFインフラストラクチャに属するFQDNにDNS CNAMEを再構成する必要があります。

タスク3.5: OCI WAF保護ルールの構成

  1. エッジ・ポリシーを作成したら、WAFを介してOracle Integrationインスタンスへのアクセスを保護するために、いくつかのパラメータを設定する必要があります。これを行うには、WAFポリシー内で「設定」メニューをクリックし、「一般設定」タブの「編集」をクリックします。

    正しいパラメータの設定

  2. 「HTTPSサポートの有効化」オプションを選択し、ステップ3.3で作成した証明書を選択します。「変更の保存」をクリックします。

    HTTPSサポートの有効化

  3. SSL証明書を使用するようにWAFを構成したら、アクセス制御ポリシーおよび保護ルールを構成できます。これらのルールは、Oracle Integrationコンソールへのアクセスを保護するために必要なセキュリティを提供します。WAF OCIには、構成で最初に使用できる事前定義済のルールがあり、ビジネスのニーズに応じてルールをカスタマイズすることもできます。WAFルールのカスタマイズは、この手順の範囲内ではありません。

    • アクセス・コントロールの作成

      1. アクセス制御を構成するには、「アクセス制御」メニューをクリックし、「アクセス・ルールの追加」をクリックします。

        アクセス制御の構成

      2. アクセス制御構成画面で、項目を正しく入力し、「アクセス・ルールの追加」をクリックします。このチュートリアルでは、ブラジルからのIPアドレスからのみOracle Integrationコンソール・ページへのアクセスを許可するルールを作成します。

        アクセス・ルールの追加

    • 保護ルールの作成

      1. 構成を実行するには、「保護ルール」メニューをクリックし、「ルール」タブをクリックして、必要なポリシーを有効にします。各ルールのサービス・メニューをクリックし、「ブロック」に配置します。

        保護ルールの作成

        • 必要な数のルールを選択します。このチュートリアルでは、デモンストレーションの目的でクロスサイト・スクリプティング(XSS)ルールのみを有効にします。
      2. WAF保護ルールを有効にしたら、「未公開の変更」メニューをクリックし、「すべて公開」をクリックします。

        変更の公開

WAFルールの適用には約10分から15分かかります。

タスク3.6: CNAMEをWAFのFQDNに設定する

WAFの保護ルールを構成したら、それ宛てのすべてのリクエストがWAFに転送され、Oracle Integrationのカスタム・エンドポイントに転送されないように、プライベート・ドメインのCNAMEを変更できます。

  1. これを行うには、「WAFポリシー」ページに移動し、DNSで構成する必要があるCNAMEアドレスをコピーします。

    WAF FQDNをコピーして、独自のDNSゾーンのCNAME構成に貼り付けます

  2. このアドレスをコピーし、ゾーン内のDNSポイントを変更します。DNSを変更したら、次のコマンドを実行して、構成が正しいことを確認します。

    $ dig <oic>.<exampledomain>.com

    digコマンドの例

タスク3.7: Oracle Integrationアプリケーション・ロールの構成

WAFを介してOracle Integrationへのアクセスをテストする前の最後のステップの1つは、Oracle Integrationのアプリケーション・ロールを変更して、ユーザーに正しくアクセス権を付与することです。これがないと、ユーザーはOracle Integrationコンソールにアクセスできなくなります。

  1. OCI Webコンソールで、「ドメイン」をクリックしてアイデンティティ・ドメイン構成にアクセスします。

Oracle Integration構成でのアプリケーション・ロールの変更

ノート:カスタム・アイデンティティ・ドメインを設定していない場合は、デフォルトというドメインを使用します。このチュートリアルでは、デフォルト・ドメインを使用します。

  1. 「ドメイン」ページで、「デフォルト」をクリックします。

    アイデンティティ・ドメインのリンクをクリックします

  2. デフォルトのドメイン・ページ内で、「Oracle Cloud Services」メニューをクリックし、ICOインスタンスのリンクをクリックします。

    「Oracle Cloud Services」リンクをクリックします

  3. インスタンスの構成ページで、「アプリケーション・ロール」メニューをクリックして、Oracle Integrationアプリケーション内の既存のロールを表示します。各ロールでユーザーまたはユーザーのグループを割り当てることができるため、アクセス・プロファイルをOracle Integration環境に詳細に管理できます。

    「アプリケーション・ロール」をクリックします

タスク4: テストと検証

WAFポリシーの適用が完了し、WAFのFQDNを指すようにドメインのCNAMEを構成したら、最終的にすべてが正常に機能していることをテストできます。

  1. ドメインのFQDNを介してエンドポイントのURLにアクセスします。Oracle Integrationコンソール・ページが表示されます。

    Oracle Integration URLに再度アクセスします

  2. WAFによって実行されるフィルタリングを検証するには、ポリシー構成ページにアクセスし、「ログ」メニューをクリックします。

    wafが正しく動作していることを検証します

  3. WAFの操作を検証するために、ブラウザでURLを介して単純なXSS攻撃をテストできます。

    https://<oic>.<exampledomain>.com/ic/home/?default=<script>alert(document.cookie)</script>

    単純なXSS攻撃

  4. 最後に、WAFログにアクセスし、XSS攻撃によって動機付けされた不正アクセスをブロックしているレコードを確認します。

    WAFログの確認

    これで、インターネットで使用可能なOracle Integration環境がOCI WAFによって保護されるようになりました。

この資料を使用する前に、Oracleクラウド環境を管理するためのリファレンス・リンクと公式のドキュメンテーションをお読みください。

謝辞

作成者 - Rodrigo Pace de Barros(Oracle LAD A-Team Cloud Securityソリューション・エンジニア)

その他の学習リソース

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

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