接続モードでの Flex Gateway の TLS コンテキストの設定

Transport Layer Security (TLS) ポリシーは暗号化を使用して、クライアント、API インスタンス、およびアップストリームサービス間の通信を保護します。​シークレットグループを作成​したら、TLS コンテキストまたは相互認証 TLS (mTLS) コンテキストを追加し、その TLS コンテキストを API Manager で API インスタンスに適用して、インバウンドトラフィックとアウトバウンドトラフィックを暗号化できます。

TLS コンテキストを追加するときに、TLS コンテキストで使用する暗号化を選択し、異なるインバウンドおよびアウトバウンド検証設定を定義することもできます。

Flex Gateway の接続モードで HTTPS API を設定するときに、シークレットマネージャーに保存した TLS コンテキストを使用できます。

Flex Gateway では以下がサポートされます。

  • クライアントと API インスタンス (HTTPS) 間の通常の TLS (インバウンド TLS と呼ばれる)

  • API インスタンスとアップストリームサービス間の通常の TLS (アウトバウンド TLS と呼ばれる)

  • インバウンド方向とアウトバウンド方向の両方での相互認証 TLS (mTLS)

Flex Gateway は、ポートレベルでインバウンド TLS を実装します。つまり、API インスタンスに適用されるインバウンド TLS コンテキストは、同じポートを共有する他のすべてのインスタンスにも適用されます。TLS コンテキストがポート間で共有される方法についての詳細は、​「共有ポートに適用されるインバウンド TLS コンテキスト」​を参照してください。

ポート共有はアウトバウンド TLS では懸念になりません。アップストリームサービスごとにアウトバウンド TLS コンテキストを選択できます。

始める前に

Flex Gateway 接続モードの TLS コンテキストを設定する前に、次のタスクを完了してください。

TLS 設定オプション

インバウンド方向とアウトバウンド方向の両方で通常の TLS および mTLS をサポートするように TLS コンテキストを設定できます。必要な設定に応じて、異なる証明書ファイルをシークレットグループに追加し、異なる TLS コンテキスト設定オプションを選択する必要があります。

「TLS コンテキストを追加する」​ステップで必要な TLS コンテキスト設定については、次の相互参照テーブルを参照してください。

パラメーター インバウンド TLS インバウンド mTLS アウトバウンド TLS アウトバウンド mTLS

Keystore (キーストア)

必須

必須

未使用

必須

Truststore (トラストストア)

未使用

必須

[Skip server certificate validation (サーバー証明書の検証をスキップ)] が選択されていない場合は必須

アップストリーム証明書を検証する場合は必須

Validate Client certificate (クライアント証明書を検証)

未選択

選択

未使用

未使用

Skip server certificate validation (サーバー証明書の検証をスキップ)

未使用

未使用

両方

未選択

設定のパラメーターが「未使用」の場合、その状況は設定に影響しないことを意味します。

設定を簡素化するために、API インスタンスの異なるトラフィック方向に対して異なる TLS コンテキストを作成できます。ただし、同じ TLS コンテキストを使用して異なるトラフィック方向をサポートすることもできますが、同じコンテキストを使用して同じ方向の TLS と mTLS をサポートすることはできません。異なる方向に同じ TLS コンテキストを使用する場合は、両方向に必要なパラメーターを含めてください。

Flex Gateway の TLS コンテキストを追加する

TLS コンテキストをシークレットグループに追加するには、名前、対象、バージョン、キーストアまたはトラストストアを指定する必要があります。必要に応じて、コンテキストの有効期限と ALPN プロトコルを追加し、インバウンド設定とアウトバウンド設定を定義できます。

現在 API インスタンスに適用されている TLS コンテキストを含むシークレットグループを編集する場合は、API インスタンスを再デプロイして変更を適用する必要があります。変更の影響を受けるすべてのインスタンスを個別に再デプロイする必要があります。API インスタンスを再デプロイするには、​「API インスタンスを再デプロイする」​を参照してください。

