ネットワーク・トラフィックの復号化および検査の設定

ネットワーク・トラフィックの復号化と検査のための証明書認証およびボールト・シークレットを設定します。

Vaultシークレットは、SSL/TLSトラフィックの復号化と検査に使用されます。

SSLインバウンド検査は、クライアントからターゲット指定のネットワーク・サーバーへのインバウンドSSL/TLSトラフィックを復号化および検査します。SSLインバウンド検証の詳細は、「SSLインバウンド検証」を参照してください。

SSL転送プロキシは、内部ユーザーからWebへのSSL/TLSトラフィックを復号化および検査します。ファイアウォール・ポリシーごとに許可されるSSL転送プロキシ・シークレットは1つのみです。SSL転送プロキシの詳細は、「SSL転送プロキシ」を参照してください。

ファイアウォール・ポリシーを作成したら、マップされたシークレットを作成して、VaultシークレットをインバウンドまたはアウトバウンドSSLキーにマップします。次に、暗号化プロファイルを作成して、SSL転送プロキシとSSLインバウンド検証でセッション・モードのチェック、サーバーのチェックおよび失敗のチェックがどのように実行されるかを制御します。

証明書をファイアウォール・ポリシーとともに使用する方法の詳細は、「マップされたシークレットおよび復号化プロファイル」を参照してください。

タスク1: ネットワーク・ファイアウォール・サービスによるボールト・シークレットへのアクセスを許可する

ファイアウォール・ポリシーがVaultシークレットにアクセスして使用できるようにするIAMポリシーを作成します。

すべてのファイアウォール・ポリシーがVaultサービス・シークレットにアクセスできるようにするには:
Allow any-user to read secret-family in compartment <compartment_ID> where ALL {request.principal.type='networkfirewallpolicy'} 
1つのファイアウォール・ポリシーがVaultサービス・シークレットにアクセスできるようにするには:
Allow any-user to read secret-family in compartment <compartment_ID> where ALL {request.principal.type='networkfirewallpolicy', request.principal.id='<Network Firewall Policy OCID>'}
警告

この権限が後で取り消された場合、サービスはマップされたシークレットにアクセスできないため、ファイアウォールはトラフィックの復号を停止します。

次のポリシーは、Vaultシークレットにアクセスするために非推奨のポリシーを置き換えます。

allow service ngfw-sp-prod to read secret-family in compartment <compartment_name> 
タスク2: 証明書を格納するボールトおよびマスター・キーを作成する
  1. 証明書を格納するボールトを作成します
  2. ボールトにマスター暗号化キーを作成します。
    重要

    マスター・キーは対称キーである必要があります。非対称キーではシークレットを暗号化できません。
タスク3: 証明書を格納する

OCIネットワーク・ファイアウォール・サービスでは、自己署名証明書またはCA署名証明書を使用できます。

Oracleでは、自己署名証明書の生成に使用できるスクリプトを提供しています。
重要

  • ネットワーク・ファイアウォール・サービスは、指定された証明書を検証し、それをtrustrootに格納します。証明書を検証するには、中間証明書のルート証明書および秘密キーを含む、SSL証明書チェーン全体を指定します。次の.jsonテンプレートにラップされている証明書を.pem形式でアップロードします。
  • "certKeyPair"で指定されたリーフ証明書がフォワード・トラスト証明書の場合は、認証局署名機能が必要です。CAフラグを"true"に設定します。

    この例では、"LEAF_CERT_01_PEM_CONTENT"がフォワード・トラスト証明書の場合、そのCAフラグを"true"に設定する必要があります。
    {
      "caCertOrderedList" : [
        "ROOT_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT01_PEM_CONTENT",
        "INTERMEDIATE_CERT02_PEM_CONTENT",
      ],
      "certKeyPair": {
        "cert" : "LEAF_CERT_01_PEM_CONTENT",
        "key":   "PRIVATE_KEY_01_PEM_CONTENT"
      }
    }
自己署名OpenSSL証明書を使用するには、Oracle提供のスクリプトを使用して作成できます:
  1. OpenSSLをダウンロードしてインストールします。
  2. Perlをダウンロードしてインストールします。
  3. Oracle GitHubリポジトリからスクリプトをダウンロードします。
  4. 次のコマンドを使用してスクリプトを実行します。<test.test.com>を、保護する必要があるWebサーバーのDNS名に置き換えます:
    ./create-certificate inbound <test.test.com>
    または
    ./create-certificate forward <test.test.com>
タスク4: ボールトにシークレットを作成する

使用する証明書ごとに、ボールトにシークレットを作成します。

  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」に移動して、「Vault」を選択します。
  2. 「リスト範囲」「コンパートメント」リストで、コンパートメントを選択します。
  3. 「タスク2: 証明書を格納するボールトおよびマスター・キーを作成する」で作成したボールトを選択します。

  4. 「シークレット」を選択し、「シークレットの作成」を選択します。
  5. 「Create Secret」ダイアログ・ボックスで、「Create in Compartment」リストからコンパートメントを選択します。(シークレットは、ボールトが含まれるコンパートメントの外部に存在できます。)
  6. 「名前」を選択し、名前を入力します。シークレットに含まれる証明書のタイプに対応する名前を使用します。たとえば、"ssl-inbound-inspection-certificate"です。
  7. 「説明」を選択し、説明を入力します。
  8. 「タスク2: 証明書を格納するボールトおよびマスター・キーを作成する」で作成したマスター暗号化キーを選択します。
  9. シークレット・コンテンツの形式をプレーン・テキストとして指定します。
  10. 「シークレット・コンテンツ」を選択し、証明書の内容をフィールドにコピーします。(シークレット・バンドルに許容される最大サイズは25KBです。)
  11. 「シークレットの作成」を選択します。