受信ゲートウェイの作成

サービス・メッシュのイングレス・ゲートウェイを作成します。

重要

続行する前に、イングレス・ゲートウェイ・リソースに適切なOCIポリシーを設定する必要があります。詳細は、イングレス・ゲートウェイに必要なIAMポリシーを参照してください。
    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナおよびアーティファクト」で、「サービス・メッシュ」をクリックします。
    2. 「サービス・メッシュ」をクリックします。
    3. 「サービス・メッシュ」ページの左側にあるコンパートメントのリストから、コンパートメントを選択します。
    4. メッシュのリストから、イングレス・ゲートウェイを作成するメッシュ名をクリックします。
    5. メッシュの詳細ページで、「リソース」の下で、「イングレス・ゲートウェイ」をクリックします。
    6. 「イングレス・ゲートウェイ」表で、「イングレス・ゲートウェイの作成」をクリックします。
    7. 「イングレス・ゲートウェイの作成」パネルで、パネルの上部に次の詳細を指定します:
      • 名前: イングレス・ゲートウェイの名前。名前は同じサービス・メッシュ内で一意である必要があり、作成後に変更できません。名前は、文字またはアンダースコアで始まり、文字、数字、ハイフンまたはアンダースコアが続く必要があります。長さは1から255文字です。機密情報を入力しないでください。
      • 説明: (オプション)イングレス・ゲートウェイの説明。説明は作成後に変更できます。機密情報を入力しないでください。
      • 証明書最大有効性(日): イングレス・ゲートウェイの作成時に証明書の最大有効性を設定します。
        ノート

        最大有効期間は、最小45日から最大90日までです。
      • コンパートメント: イングレス・ゲートウェイを作成するコンパートメント。デフォルト・コンパートメントは前に選択したコンパートメントですが、作業権限を持つ任意のコンパートメントを選択できます。
      • アクセス・ログの有効化:アクセス・ログを有効にするには、チェック・ボックスを選択します。
    8. 「ホスト」セクションで、次の詳細を入力します:
      • 名前: ホストの使いやすい名前。名前は、メッシュ内のイングレス・ゲートウェイ間で一意である必要があります。この名前は、イングレス・ゲートウェイのルート表リソースで使用して、このホストにルートをアタッチできます。
      • ホスト名:
        ゲートウェイのコール元が使用するDNSホスト名。ワイルドカード・ホスト名は接頭辞形式でサポートされています。このゲートウェイには最大10個のDNSホスト名を指定します。次の例は、有効なホスト名です: www.example.com, *.example.com, *.com, www.example.com:9080, *.example.com:9080
        注意

        メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。

        HTTPリスナーを使用するホストの場合、ホスト名はゲートウェイとの通信に使用されるHTTPホスト・ヘッダーと一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーは404エラーを認識します。HTTPホストヘッダーは、標準ポート80および443に対して example.comという形式を使用します。9080のような非標準ポートの場合、ホスト・ヘッダーはexample.com:9080という形式を使用します。

        リスナーTLS_PASSTHROUGHを持つホストの場合、ホスト名は、ゲートウェイとの通信に使用されるサーバー名指示(SNI)と一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーはTLSハンドシェイク・エラーを検出します。接頭辞形式のワイルドカードを使用できます。包括ワイルドカード*は使用できません。

        別の名前を追加するには、「+別の名前の追加」をクリックします。

    9. 「リスナー」セクションで、次の詳細を入力します:
      • ポート: リスニングするポートを指定します。
      • プロトコル: 「HTTP」「TCP」または「TLS_PASSTHROUGH」を選択します。TLS_PASSTHROUGHを選択した場合、プロキシはTLSを管理しません。暗号化されたデータは、TLSを独自に管理するアプリケーションにそのまま渡されます。
      • TLSモード:次のオプションのいずれかを選択します:
        • 相互TLS: mTLSトラフィックのみが受け入れられます。メッシュおよび仮想サービス用のSTRICTなどの機能。
        • 許容: 接続はプレーン・テキストまたはTLS/mTLSのいずれかです。リスナーに対してTLSクライアント検証セクションが構成されている場合、mTLSが実行され、ゲートウェイはクライアントの証明書を検証します。TLSクライアントの検証セクションについては、フォームの次のセクションを参照してください。
        • TLS: 一方向TLS認証を許可します。ゲートウェイに接続しているクライアントのみがゲートウェイのアイデンティティを検証します。
        • Disabled: raw TCPトラフィックは受け入れられます。
      • TLSクライアント検証: このセクションで、次の詳細を指定します:
        • サブジェクト代替名: example.com, servicemesh.example.comなどのドメイン名を入力します。別の名前を追加するには、「+別の名前の追加」をクリックします。
        • タイプ: CAバンドルのタイプについて、「OCI証明書」または「ローカル・ファイル」を選択します。
        • <compartment>のCAバンドル: CAバンドルのタイプとして「OCI証明書」を選択すると、コンパートメント内のCAがリストされます。
        • シークレット名: CAバンドルのタイプとして「ローカル・ファイル」を選択した場合は、TLSタイプのKubernetesシークレットの名前を入力します。
        • TLSサーバー証明書: このセクションで、次の詳細を指定します:
          • タイプ: 「OCI証明書」または「ローカル・ファイル」を選択します。
          • <compartment>内の証明書: タイプとして「OCI証明書」を選択すると、IDがCA内の証明書に関連付けられます。使用可能なIDを使用して別の証明書を選択します。
          • シークレット名: タイプとして「ローカル・ファイル」を選択した場合は、ca.crtのキーで不透明なKubernetesシークレットのファイル名を入力します。
        • 別のリスナーを追加するには、+Add追加リスナーをクリックします。
    10. 別のホストを追加するには、「+別のホストを追加」をクリックします。
    11. イングレス・ゲートウェイのルート表を追加するには、「+別のルート表の追加」をクリックします。
    12. (オプション)イングレス・ゲートウェイにタグを追加するには、「拡張オプションの表示」をクリックします。タグ付けの詳細は、リソース・タグを参照してください。
    13. 「イングレス・ゲートウェイの作成」をクリックします。
  • ingress-gateway createで使用可能な操作を確認するには、次を使用します:

    oci service-mesh ingress-gateway create -h

    CLIを使用してイングレス・ゲートウェイを作成するには、oci service-mesh ingress-gateway createを実行してイングレス・ゲートウェイを作成します:

    oci service-mesh ingress-gateway create --name <name> --compartment-id <compartmentId> --mesh-id <meshId> --hosts <hosts> --access-logging <accessLogging> --description <description>

    説明:

    • <name>イングレス・ゲートウェイの名前。名前は同じサービス・メッシュ内で一意である必要があり、作成後に変更できません。名前は、文字またはアンダースコアで始まり、文字、数字、ハイフンまたはアンダースコアが続く必要があります。長さは1から255文字です。機密情報を入力しないでください。
    • <compartmentId>: イングレス・ゲートウェイが属するコンパートメントのOCID。
    • <meshId>: このインターネット・ゲートウェイが作成されるサービス・メッシュのOCID。
    • <hosts>: このゲートウェイがバインドするホスト名とそのリスナー構成の配列。
      • <name>: ホストの使いやすい名前。名前は、メッシュ内のイングレス・ゲートウェイ間で一意である必要があります。この名前は、イングレス・ゲートウェイのルート表リソースで使用して、このホストにルートをアタッチできます。
      • <hostnames>:
        ゲートウェイのコール元が使用するDNSホスト名。ワイルドカード・ホスト名は接頭辞形式でサポートされています。このゲートウェイには最大10個のDNSホスト名を指定します。次の例は、有効なホスト名です: www.example.com, *.example.com, *.com, www.example.com:9080, *.example.com:9080
        注意

        メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。

        HTTPリスナーを使用するホストの場合、ホスト名はゲートウェイとの通信に使用されるHTTPホスト・ヘッダーと一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーは404エラーを認識します。HTTPホストヘッダーは、標準ポート80および443に対して example.comという形式を使用します。9080のような非標準ポートの場合、ホスト・ヘッダーはexample.com:9080という形式を使用します。

        リスナーTLS_PASSTHROUGHを持つホストの場合、ホスト名は、ゲートウェイとの通信に使用されるサーバー名指示(SNI)と一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーはTLSハンドシェイク・エラーを検出します。接頭辞形式のワイルドカードを使用できます。包括ワイルドカード*は使用できません。
      • <listeners>:
        • <port>: リスニングするポートを指定します。
        • <protocol>: プロトコルHTTPTCPまたはTLS_PASSTHROUGHを選択します。TLS_PASSTHROUGHが選択されている場合、プロキシはTLSを管理しません。暗号化されたデータは、TLSを独自に管理するアプリケーションにそのまま渡されます。
        • <tls>:
          • <mode>: 次から選択します:
            • 相互TLS: mTLSトラフィックのみが受け入れられます。メッシュおよび仮想サービス用のSTRICTなどの機能。
            • 許容: 接続はプレーン・テキストまたはTLS/mTLSのいずれかです。リスナーに対してTLSクライアント検証セクションが構成されている場合、mTLSが実行され、ゲートウェイはクライアントの証明書を検証します。TLSクライアントの検証セクションについては、フォームの次のセクションを参照してください。
            • TLS: 一方向TLS認証を許可します。ゲートウェイに接続しているクライアントのみがゲートウェイのアイデンティティを検証します。
            • Disabled: raw TCPトラフィックは受け入れられます。
          • <clientValidation>:
            • <subjectAlternateNames>: ここにドメイン名を入力します。例: example.com, servicemesh.example.com
            • <trustedCaBundle >:
              • <type>: 使用可能な値はOCI_CERTIFICATESまたはLOCAL_FILEです。
              • <caBundleId>: CAバンドルのOCID。
              • <secretName>: LOCAL_FILEが選択されている場合、TLSタイプのKubernetesシークレットのファイル名。シークレットの名前をこのフィールドに入力します。
          • <serviceCertificate>
            • <type>: 使用可能な値はOCI_CERTIFICATESまたはLOCAL_FILEです。
            • <certificateId>: OCI_CERTIFICATESが指定されている場合、TLS証明書のOCID。
            • <secretName>: LOCAL_FILEが選択されている場合、キーがca.crtの不透明なKubernetesシークレットのファイル名。シークレットの名前をこのフィールドに入力します。

      これは、値が有効なJSONである複雑な型です。YAMLの例はファイルに格納し、必要に応じてファイルを変更して更新することをお薦めします。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成

    • <accessLogging>: 値をtrueまたはfalseに設定して、ロギングをオンまたはオフにします。これは、値が有効なJSONである複雑な型です。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成
    • <description>イングレス・ゲートウェイの説明。説明は作成後に変更できます。機密情報を入力しないでください。

    例:

    oci service-mesh ingress-gateway create --name "ingress gateway" --compartment-id ocid1.compartment.oc1..aaa... --mesh-id ocid1.mesh.oc1..aaa... --hosts '[{ "hostnames": ["test.com"], "listeners": [{"port": 8080, "protocol": "HTTP", "tls": {"clientValidation": {"subjectAlternateNames": ["authorized1.client"], "trustedCaBundle": [{"caBundleId": "ocid1.caBundle.oc1..aaa...", "type": "OCI_CERTIFICATES"}]}, "mode": "MUTUAL_TLS", "serverCertificate": [{"certificateId": "ocid1.certificate.oc1..aaa...", "type": "OCI_CERTIFICATES"}]}}]'

    コマンドへの応答は次のとおりです。

    • イングレス・ゲートウェイのOCID。
    • ライフサイクルの状態(ACTIVEFAILEDなど)。
    • イングレス・ゲートウェイを作成する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間使用できます)。

    イングレス・ゲートウェイがアクティブになるか、リクエストが失敗するまでコマンドが制御を返すのを待機する場合は、次のいずれかまたは両方のパラメータを含めます:

    • --wait-for-state SUCCEEDED
    • --wait-for-state FAILED

    例:

    oci service-mesh ingress-gateway create --name "ingress gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaasbdlq2go7wwxlk6g2sjiiamouh4zarpe5zpewhbv333sekhfnkka --mesh-id ocid1.mesh.oc1.iad.amaaaaaafesvpoaauhikwwofwuali3f3lgmfikqwdgosr22hj3pznak6qrvq --hosts file:///ig_hosts.json --wait-for-state SUCCEEDED
    ヒント

    作業リクエストが正常に作成され、イングレス・ゲートウェイがアクティブになるまで、イングレス・ゲートウェイは使用できません。

    イングレス・ゲートウェイ・ステータスの確認

    イングレス・ゲートウェイのステータスを確認するには、次を入力します:

    oci service-mesh ingress-gateway get --ingress-gateway-id <ingressGatewayId>

    イングレス・ゲートウェイを作成する作業リクエストのステータスを表示するには、サービス・メッシュ作業リクエストを参照してください。

    JSONファイルを使用したイングレス・ゲートウェイの作成

    または、createコマンドにJSONファイルを指定してイングレス・ゲートウェイを作成します。

    1. イングレス・ゲートウェイのサンプルJSONファイルを生成します:

      oci service-mesh ingress-gateway create --generate-full-command-json-input
    2. 前のステップで生成されたサンプル出力を含むJSONファイルを作成し、フィールドを適切な値で更新します。
    3. ingress-gateway createコマンドにJSONファイルを指定します:

      oci service-mesh ingress-gateway create --from-json file:///<filename>

    CLIの使用方法の詳細は、次を参照してください:

  • CreateIngressGateway操作を使用して、イングレス・ゲートウェイを作成します。