TLS コンテキストを追加する手順は、次のとおりです。

  1. [Anypoint Platform] > [Secrets Manager (シークレットマネージャー)]​ に移動します。

  2. シークレットグループがダウンロード可能であることを確認します。これにより、TLS コンテキストを API インスタンスに適用できるようになります。

    シークレットグループがダウンロード可能であることを確認する手順は、次のとおりです。

    1. シークレットグループの名前の横にある鉛筆アイコンをクリックします。

    2. [Secret Group Downloadable (シークレットグループをダウンロード可能)]​ が選択されている場合は、​[Cancel (キャンセル)]​ をクリックします。

    3. [Secret Group Downloadable (シークレットグループをダウンロード可能)]​ が選択されていない場合は、それを選択して ​[Save (保存)]​ をクリックします。

  3. [Secret Groups (シークレットグループ)]​ リストビューで、シークレットグループの ​[Edit (編集)]​ ボタンをクリックして TLS コンテキストを追加します。

  4. 左側のメニューで ​[TLS Context (TLS コンテキスト)]​ を選択し、​[Add TLS Context (TLS コンテキストを追加)]​ をクリックします。

  5. [Create TLS Context (TLS コンテキストを作成)] 画面で、必要な情報を追加します。

    • Name (名前)
      TLS コンテキストの名前を入力します。

    • Target (対象)
      [Flex Gateway]​ を選択し、TLS コンテキストを Flex Gateway API の SSL 検証として使用します。

    • [Min TLS Version (最小 TLS バージョン)]​ と ​[Max TLS Version (最大 TLS バージョン)]
      デフォルトでは、サポートされる最小バージョンと最大バージョンとして TLS 1.3 と TLS 1.3 が選択されます。異なる最小バージョンと最大バージョンのサポートを選択したり、最小と最大両方に同じバージョンを選択して単一バージョンのサポートを選択したりできます。

    • Keystore (キーストア)
      設定に必要な場合は、TLS コンテキストに保存するキーストアをドロップダウンリストから選択します。PEM 種別のキーストアのみが表示されます。キーストアには、Flex Gateway がインバウンド TLS とアウトバウンド TLS の両方に対してリモートパーティに提示する証明書が含まれます。

      セキュリティ標準に準拠するには、すべての証明書が 2048 ビット以上である必要があります。

    • Truststore (トラストストア)
      設定に必要な場合は、クライアントによって信頼される証明書を保存するトラストストアをドロップダウンリストから選択します。PEM 種別のトラストストアのみが表示されます。トラストストアには、Flex がインバウンド TLS とアウトバウンド TLS の両方のリモートパーティ証明書を検証するために使用する CA パスが含まれます。

      アップストリーム証明書にはサブジェクト代替名 (SAN) 拡張機能を含める必要があります。共通名 (CN) 項目は非推奨です。

      Flex Gateway では、​dNSName​ 種別の SAN 拡張機能がサポートされます。

    • Expiration Date (有効期限)
      必要に応じて、TLS コンテキストの有効期限を入力します。

    • ALPN Protocols (ALPN プロトコル)
      デフォルトでは、​H2 - HTTP/1.1​ が ALPN プロトコルとして選択されます。異なるプロトコルをサポートするには、この値を変更します。

    • Inbound Settings (インバウンド設定)
      インバウンドトラフィックで mTLS をサポートする場合は、​[Validate Client certificate (クライアント証明書を検証)]​ を選択します。

    • Outbound Settings (アウトバウンド設定)
      アウトバウンドトラフィックで mTLS をサポートしない場合は、​[Skip server certificate validation (サーバー証明書の検証をスキップ)]​ を選択します。

  6. TLS コンテキストの暗号化サポートをカスタマイズする場合は、​暗号化を選択します​。

    TLS バージョン 1.3 のみをサポートしている場合、暗号化は選択できません。

  7. [Save (保存)]​ をクリックします。

TLS コンテキストを API に適用する

新しいインスタンスの作成時に、または既存のインスタンスを編集して、TLS コンテキストを API インスタンスに適用できます。

API インスタンス設定にはダウンストリーム設定とアップストリーム設定の 2 つの部分があります。インバウンド TLS コンテキストはダウンストリーム設定オプションで、アウトバウンド TLS コンテキストはアップストリーム設定オプションです。新しい API インスタンスを追加する場合は、ダウンストリーム設定とアップストリーム設定は別々のページに配置されます。API インスタンスを編集する場合は、ダウンストリーム設定オプションとアップストリーム設定オプションは同じページに表示されますが、別のセクションに配置されます。

それぞれのオプションについては、関連するチュートリアルを参照してください。

TLS コンテキストを適用する手順は、次のとおりです。

  1. [Anypoint Platform] > [API Manager]​ に移動します。

  2. 次のいずれかへ移動します。

    • 新しい API インスタンスを追加する場合は、アップストリームまたはダウンストリーム設定ページ。

    • 既存の API インスタンスを編集する場合は、​[Settings (設定)]​ ページ。

  3. インバウンド TLS コンテキストを設定する場合は、​[Protocol (プロトコル)]​ 設定項目の ​[HTTPS]​ を選択します。

  4. [Add TLS Context (TLS コンテキストを追加)]​ をクリックします。

    1. [Secret Group (シークレットグループ)]​ を選択します。

    2. [TLS Context (TLS コンテキスト)]​ を選択します。

    3. [Ok]​ をクリックします。

  5. API インスタンスの作成を完了するか、設定の編集を保存します。

共有ポートに適用されるインバウンド TLS コンテキスト

インバウンド TLS コンテキストを適用するにはポートに API インスタンスが必要ですが、インバウンド TLS コンテキストは API インスタンスではなくポートに適用されます。

ポートを他のインスタンスと共有する API インスタンスにインバウンド TLS コンテキストを適用すると、ポートを共有するすべてのインスタンスにインバウンド TLS コンテキストが適用されます。

ポートを共有する API インスタンスのインバウンド TLS コンテキストを適用、編集、または削除すると、ポートを共有するインスタンスのリストと共に警告が API Manager に表示されます。その後、リストされた API インスタンスのインバウンド TLS コンテキストの上書きを選択できます。ポートを共有する API インスタンスの TLS コンテキストを上書きすると、インバウンド TLS コンテキストがインスタンスに適用され、インスタンスが再デプロイされます。

