ネットワーク・トラフィックの復号化および検査の設定
TLSトラフィックの復号化および検査に必要な証明書および秘密キーをインストールします。
Vaultシークレットは、SSL/TLSトラフィックの復号化と検査に使用されます。
- SSLインバウンド検査は、クライアントからターゲット・ネットワーク・サーバーへのインバウンドSSL/TLSトラフィックを復号化および検査します。SSLインバウンド検査の詳細については、SSL Inbound Inspectionを参照してください。
- SSL転送プロキシは、内部ユーザーからWebへのSSL/TLSトラフィックを復号化および検査します。ファイアウォール・ポリシーごとに許可されるSSL転送プロキシ・シークレットは1つのみです。SSL転送プロキシの詳細は、「SSL転送プロキシ」を参照してください。
ファイアウォール・ポリシーを作成したら、マップされたシークレットを作成して、VaultシークレットをインバウンドまたはアウトバウンドSSLキーにマップします。次に、暗号化プロファイルを作成して、SSL転送プロキシとSSLインバウンド検証でセッション・モードのチェック、サーバーのチェックおよび失敗のチェックがどのように実行されるかを制御します。
証明書をファイアウォール・ポリシーとともに使用する方法の詳細は、ファイアウォール・ポリシーの作成と管理を参照してください。
タスク1: ネットワーク・ファイアウォール・サービスがVaultシークレットにアクセスすることを許可する
ファイアウォール・ポリシーが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: 証明書を格納するボールトおよびマスター・キーを作成する
- 証明書を格納するボールトを作成します。
- ボールトにマスター暗号化キーを作成します。重要
マスター・キーは対称キーである必要があります。非対称キーではシークレットを暗号化できません。
タスク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提供のスクリプトを使用して作成できます:
- OpenSSLをダウンロードしてインストールします。
- Perlをダウンロードしてインストールします。
- Oracle GitHubリポジトリからスクリプトをダウンロードします。
- 次のコマンドを使用してスクリプトを実行します。<test.test.com>を、保護する必要があるWebサーバーのDNS名に置き換えます:
または./create-certificate inbound <test.test.com>./create-certificate forward <test.test.com>
タスク4: ボールトにシークレットを作成する
使用する証明書ごとに、ボールトにシークレットを作成します。
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」に移動して、「シークレット管理」を選択します。
- 「シークレットの作成」を選択します。
- 「シークレットの作成」ページで、シークレットを作成するコンパートメントを選択します。(シークレットは、ボールトが含まれるコンパートメントの外部に存在できます。)
- シークレットに含まれる証明書のタイプに対応する名前を入力します。たとえば、「ssl-inbound-inspection-certificate」です。
- 説明を入力します(オプション)。
- 「タスク2: 証明書を格納するボールトおよびマスター・キーを作成する」で作成したボールトをクリックします。必要に応じてボールト・コンパートメントを変更します。
- 「タスク2: 証明書を格納するボールトとマスター・キーを作成する」で作成した、マスター暗号化キーを選択してください。必要に応じて、暗号化キー・コンパートメントを変更します。
- シークレット・コンテンツの形式をプレーン・テキストとして指定します。
- 証明書の内容を「シークレットの内容」ボックスにコピーします。(シークレット・バンドルに許容される最大サイズは25KBです。)
- 「シークレットの作成」を選択します。
ノート
マスクされたデータを含む作成されたシークレットのコンテンツの例:
マスクされたデータを含む作成されたシークレットのコンテンツの例:
{
"caCertOrderedList" : [
"-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----",
"-----BEGIN CERTIFICATE-----\nxxxxxxxxxxx\n-----END CERTIFICATE-----"
],
"certKeyPair": {
"cert" : "-----BEGIN CERTIFICATE-----\nnxxxxxxxxxxx\n-----END CERTIFICATE-----",
"key": "-----BEGIN RSA PRIVATE KEY-----\this-is-not-the-secret\n-----END RSA PRIVATE KEY-----"
}
}