HTTPS API プロキシの構築

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

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

Mule 3 または Runtime Fabric デプロイメント対象で HTTPS プロキシを構築する場合、​「HTTPS サービスの構築」​チュートリアルに従ってください。

前提条件

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

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

  • ユーザに​「API 設定の管理」​ロールがあることを確認する。

  • シークレットマネージャでシークレットグループを作成し、TLS コンテキストを追加する。
    「シークレットグループの作成」​手順を実行するとともに、TLS コンテキストの作成に関してサポートが必要な場合はその記事にある​「TLS コンテキストを追加する」​タスクを実行します。
    TLS コンテキストの対象の種別が「Mule」であり、シークレットグループが「ダウンロード可能」としてマークされていることを確認します。

    シークレットマネージャの概念に慣れていない場合は、​シークレットグループの基本概念​も参照してください。

API の設定

  1. API Manager で、​[Manage API (API を管理)]​、​[Manage API From Exchange (Exchange から API を管理)]​ に移動します。

  2. API プロキシアセットを設定します。
    この方法の完全なリファレンスが必要な場合は、​Exchange からの API の管理​タスクを使用します。
    API プロキシを設定するときに、次の設定も必ず選択してください。

    1. [Managing Type (管理種別)]​ 項目で ​[Endpoint with Proxy (プロキシ付きのエンドポイント)]​ を選択します。

    2. [Check this box if you are managing this API in Mule 4 or above (Mule 4 以上でこの API を管理する場合はこのボックスをオンにする)]​ チェックマークをオンにします。

  3. [TLS Context for Outbound traffic (アウトバウンドトラフィックの TLS コンテキスト)]​ 項目で ​[Add TLS Context (TLS コンテキストを追加)]​ をクリックします。

    building https proxy c7589
    1. TLS コンテキストをホストしたシークレットグループを ​[Secret Group (シークレットグループ)]​ ドロップダウンから選択します。

    2. HTTPS API プロキシの TLS コンテキストを ​[TLS コンテキスト]​ ドロップダウンから選択します。

      building https proxy 7543c
      コンテキストを表示できない場合は、上述の前提条件に記載された適切な権限があることを確認してください。

さらに、SSL インバウンドトラフィックを有効にする場合は、次の手順を実行します。

  1. [Advanced Options (詳細オプション)]​ をクリックします。

  2. [Scheme (スキーマ)]​ 項目で ​[HTTPS]​ を選択します。
    これにより、​[TLS Context for Inbound Traffic (インバウンドトラフィックの TLS コンテキスト)]​ 項目が表示されます。

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

    1. TLS コンテキストをホストしたシークレットグループを ​[Secret Group (シークレットグループ)]​ ドロップダウンから選択します。

    2. HTTPS API プロキシの TLS コンテキストを ​[TLS コンテキスト]​ ドロップダウンから選択します。

      building https proxy 7543c
  4. [保存]​ をクリックします。

API プロキシのデプロイ

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

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

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

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

ハイブリッド

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

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

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

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

スタンドアロン

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

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

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

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

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

    building https proxy 541ec
  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

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub