すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ASMイングレスゲートウェイを介したLLMサービスへのアクセス

最終更新日:Feb 28, 2026

Service Mesh (ASM) を使用すると、イングレスゲートウェイを介して外部の大規模言語モデル (LLM) サービスにアクセスできます。ASMゲートウェイを介してリクエストをルーティングすることで、トラフィック分割、リクエストの可観測性、堅牢な認証と権限付与などの強力な機能を利用できます。このトピックでは、クラスター外部のクライアントがASMイングレスゲートウェイを介して外部LLMサービスにアクセスする方法について説明します。

概要

イングレスゲートウェイを介した外部LLMサービスへのアクセスは、クラスター外部のクライアントがそれらに接続する必要がある場合に最適です。ASMゲートウェイは、幅広いルーティング、セキュリティ、可観測性機能を提供し、LLMトラフィック管理をサポートします。ASMゲートウェイを使用することで、外部LLMサービスと迅速かつ安全に統合できます。

このトピックの例におけるリクエストトレースは次のとおりです。

image

前提条件

ステップ 1: LLMProviderの作成

  1. 以下の内容で「LLMProvider.yaml」という名前のファイルを作成します。

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMProvider
    metadata:  
      name: dashscope-qwen
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          istio: ingressgateway
      host: dashscope.aliyuncs.com
      path: /compatible-mode/v1/chat/completions
      configs:
        defaultConfig:
          openAIConfig:
            model: qwen1.5-72b-chat  # Qwenオープンソースシリーズ大規模言語モデル
            stream: false
            apiKey: ${API_KEY}
  2. ASMクラスターのkubeconfig ファイルを使用して、次のコマンドを実行してLLMProviderを作成します。

    kubectl apply -f LLMProvider.yaml

ステップ 2: ゲートウェイルールの作成

  1. 以下の内容で「ingress-gw.yaml」という名前のファイルを作成します。

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: ingress-gw
      namespace: istio-system
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 80
            protocol: HTTP
  2. 次のコマンドを実行してゲートウェイルールを作成します。

    kubectl apply -f ingress-gw.yaml

ステップ 3: LLMRouteの作成

  1. 以下の内容で「dashscope-route.yaml」という名前のファイルを作成します。

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMRoute
    metadata:  
      name: dashscope-route
    spec:
      host: "*"
      gateways:
      - istio-system/ingress-gw
      rules:
      - name: ingress-route
        matches:
        - headers:
            host:
              exact: dashscope.aliyuncs.com  # dashscope.aliyuncs.comへのリクエストをルーティングします。それ以外の場合は404エラーが返されます。
        - headers:
            host:
              exact: test.com # test.comへのリクエストをルーティングします。リクエストがASM LLMプラグインによって処理された後、ルーティングの一致が再トリガーされ、リクエストが上記のルールに一致するようになります。
        backendRefs:
        - providerHost: dashscope.aliyuncs.com
  2. 次のコマンドを実行してLLMRouteを作成します。

    kubectl apply -f dashscope-route.yaml

ステップ 4: セットアップのテスト

構成をテストするには、ローカル端末で次のコマンドを実行します。

curl --location '${INGRESS_GATEWAY_IP}:80' --header 'Content-Type: application/json' --header "host: test.com" --data '{
    "messages": [
        {"role": "user", "content": "Tell me about yourself"}
    ]
}'

期待される出力:

{"choices":[{"message":{"role":"assistant","content":"I am a Large Language Model from Alibaba Cloud, and my name is Qwen. My main function is to answer user questions, provide information, and engage in conversation. I can understand user queries and generate corresponding answers or suggestions based on natural language. I can also learn new knowledge and apply it to various scenarios. If you have any questions or need help, please feel free to let me know, and I will do my best to support you."},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":3,"completion_tokens":72,"total_tokens":75},"created":1720682745,"system_fingerprint":null,"model":"qwen1.5-72b-chat","id":"chatcmpl-3d117bd7-9bfb-9121-9fc2-xxxxxxxxxxxx"}

出力は、ゲートウェイがリクエストを正常にルーティングしたことを示しています。

ステップ 5: ASMゲートウェイのセキュリティ機能の使用

このステップでは、ASMゲートウェイを介したLLMサービスへのご利用のローカルIPアドレスからのアクセスを拒否するシンプルな権限付与ポリシーを作成する方法を示します。

  1. 以下の内容で「auth-policy.yaml」という名前のファイルを作成します。

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      labels:
        gateway: ingressgateway
      name: auth-policy
      namespace: istio-system
    spec:
      action: DENY
      rules:
        - from:
            - source:
                ipBlocks:
                  - ${YOUR_LOCAL_IP}
          to:
            - operation:
                hosts:
                  - test.com
      selector:
        matchLabels:
          istio: ingressgateway
  2. 次のコマンドを実行して権限付与ポリシーをデプロイします。

    kubectl apply -f auth-policy.yaml
  3. ステップ 4 のテストコマンドを再度実行します。次の結果が表示されるはずです。

    RBAC: アクセス拒否
説明

包括的な権限付与ポリシー、JWT認証、カスタム外部権限付与サービスなど、ASMゲートウェイで標準HTTPリクエストに利用できるセキュリティ機能は、LLMリクエストにも適用されます。これらのポリシーをイングレスゲートウェイに適用することで、アプリケーションをより効果的に保護できます。