HTTPS API プロキシの構築

API Manager 2.x を使用すると、シークレットグループに保存したシークレットを使用して、CloudHub またはハイブリッドデプロイメント用の HTTPS ベースの API を構築できます。 インバウンドおよびアウトバウンドトラフィックの TLS コンテキストを設定することで、トラフィックのセキュリティを確保できます。

シークレットマネージャーインテグレーションは、CloudHub、ハイブリッド、およびスタンドアロンのデプロイメント上で Mule 4 を実行する API プロキシでのみサポートされます。 TLS コンテキストでサポートされるキーストアは JCEKS、PKCS12、および JKS です。

Mule 3 または Runtime Fabric デプロイメント対象で HTTPS プロキシを構築する場合は、​「HTTPS サービスの構築」​を参照してください。

始める前に

シークレットグループに保存されたシークレットを使用して HTTPS API プロキシを設定するには、次の要件を満たす必要があります。

  • Anypoint Platform 管理者に以下の権限を要求してある:

    • シークレットマネージャー権限
      API プロキシ用の既存の TLS コンテキストを設定するには、「​シークレットメタデータの読み取り​」権限が必要です。 詳細は、​「シークレットマネージャー権限」​リファレンスを参照してください。

    • API Manager の権限
      API Manager で TLS コンテキストを API プロキシに適用するには、​「Manage API Configuration (API 設定の管理)」​権限が必要です。 詳細は、「製品別の権限」ページの​「API Manager」​のセクションを参照してください。

  • シークレットグループを作成してある

    [Secret Group Downloadable (シークレットグループをダウンロード可能)]​ チェックボックスをオンにします。

  • TLS コンテキストを追加してある

    TLS コンテキストの対象を ​[Mule]​ に設定します。

HTTPS API プロキシを設定する

HTTPS API プロキシを設定するには、以下の手順を完了します。

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

  2. [API Administration (API 管理)]​ で、​[Add API (API を追加)]​ をクリックし、​[Add new API (新しい API を追加)]​ をクリックします。

  3. ランタイムとして ​[Mule Gateway (Mule ゲートウェイ)]​ を選択します。

  4. [Proxy type (プロキシ種別)]​ で ​[Deploy a proxy application (プロキシアプリケーションをデプロイ)]​ を選択します。

  5. プロキシアプリケーションのデプロイを選択した場合は、以下のオプションから​対象種別​を選択します。

    • CloudHub 2.0​: コンテナベースのクラウドインフラストラクチャで MuleSoft によってホストされている Mule Runtime を使用する場合は、このオプションを選択します。CloudHub 2.0 プロキシには、デフォルトで 0.1 vCore の CPU が含まれています。

      1. スペースを選択します。

        スペースについての詳細は、​『共有スペース』 and 『非公開スペース』​を参照してください。

      2. [Runtime Version (ランタイムバージョン)]​ で、次の操作を実行します。

        1. [Runtime Channel (ランタイムチャネル)]​ を選択します。

        2. Mule Runtime の ​[Version (バージョン)]​ を選択します。

        3. [Java version (Java バージョン)]​ を選択します。

      3. [Proxy app name (プロキシアプリケーション名)]​ を入力します。

    • CloudHub:​ MuleSoft によってクラウドでホストされている Mule Runtime を使用する場合は、このオプションを選択します。CloudHub プロキシには、デフォルトで 0.1 vCore の CPU と 500 MB のメモリが含まれています。

      1. [Runtime Version (ランタイムバージョン)]​ で、次の操作を実行します。

        1. [Runtime Channel (ランタイムチャネル)]​ を選択します。

        2. Mule Runtime の ​[Version (バージョン)]​ を選択します。

        3. [Java version (Java バージョン)]​ を選択します。

      2. [Proxy app name (プロキシアプリケーション名)]​ を入力します。

    • Hybrid (ハイブリッド):​ Runtime Manager に登録されているオンプレミスサーバーで実行される Mule Runtime インスタンスを使用する場合、このオプションを選択します。

      詳細は、​「Runtime Manager でのサーバーの登録」​を参照してください。

      1. リストから接続先を選択するか、​[Add server (サーバーを追加)]​ をクリックします。

      2. [Proxy app name (プロキシアプリケーション名)]​ を入力します。

    • Self-managed Server (自己管理型サーバー):​ JAR ファイルを作成して、Runtime Manager に登録されていないオンプレミスサーバーで実行される Mule Runtime インスタンスに API プロキシをデプロイする場合、このオプションを選択します。詳細は、『On-Premises Deployment Model』を参照してください。

