SNI 以外のクライアントを有効にする

このトピックでは、Apigee ハイブリッドで使用する SNI 以外のクライアントを有効にする方法について説明します。

SNI 以外のクライアントの構成方法

このセクションでは、Apigee ハイブリッドで SNI(Server Name Indication)以外のクライアントのサポートを有効にする方法について説明します。SNI 以外のクライアントはポート 443 を使用します。このクライアントは、ハイブリッド ランタイム インスタンスを Cloud Load Balancing と統合する場合や SNI をサポートしていないクライアントに必要になります。
  1. ApigeeRoute カスタム リソース定義(CRD)を作成します。enableNonSniClienttrue に設定されていることを確認します。
    apiVersion: apigee.cloud.google.com/v1alpha1
    kind: ApigeeRoute
    metadata:
      name: route_name
      namespace: apigee
    spec:
      hostnames:
      - "*"
      ports:
      - number: 443
        protocol: HTTPS
        tls:
          credentialName: credential_name
          mode: SIMPLE
          #optional
          minProtocolVersion: TLS_AUTO
      selector:
        app: apigee-ingressgateway
      enableNonSniClient: true

    ここで

    • route_name は、カスタム リソース(CR)に付ける名前です。
    • credential_name は、仮想ホストの TLS 認証情報が格納されているクラスタにデプロイされる Kubernetes Secret の名前です。認証情報名は、次の kubectl コマンドで確認できます。
      kubectl -n apigee get ApigeeRoutes -o=yaml | grep credentialName
    • hostnames にはワイルドカード * を設定する必要があります。
  2. オーバーライド ファイルを開き、次の手順で説明する変更を加えます。
  3. 環境グループごとに、ApigeeRoute 名を additionalGateways プロパティに追加します。次に例を示します。
    virtualhosts:
      - name: default
        sslCertPath: ./certs/fullchain.pem
        sslKeyPath: ./certs/privkey.pem
        additionalGateways: ["route_name"]
  4. CRD ファイルを保存します。例: ApigeeRoute.yaml
  5. CRD をクラスタに適用します。
    kubectl apply -f ApigeeRoute.yaml -n apigee
  6. 変更を virtualhosts に適用します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。
    helm upgrade $ENV_GROUP apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=$ENV_GROUP \
      -f OVERRIDES_FILE.yaml
    

使用上の注意

  • クラスタに複数の組織が存在する場合

    Ingress は特定のポート(443)のクラスタレベルにあり、ApigeeRoute CRD に使用できる鍵 / 証明書ペアは 1 つしかないため、すべての組織が同じ鍵 / 証明書ペアを共有する必要があります。

  • クラスタに複数の環境グループがある場合に仮想ホストで同じ鍵 / 証明書ペアを共有できるかどうか

    あらゆる環境グループのすべてのホスト名で同じ鍵 / 証明書ペアを使用する必要があります。

  • ゲートウェイではなく ApigeeRoute を作成する理由

    ApigeeRoute は Apigee で検証できますが、ゲートウェイ(Istio CRD)は検証できません。技術的にはゲートウェイも検証できますが、検証 Webhook を通じて潜在的な構成ミスを回避できます。

  • Apigee で SNI 以外のクライアントを構成するにはどうすればよいですか?

    Apigee インスタンスが Google ロードバランサを介して公開されている場合、ロード バランシングのドキュメントで説明されているように、ロードバランサは SNI 以外のクライアントをサポートします。それ以外の場合、内部 PSC エンドポイントまたは VPC を介して Apigee インスタンスを公開している場合、デフォルトでは Apigee インスタンスは SNI 以外のクライアントをサポートします。