デプロイされた API インスタンスのインバウンド TLS コンテキストを上書きすると、インスタンスが再デプロイされます。再デプロイすると、API インスタンスで短期間のダウンタイムが発生します。

以前にポートおよびインバウンド TLS コンテキストを他のインスタンスと共有していた API インスタンスのポートを編集した場合、インバウンド TLS コンテキストは以前のポートのインスタンスに適用されたままになります。

シークレットグループを編集して API インスタンスを再デプロイする

シークレットグループを編集するには、​「シークレットグループを編集する」​を参照してください。

現在 API インスタンスに適用されているシークレットグループを編集し、その変更を API インスタンスに適用する場合は、変更が影響するすべてのインスタンスを個別に再デプロイする必要があります。

API インスタンスを再デプロイする手順は、次のとおりです。

  1. [Anypoint Platform] > [API Manager]​ に移動します。

  2. 再デプロイする API インスタンスの名前をクリックします。

  3. [Runtime & Endpoint Configuration (ランタイムとエンドポイント設定)] > [Save & Apply (保存して適用)]​ をクリックします。

暗号化の選択

TLS コンテキストを設定すると、シークレットマネージャーによって、選択した TLS バージョンに基づいてデフォルトの暗号化が適用されます。デフォルトに加えて、選択した TLS バージョンで使用する他の暗号化を選択できます。各 TLS コンテキストに複数の暗号化を含めることができます。

暗号化を選択する手順は、次のとおりです。

  1. [Ciphers (暗号化)]​ をクリックして使用可能な暗号化を表示します。

  2. 暗号化を選択します。

    TLS バージョン 1.3 のみをサポートしている場合、暗号化は選択できません。

  3. [Save (保存)]​ をクリックします。

Flex Gateway での TLS 暗号化のサポート

Flex は、TLS 1.1 ~ TLS 1.3 の範囲の TLS バージョンをサポートでき、サポートする暗号化の一部をカスタマイズすることもできます。

TLS 1.3 暗号化のリストをカスタマイズすることはできません。TLS 1.3 をサポートする場合は、TLS 1.3 のデフォルトの暗号化をサポートする必要があります。

TLS 1.2 をサポートする場合は、TLS 1.2 のデフォルトの暗号化が選択されます。ただし、TLS 1.3 とは異なり、さまざまな TLS 1.2 暗号化をカスタマイズできます。

TLS 1.1 にはデフォルトの暗号化がありません。TLS 1.1 をサポートすることを選択した場合は、サポートする暗号化を選択する必要があります。

アウトバウンド TLS コンテキストの場合、選択した暗号化とバージョンが API アップストリームでサポートされることを確認してください。

Flex Gateway でサポートされる暗号化

Flex Gateway では、接続モードとローカルモードで次の TLS 暗号化がサポートされます。

暗号化 TLS バージョン デフォルト アドバイス

TLS AES 128 GCM SHA256

1.3

はい

セキュア

TLS AES 256 GCM SHA384

1.3

はい

セキュア

TLS CHACHA20 POLY1305 SHA256

1.3

はい

セキュア

TLS ECDHE ECDSA WITH AES 128 GCM SHA256

1.2

はい

推奨

TLS ECDHE ECDSA WITH AES 256 GCM SHA384

1.2

はい

推奨

TLS ECDHE ECDSA WITH CHACHA20 POLY1305 SHA256

1.2

はい

推奨

TLS ECDHE PSK WITH CHACHA20 POLY1305 SHA256

1.2

いいえ

推奨

TLS ECDHE RSA WITH AES 128 GCM SHA256

1.2

はい

セキュア

TLS ECDHE RSA WITH AES 256 GCM SHA384

1.2

はい

セキュア

TLS ECDHE RSA WITH CHACHA20 POLY1305 SHA256

1.2

はい

セキュア

TLS RSA WITH AES 128 GCM SHA256

1.2

いいえ

脆弱

TLS RSA WITH AES 256 GCM SHA384

1.2

いいえ

脆弱

TLS RSA WITH NULL SHA

1.1、1.2

いいえ

非セキュア

TLS RSA WITH AES 128 CBC SHA

1.1、1.2

いいえ

脆弱

TLS RSA WITH AES 256 CBC SHA

1.1、1.2

いいえ

脆弱

TLS PSK WITH AES 128 CBC SHA

1.1、1.2

いいえ

脆弱

TLS PSK WITH AES 256 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE ECDSA WITH AES 128 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE ECDSA WITH AES 256 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE RSA WITH AES 128 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE RSA WITH AES 256 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE PSK WITH AES 128 CBC SHA

1.1、1.2

いいえ

脆弱

TLS ECDHE PSK WITH AES 256 CBC SHA

1.1、1.2

いいえ

脆弱

TLS RSA WITH 3DES EDE CBC SHA

1.1

いいえ

脆弱