API Manager で API プロキシを自己管理型サーバーにデプロイしても、プロキシはオンプレミスサーバーにデプロイされません。API Manager でプロキシをデプロイした後に、プロキシをオンプレミスサーバーにデプロイします。 . 『新しい API プロキシ JAR ファイルをダウンロードします』​。 . 『JAR ファイルをオンプレミスサーバーにデプロイします』​。

  • Runtime Fabric:​ Runtime Fabric で管理された Mule Runtime Engine に API プロキシをデプロイする場合、[Runtime Fabric] を選択します。 詳細は、​「Runtime Fabric への API プロキシのデプロイ」​を参照してください。

    1. リストから対象を選択します。

    2. [Runtime Version (ランタイムバージョン)]​ で、次の操作を実行します。

      1. [Runtime Channel (ランタイムチャネル)]​ を選択します。

      2. Mule Runtime の ​[Version (バージョン)]​ を選択します。

      3. [Java version (Java バージョン)]​ を選択します。

    3. [Proxy app name (プロキシアプリケーション名)]​ を入力します。

      1. 以下のオプションから API を選択します。

  • 管理する API を Exchange を介して共有している場合、​[Select API from Exchange (Exchange から API を選択)]​ をクリックします。

    1. [Select API (API を選択)]​ の下のリストから API をクリックします。必要に応じて、特定の API を検索できます。

    2. 最新バージョンを使用していない場合は、​[Asset type (アセットタイプ)]​、​[API version (API バージョン)]​、および ​[Asset version (アセットバージョン)]​ を更新します。

      Exchange でのバージョンについての詳細は、『アセットバージョン』を参照してください。

    3. [RAML/OAS]​ アセットタイプを選択した場合は、API の ​[Conformance Status (準拠状況)]​ を表示して、API が準拠していることを確認します。​[Conformance Status (準拠状況)]​ が非準拠の場合、デプロイ後に​ガバナンスレポート​を表示して、準拠の問題を見つけて修正します。​ガバナンスレポート​についての詳細は、『API インスタンスの管理』を参照してください。

  • [Create new API (新しい API を作成)]​ をクリックします。

    1. 新しい API アセットの​名前​を入力します。

    2. 以下のオプションから​アセットタイプ​を選択します。

      • REST API:​ アセットに含める RAML または OAS API 定義ファイルがある場合は、このオプションを選択します。

        REST API の RAML または OAS ファイルをアップロードします。バージョン 2.0.0 以降ではネイティブ OAS サポートが追加されるので、OAS または RAML 仕様に推奨されるバージョンです。OAS API 仕様を API プロキシバージョン 1.0 以前にアップロードすると、API 仕様は RAML に変換されます。

      • HTTP API:​ アセットに含める API 定義ファイルがない場合は、このオプションを選択します。

      • SOAP API:​ WSDL API 定義ファイルまたはファイルへの外部リンクがある場合は、このオプションを選択します。

        SOAP API の WSDL ファイルをアップロードするか、ファイルへのリンクを追加します。
        このオプションは、現時点では Flex Gateway ランタイムでは使用できません。

    3. 最新バージョンを使用していない場合は、​[Asset type (アセットタイプ)]​、​[API version (API バージョン)]​、および ​[Asset version (アセットバージョン)]​ を更新します。

      Exchange でのバージョンについての詳細は、『アセットバージョン』を参照してください。

    4. [RAML/OAS]​ アセットタイプを選択した場合は、API の ​[Conformance Status (準拠状況)]​ を表示して、API が準拠していることを確認します。[Conformance Status (準拠状況)] が非準拠の場合、デプロイ後に​ガバナンスレポート​を表示して、準拠の問題を見つけて修正します。​ガバナンスレポート​についての詳細は、『API インスタンスの管理』を参照してください。

      1. [Next (次へ)]​ をクリックします。

      2. ダウンストリーム設定を定義します。

        HTTPS プロキシを設定するには、​[HTTPS]​ を選択し、​[Inbound TLS (インバウンド TLS)]​ を設定する必要があります。
      3. [Next (次へ)]​ をクリックします。

      4. アップストリーム設定を定義します。

      5. [Next (次へ)]​ をクリックします。

      6. 選択内容を確認し、必要に応じて編集します。

      7. デプロイする準備ができたら、​[Save & Deploy (保存してデプロイ)]​ をクリックします。または、​[Save (保存)]​ を選択して API インスタンスを保存し、後でデプロイします。

