Ingress Gatewayの更新

サービス・メッシュでイングレス・ゲートウェイの説明、証明書の有効性またはログ設定を更新します。

重要

続行する前に、イングレス・ゲートウェイ・リソースに適切なOCIポリシーを設定する必要があります。詳細は、イングレス・ゲートウェイに必要なIAMポリシーを参照してください。
    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「コンテナおよびアーティファクト」で、「サービス・メッシュ」をクリックします。
    2. 「サービス・メッシュ」をクリックします。
    3. 「サービス・メッシュ」ページの左側にあるコンパートメントのリストから、コンパートメントを選択します。
    4. メッシュのリストから、更新するイングレス・ゲートウェイを含むメッシュ名をクリックします。
    5. メッシュの詳細ページで、「リソース」の下で、「イングレス・ゲートウェイ」をクリックします。
    6. 「イングレス・ゲートウェイ」表で、更新するイングレス・ゲートウェイをクリックします。
    7. イングレス・ゲートウェイの詳細ページで、「編集」をクリックします。
    8. 「イングレス・ゲートウェイの編集」パネルで、必要に応じて詳細を更新します。ゲートウェイの説明、証明書の最大有効性およびログ設定を更新できます。
    9. 「変更の保存」をクリックします。
  • ingress-gateway updateで使用可能な操作を確認するには、次を使用します:

    oci service-mesh ingress-gateway update -h

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

    oci service-mesh ingress-gateway update --ingress-gateway-id <ingressGatewayId> --access-logging <accessLogging> --description <description> --hosts <hosts>

    説明:

    • <ingressGatewayId>: 移動するイングレス・ゲートウェイのOCID。イングレス・ゲートウェイのOCIDを確認するには、イングレス・ゲートウェイのリストを参照してください。
    • <accessLogging>: 値をtrueまたはfalseに設定して、ロギングをオンまたはオフにします。これは、値が有効なJSONである複雑な型です。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成
    • <description>イングレス・ゲートウェイの説明。説明は作成後に変更できます。機密情報を入力しないでください。
    • <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である複雑な型です。JSONをファイルに格納し、必要に応じてファイルを変更して更新することをお薦めします。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成

    例:

    oci service-mesh ingress-gateway update --ingress-gateway-id ocid.meshingressgateway.oc1.iad.aaaa.... --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 update --ingress-gateway-id ocid.meshingressgateway.oc1.iad.aaaa.... --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"}]}}]' --wait-for-state SUCCEEDED
    ヒント

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

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

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

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

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

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

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

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

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

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

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

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