全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Mengakses layanan LLM melalui gerbang keluar ASM

更新时间:Feb 28, 2026

Topik ini menjelaskan cara menggunakan Gerbang Keluar (Egress Gateway) Service Mesh (ASM) untuk mengakses layanan LLM eksternal. Metode ini ideal untuk skenario di mana klien berjalan di dalam kluster dan telah disuntikkan Sidecar.

Prasyarat

Ikhtisar

Tanpa Gerbang Keluar, permintaan klien dicegat oleh Sidecar Proxy, yang kemudian meneruskan permintaan tersebut ke penyedia layanan LLM. Karena Sidecar ditempatkan di pod yang sama dengan klien, pendekatan ini menimbulkan risiko keamanan, seperti kebocoran Kunci API dan akses tidak sah. Jika Anda khawatir terhadap risiko tersebut, kami sangat menyarankan penggunaan Gerbang Keluar.

Dengan memasukkan Gerbang Keluar ASM ke dalam jalur permintaan, keamanan dapat ditingkatkan. Gerbang Keluar ditempatkan secara terpisah dari klien. Pemisahan ini memungkinkan Anda menggunakan mekanisme RBAC pada Kluster ACK untuk membatasi izin pengelolaan gerbang. Kunci API disuntikkan secara dinamis, serta kebijakan otentikasi dan otorisasi diberlakukan di Gerbang Keluar, sehingga Anda dapat memanfaatkan seluruh fitur keamanan Gerbang ASM.

Diagram berikut menunjukkan jalur permintaan yang digunakan dalam topik ini:

image

Langkah 1: Buat gerbang keluar dan gateway

  1. Buat Egress Gateway, konfigurasikan Port 80, dan aktifkan Mutual TLS (mTLS) Authentication. Untuk informasi selengkapnya, lihat Buat Egress Gateway.

  2. Buat file bernama egress-gw.yaml dengan konten berikut.

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: egress-gw
      namespace: istio-system
    spec:
      selector:
        istio: egressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 80
            protocol: HTTPS
          tls:
            mode: ISTIO_MUTUAL
  3. Jalankan perintah berikut menggunakan kubeconfig instans ASM untuk membuat Gateway:

    kubectl apply -f egress-gw.yaml

Langkah 2: Buat LLMProvider dengan cakupan gateway

Membatasi cakupan LLMProvider hanya pada Gerbang Keluar memastikan Kunci API hanya disimpan di memori Gerbang Keluar dan tidak dapat diakses oleh klien.

  1. Buat file bernama dashscope-qwen.yaml dengan konten berikut.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMProvider
    metadata:  
      name: dashscope-qwen
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          istio: egressgateway
      host: dashscope.aliyuncs.com
      path: /compatible-mode/v1/chat/completions
      configs:
        defaultConfig:
          openAIConfig:
            model: qwen1.5-72b-chat  # Seri model besar open-source Qwen
            stream: false
            apiKey: ${API_KEY}
  2. Jalankan perintah berikut untuk membuat LLMProvider.

    kubectl apply -f dashscope-qwen.yaml

Langkah 3: Buat LLMRoute

  1. Buat file bernama dashscope-route.yaml dengan konten berikut untuk mengarahkan traffic ke Gerbang Keluar.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMRoute
    metadata:  
      name: dashscope-route
    spec:
      host: dashscope.aliyuncs.com
      gateways:
      - mesh
      - istio-system/egress-gw
      rules:
      - name: mesh-route # Setelah Sidecar menerima permintaan untuk dashscope.aliyuncs.com, permintaan tersebut diteruskan ke Gerbang Keluar.
        matches:
        - gateways:
          - mesh
        backendRefs:
        - providerHost: istio-egressgateway.istio-system.svc.cluster.local
      - name: egress-gw-route # Setelah Gerbang Keluar menerima permintaan untuk dashscope.aliyuncs.com, permintaan tersebut diteruskan ke penyedia sebenarnya.
        matches:
        - gateways:
          - istio-system/egress-gw
        backendRefs:
        - providerHost: dashscope.aliyuncs.com
  2. Jalankan perintah berikut untuk membuat LLMRoute.

    kubectl apply -f dashscope-route.yaml

Langkah 4: Uji konfigurasi

Jalankan perintah berikut menggunakan kubeconfig Kluster ACK Anda untuk menguji konfigurasi:

kubectl exec deployment/sleep -it -- curl --location 'http://dashscope.aliyuncs.com' --header 'Content-Type: application/json' --data '{
    "messages": [
        {"role": "user", "content": "Tell me about yourself"}
    ]
}'

Output yang diharapkan:

{"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 users' questions, provide information, and engage in conversations. I can understand users' questions 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":1720680044,"system_fingerprint":null,"model":"qwen1.5-72b-chat","id":"chatcmpl-1c33b950-3220-9bfe-9066-xxxxxxxxxxxx"}

Langkah 5: Konfigurasikan kebijakan otorisasi

  1. Buat file bernama authpolicy.yaml dengan konten berikut.

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      name: test
      namespace: istio-system
    spec:
      action: DENY
      rules:
      - from:
        - source:
            principals:
            - cluster.local/ns/default/sa/sleep
        to:
        - operation:
            hosts:
            - dashscope.aliyuncs.com
      selector:
        matchLabels:
          istio: egressgateway
  2. Jalankan perintah berikut menggunakan kubeconfig ASM untuk menerapkan Kebijakan Otorisasi:

    kubectl apply -f authpolicy.yaml
  3. Jalankan kembali perintah di Langkah 4.

    Output yang diharapkan:

    RBAC: access denied

    Permintaan ditolak.

Catatan

Gerbang ASM menyediakan kemampuan keamanan yang sama untuk permintaan LLM seperti halnya untuk permintaan HTTP biasa, termasuk Kebijakan Otorisasi, otentikasi JWT, dan layanan otorisasi kustom. Dengan menerapkan kebijakan ini di Gerbang Keluar, Anda dapat lebih efektif mengamankan aplikasi Anda.