API プロキシデプロイメント

API プロキシを CloudHub、ハイブリッド、またはスタンドアロンサーバーにデプロイできます。

CloudHub へのデプロイ

API プロキシを設定し、​[Proxy deployment target (プロキシデプロイメント対象)]​ として ​[CloudHub]​ を選択したら、シークレットがすでに設定された状態で API プロキシが自動的にデプロイされます。

シークレットは ​mule-artifact.json​ の ​SecureProperties​ でセキュアプロパティプレースホルダーとして設定されます。
提供されるプロパティの数は、選択した設定によって異なります。

inbound.keystore.keyPassword_281324
inbound.keystore.password_281324

inbound.truststore.password_281324

outbound.keystore.keyPassword_281324
outbound.keystore.password_281324

outbound.truststore.password_281324
sample

この場合、​281324​ サフィックスは API プロキシの API インスタンス ID です。

API プロキシの XML を調べると、これらのプロパティがトラストストア/キーストアの設定で使用されていることがわかります。

<tls:trust-store path="outbound-truststore.jks" password="${outbound.truststore.password_281324}" type="JKS" insecure="true"  />
xml

ハイブリッドへのデプロイ

API プロキシを設定し、​[Proxy deployment target (プロキシデプロイメント対象)]​ として ​[Hybrid (ハイブリッド)]​ を選択したら、シークレットがすでに設定された状態で API プロキシが自動的にデプロイされます。

シークレットは ​mule-artifact.json​ の ​SecureProperties​ でセキュアプロパティプレースホルダーとして設定されます。

+ 提供されるプロパティの数は、選択した設定によって異なります。

inbound.keystore.keyPassword_281324
inbound.keystore.password_281324

inbound.truststore.password_281324

outbound.keystore.keyPassword_281324
outbound.keystore.password_281324

outbound.truststore.password_281324
sample

この場合、​281324​ サフィックスは API プロキシの API インスタンス ID です。

API プロキシの XML を調べると、これらのプロパティがトラストストア/キーストアの設定で使用されていることがわかります。

<tls:trust-store path="outbound-truststore.jks" password="${outbound.truststore.password_281324}" type="JKS" insecure="true"  />
xml

スタンドアロンサーバーへのデプロイ

スタンドアロンサーバーに API プロキシをデプロイするには、TLS コンテキストごとにセキュアプロパティを提供します。

  1. API プロキシをダウンロードします。

    1. API Manager で、ダウンロードする API プロキシのバージョンを選択します。

    2. 画面の右上隅にある ​[Actions (アクション)]​ ボタンをクリックし、​[Download Proxy (プロキシをダウンロード)]​ を選択します。

  2. [API Instance ID (API インスタンス ID)]​ の下にある API インスタンス ID をメモします。

  3. スタンドアロン Mule インスタンスを実行する場合、API プロキシの API インスタンス ID と共にキーストアとキーのパスフレーズを -D 引数として提供する必要があります。
    たとえば、API インスタンス ID が 15464957 の場合、次の引数を渡す必要があります。

    ./bin/mule \
    -M-Dinbound.keystore.keyPassword_15464957=pass123 \
    -M-Dinbound.keystore.password_15464957=pass123 \
    -M-Dinbound.truststore.password_15464957=pass123 \
    -M-Doutbound.keystore.keyPassword_15464957=pass123 \
    -M-Doutbound.keystore.password_15464957=pass123 \
    -M-Doutbound.truststore.password_15464957=pass123
    sample