ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
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のプロビジョニングと管理を参照してください。
前提条件
- Oracle Cloudテナンシへのアクセス
- テナンシでのOracle Integrationインスタンスの設定
- テナンシにパブリック・サブネットを持つVCN
- DNSドメインへのCNAMEを持つカスタム・エンドポイント
- SSL証明書
- Oracle Integrationインスタンスのカスタム・エンドポイントを保護するOCI WAFポリシー
タスク1: Oracle Integrationインスタンスの作成
-
Webコンソールを使用して新しいOracle Integrationインスタンスを作成するには、「開発者サービス」メニューに移動し、「統合」をクリックします。
-
「統合インスタンス」画面で、インスタンスが作成されるコンパートメントを選択し、「インスタンスの作成」をクリックします。
-
インスタンスを作成するための画面が表示されます。インスタンス名を入力して、Oracle Integrationバージョン(Gen 2)を選択し、「作成」をクリックします。
ノート:他の項目は、環境のニーズに応じて構成できます。このチュートリアルでは、デフォルト値のままにします。
-
作成が終了すると、インスタンスが使用可能になります。詳細を表示するには、インスタンス名をクリックします。
-
Oracle Integrationインスタンスの機能を検証するには、インスタンスの詳細にアクセスした後、「サービス・コンソール」をクリックします。
-
新しいブラウザ・タブが開き、Oracle Integrationホーム画面にアクセスできます。
タスク2: OCI Vault、DNSおよびSSL証明書の設定
Oracle Integrationインスタンスが作成されたら、インスタンスのカスタム・エンドポイントを作成します。カスタム・エンドポイントでは、プライベート・ドメインを使用してOracle Integrationインタフェースにアクセスできます。次に例を示します。
https://oic-lab.<exampledomain>.com/ic/home
カスタム・エンドポイントを作成するには、次の5つのステップに従います:
- パブリック・サブネットを使用したVCNの作成
- Oracle Integrationエンドポイントを指すカスタムDNSにCNAMEエントリを作成します
- 新規リンクのSSL証明書を作成します(例:
oic.<exampledomain>.com
)。 - 証明書が格納されるOCI Vaultを作成します
- Oracle Integrationインスタンスでのカスタム・エンドポイント構成の実行
タスク2.1: コンパートメントでのVCNおよびパブリック・サブネットの作成
-
VCNを作成するには、OCI Webコンソールのサービス・メニューを開き、「Virtual Cloud Networks」をクリックします。
-
「ネットワーキング」ページ内に入ったら、正しいコンパートメントにいるかどうかを確認し、「VCNウィザードの起動」をクリックします。
-
構築する環境の要件に従ってVCNを作成します。Oracle Integrationでは、パブリック・サブネットを作成してサービス・ゲートウェイを使用できるようにする必要があります(NAT Gateway)。
-
VCNは、Oracle Integrationカスタム・エンドポイントの作成時に使用されます。
重要: VCNのOCIDは、Oracle IntegrationのWAF構成に使用されるため、ノートにとります。
-
タスク2.2: Oracle IntegrationエンドポイントのカスタムDNSでのCNAMEエントリの作成
Oracle Integrationを指すCNAMEエントリを作成するには、ドメインのDNS構成環境にアクセスする必要があります。WAFを構成する際、このCNAMEエントリは変更されますが、Oracle Integrationへのアクセスの転送時に暗号化に使用されるSSL証明書をインポートできるように、この時点で作成することが重要です。
-
OCIコンソールのOracle Integrationサービスのページに戻ります。
-
インスタンスの詳細内で、Oracle Integrationインスタンスのサービス・コンソールにアクセスするためにOCIによって提供されるドメインFQDNをメモします。
- この例では、FQDN
oic-lab-instance-axyjvqi24eaa-gr.integration.ocp.oraclecloud.com
を使用します。
- この例では、FQDN
-
Oracle Integrationカスタム・エンドポイントのFQDNを指すCNAMEをドメインに作成します。
ノート: DNSゾーン・ファイルでCNAMEを構成する方法を示すために、このチュートリアルの範囲にはありません。
-
FQDNを取得したら、自分のドメインのCNAMEを構成します。構成後、コマンド
dig
を使用してCNAMEが正しく構成されていることを確認します。$ dig <oic>.<exampledomain>.com
タスク2.3: 新しいドメインのSSL証明書の作成
CNAMEを作成したら、インスタンスに対して暗号化されたインターネット・トラフィックを有効にするためにSSL証明書を作成する必要があります。このチュートリアルでは、自己署名SSL証明書を作成します。ただし、本番環境では、証明書が有効である必要があります。
-
自己署名証明書を作成するには、まず秘密キーを作成します。
$ openssl genrsa -out oic-lab.key 2048
- その結果、
oic-lab.key
という名前の秘密キーが取得されます。
- その結果、
-
次に、CSR (証明書署名要求)を作成します。
$ openssl req -key oic-lab.key -new -out oic-lab.csr
- 要求された情報を入力して、最後に.csrファイルを取得します。「Common Name」は、チュートリアルで使用するFQDNである必要があることに注意してください。
-
秘密キー(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を作成する必要があります。
-
OCI Vaultを作成するには、OCI Webコンソールの「サービス」メニューにアクセスします。
-
Vault画面がロードされたら、正しいコンパートメントにいるかどうかを確認し、「ボールトの作成」をクリックします。
-
Vaultを正しく作成するための情報を入力し、「Vaultの作成」をクリックします。
-
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>" } ```
- 証明書と鍵のセットを使用してこの形式にするには、いくつかの処理が必要になります。これは、鍵、証明書、パスフレーズのいずれにも改行がないためです。
-
-
次のコマンドを使用して、キーを調整します。
`awk -v RS= '{gsub(/\n+/, "\\n")}1' <seu\_arquivo.key>`
-
この値をコピーし、前述のJSONの例のkeyアイテムに挿入します。ファイル
crt
を使用してプロセスを繰り返します。 -
OCI Webコンソールに戻り、OCI Vaultの「シークレット」メニューをクリックし、「シークレットの作成」をクリックします。
-
フィールドに正しく入力し、「秘密の内容」フィールドに、前述のステップで作成したJSONを挿入します。
- 秘密の作成フォームで必要な情報を入力し、マスター暗号化キーを選択して、「秘密の内容」フィールドにJSONシークレットを貼り付けます。シークレットが作成されたら、Oracle Integrationカスタム・エンドポイントを作成します。
タスク2.5: Oracle Integrationインスタンスのカスタム・エンドポイントの構成
-
Oracle Integrationカスタム・エンドポイントを構成するには、OCI Webコンソールの「統合」ページに戻り、インスタンスにアクセスします。
-
「編集」をクリックします。
-
Oracle Integration設定の編集ページで、「拡張設定の表示」をクリックしてカスタム・エンドポイント構成項目を表示します。
-
構成を続行するには、カスタム・エンドポイントの名前を入力し、Vault内に格納されているSSL証明書を含むシークレットを選択します。最後に、「変更の保存」をクリックします。
- Oracle Integrationインスタンスが「更新中」ステータスに変更されます。再度アクティブになるまで待ちます。
-
インスタンスがACTIVE状態に戻ったら、「サービス・コンソール」をクリックして新しいカスタム・エンドポイントへのアクセスをテストします。
- すべてが正しく構成されている場合は、DNS CNAME (タスク2.2のステップ2)で構成したFQDNを使用してサービス・コンソールが開きます。
-
このチュートリアルでは、自己署名SSL証明書を使用していますが、ブラウザは証明書を検証できないことを示すアラートを発行する必要があります。ただし、カスタム・エンドポイントのFQDNはすでに使用されています。
-
アクセスすると、カスタム・エンドポイントが正しく機能していることを示す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の検索
-
このCIDRは、https://docs.oracle.com/en-us/iaas/tools/public_ip_ranges.jsonから入手できます。このJSONファイルには、インターネットで使用可能なすべてのOCIサービスのCIDRが含まれています。
-
最初に、前述のURLのJSONファイル内でWAF CIDRを検索するには、リージョンを識別する文字列を検索します。サンパウロ地域を使用しているため、参照文字列はsa-saopaulo-1です。
-
別のリージョンを使用している場合は、次のURLにアクセスして、Oracle Integrationをデプロイしている場所を識別する文字列を識別します: リージョンおよび可用性ドメイン
タスク3.2: リージョンのWAF CIDRの検索
-
OCIサービスのパブリック範囲がどこにあるか、およびOCIリソースをインスタンス化するために使用しているリージョン文字列を検索する場所がわかりました。WAF CIDRを見つけるには、OCIからのWAFサービスのIP範囲の完全なリストが必要です。
-
OCIのWAFサービスのパブリックCIDRを含むURLは、エッジ・ポリシーの開始です。
-
Step 6に進みます。WAFの保護および「CIDR範囲」を展開します。
-
OCI WAFサービスの使用可能なすべてのアドレスが表示されます。ここで、前述のタスク3.1で生成したリージョン内のIPについて、「OSN」(Oracle Services Network)エントリを検索して、リージョンに対応するWAF範囲を検索します。
-
このチュートリアルでは、サンパウロ・リージョンIPを使用します。
Oracle Integration許可リストにこれらのレコードを含めることができるように、見つかった住所に注意してください。
タスク3.3: Oracle IntegrationでのAllowListの構成
-
WAF OCIパブリック・アドレスができたので、Oracle Integration内に許可リストを作成しましょう。これを行うには、インスタンス画面に戻り、「ネットワーク・アクセス」メニューをクリックして「編集」をクリックします。
-
前のステップで取得したCIDR、およびタスク2.2.1で作成されたVCNのOCIDに関する情報を入力します。
-
許可リストを構成すると、WAF CIDRのみがコンソールに直接アクセスできます。インターネット経由のその他のアクセスはすべて、WAFを経由する必要があります。
-
これを検証するには、Oracle Integration Serviceコンソールにアクセスしてみてください。すべてが正しく構成されている場合は、ブラウザに403 Forbiddenメッセージが表示されます。
このアクセスを監視および保護できるようにWAFを構成します。
タスク3.4: OCI WAFエッジ・ルールの構成
最初は、Oracle IntegrationコンソールへのセキュアなHTTPSアクセスを提供するために使用されるSSL証明書のレコードを作成するために、WAFでも必要です。
-
OCI Webコンソール・メニューから、「エッジ・ポリシー・リソース」をクリックします。
-
サービス・ページで、「証明書の作成」をクリックします。
-
デジタル証明書を構成するページが開きます。要求された情報を入力し、前述のステップ2.2.3で作成した.crtおよび.keyファイルをアップロードします。
ノート: 作成したSSL証明書は自己署名であるため、「自己署名証明書」オプションが選択されています。有効な証明書を使用する場合は、このオプションの選択を解除する必要があります。
-
証明書が作成されたら、「Web Application Firewall」メニューに戻って、すでに構成されているOracle Integrationエンドポイントを保護するWAFポリシーを作成します。これを行うには、「ポリシー」メニューで、「WAFポリシーの作成」をクリックします。
-
レガシー・ワークフロー・ルールを作成するリンクをクリックします。
-
新しいメニューが開き、要求された情報を正しく入力する必要があります。
ここでは:
- Name: ポリシーの名前を入力します。
- WAFポリシー・コンパートメント: ポリシーを作成するコンパートメントを選択します。
- プライマリ・ドメイン: DNSで作成したインスタンスのFQDN。
- オリジン名: WAFが外部ユーザー・アクセスを送信するURLを識別する名前。
- URI: Oracle IntegrationインスタンスのFQDN(前述のステップ2.2.2でCNAMEで構成されたものと同じ)。
- アイテムを入力したら、「エッジ・ポリシーの作成」をクリックします。新しい画面にポリシーの詳細が表示されます。ポリシー・ステータスが「ACTIVE」になるまで待ちます。
終了するには、WAF保護ルール構成を実行する必要があります。また、WAFインフラストラクチャに属するFQDNにDNS CNAMEを再構成する必要があります。
タスク3.5: OCI WAF保護ルールの構成
-
エッジ・ポリシーを作成したら、WAFを介してOracle Integrationインスタンスへのアクセスを保護するために、いくつかのパラメータを設定する必要があります。これを行うには、WAFポリシー内で「設定」メニューをクリックし、「一般設定」タブの「編集」をクリックします。
-
「HTTPSサポートの有効化」オプションを選択し、ステップ3.3で作成した証明書を選択します。「変更の保存」をクリックします。
-
SSL証明書を使用するようにWAFを構成したら、アクセス制御ポリシーおよび保護ルールを構成できます。これらのルールは、Oracle Integrationコンソールへのアクセスを保護するために必要なセキュリティを提供します。WAF OCIには、構成で最初に使用できる事前定義済のルールがあり、ビジネスのニーズに応じてルールをカスタマイズすることもできます。WAFルールのカスタマイズは、この手順の範囲内ではありません。
-
アクセス・コントロールの作成
-
アクセス制御を構成するには、「アクセス制御」メニューをクリックし、「アクセス・ルールの追加」をクリックします。
-
アクセス制御構成画面で、項目を正しく入力し、「アクセス・ルールの追加」をクリックします。このチュートリアルでは、ブラジルからのIPアドレスからのみOracle Integrationコンソール・ページへのアクセスを許可するルールを作成します。
-
-
保護ルールの作成
-
構成を実行するには、「保護ルール」メニューをクリックし、「ルール」タブをクリックして、必要なポリシーを有効にします。各ルールのサービス・メニューをクリックし、「ブロック」に配置します。
- 必要な数のルールを選択します。このチュートリアルでは、デモンストレーションの目的でクロスサイト・スクリプティング(XSS)ルールのみを有効にします。
-
WAF保護ルールを有効にしたら、「未公開の変更」メニューをクリックし、「すべて公開」をクリックします。
-
-
WAFルールの適用には約10分から15分かかります。
タスク3.6: CNAMEをWAFのFQDNに設定する
WAFの保護ルールを構成したら、それ宛てのすべてのリクエストがWAFに転送され、Oracle Integrationのカスタム・エンドポイントに転送されないように、プライベート・ドメインのCNAMEを変更できます。
-
これを行うには、「WAFポリシー」ページに移動し、DNSで構成する必要があるCNAMEアドレスをコピーします。
-
このアドレスをコピーし、ゾーン内のDNSポイントを変更します。DNSを変更したら、次のコマンドを実行して、構成が正しいことを確認します。
$ dig <oic>.<exampledomain>.com
タスク3.7: Oracle Integrationアプリケーション・ロールの構成
WAFを介してOracle Integrationへのアクセスをテストする前の最後のステップの1つは、Oracle Integrationのアプリケーション・ロールを変更して、ユーザーに正しくアクセス権を付与することです。これがないと、ユーザーはOracle Integrationコンソールにアクセスできなくなります。
- OCI Webコンソールで、「ドメイン」をクリックしてアイデンティティ・ドメイン構成にアクセスします。
ノート:カスタム・アイデンティティ・ドメインを設定していない場合は、デフォルトというドメインを使用します。このチュートリアルでは、デフォルト・ドメインを使用します。
-
「ドメイン」ページで、「デフォルト」をクリックします。
-
デフォルトのドメイン・ページ内で、「Oracle Cloud Services」メニューをクリックし、ICOインスタンスのリンクをクリックします。
-
インスタンスの構成ページで、「アプリケーション・ロール」メニューをクリックして、Oracle Integrationアプリケーション内の既存のロールを表示します。各ロールでユーザーまたはユーザーのグループを割り当てることができるため、アクセス・プロファイルをOracle Integration環境に詳細に管理できます。
タスク4: テストと検証
WAFポリシーの適用が完了し、WAFのFQDNを指すようにドメインのCNAMEを構成したら、最終的にすべてが正常に機能していることをテストできます。
-
ドメインのFQDNを介してエンドポイントのURLにアクセスします。Oracle Integrationコンソール・ページが表示されます。
-
WAFによって実行されるフィルタリングを検証するには、ポリシー構成ページにアクセスし、「ログ」メニューをクリックします。
-
WAFの操作を検証するために、ブラウザでURLを介して単純なXSS攻撃をテストできます。
https://<oic>.<exampledomain>.com/ic/home/?default=<script>alert(document.cookie)</script>
-
最後に、WAFログにアクセスし、XSS攻撃によって動機付けされた不正アクセスをブロックしているレコードを確認します。
これで、インターネットで使用可能な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を参照してください。
Configure and protect an Oracle Integration (Process) custom endpoint with OCI WAF
F80991-01
May 2023
Copyright © 2023, Oracle and/or its affiliates.