All Products
Search
Document Center

Alibaba Cloud Service Mesh:Konfigurasikan kebijakan keamanan ASM untuk menerapkan otorisasi kustom

Last Updated:Jun 21, 2026

Saat perlu menyesuaikan kebijakan kontrol akses sesuai kebutuhan bisnis, Anda dapat mengonfigurasi kebijakan keamanan Service Mesh (ASM) untuk menerapkan otorisasi kustom. Dalam skenario ini, permintaan akan diteruskan ke layanan otorisasi kustom yang telah Anda tentukan untuk diautentikasi. Pendekatan ini memungkinkan penerapan logika otentikasi yang kompleks, sekaligus mengurangi biaya pengembangan dan pemeliharaan serta meningkatkan efisiensi pengembangan.

Prasyarat

Prosedur

  1. Masuk ke Konsol ASM. Di panel navigasi sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sebelah kiri, pilih Mesh Security Center > ASMSecurityPolicy.

  3. Pada halaman ASMSecurityPolicy, klik Create. Pada kotak dialog Create ASMSecurityPolicy, klik Custom Authorization Service, lalu klik OK.

  4. Pada halaman Create Custom Authorization Service, pada wizard Custom Authorization Service Configuration, pilih tab Custom authorization service (HTTP or gRPC protocol) implemented based on envoy.ext_authz. Kemudian, konfigurasikan parameter dan klik Next.

    Contoh ini menggunakan konfigurasi berikut. Untuk informasi selengkapnya tentang parameter, lihat Connect to a custom authorization service that uses HTTP. Konfigurasikan parameter berikut: ASM security policy name (misalnya, test), Protocol (HTTP atau gRPC), Service address (misalnya, ext-authz.default.svc.cluster.local), Service port (misalnya, 8000), dan Timeout (misalnya, 10 detik). Secara opsional, aktifkan sakelar Allow requests when authorization service is unavailable dan Use custom error code when authorization service is unavailable. Aktifkan sakelar Include request headers in check (includeRequestHeadersInCheck) dan tambahkan header yang diperlukan ke daftar di bawah ini, seperti cookie, authorization, x-forwarded-access-token, x-forwarded-user, x-forwarded-email, x-forwarded-proto, proxy-authorization, user-agent, x-forwarded-host, from, x-forwarded-for, accept, dan header kustom x-ext-authz. Aktifkan sakelar Override headers on allow (headersToUpstreamOnAllow) dan tambahkan header yang ingin Anda timpa, seperti authorization, cookie, path, x-auth-request-access-token, x-forwarded-access-token, dan x-ext-authz-check-result. Aktifkan sakelar Override headers on deny (headersToDownstreamOnDeny) dan tambahkan header yang ingin Anda timpa, seperti content-type, set-cookie, dan x-ext-authz-check-result. Header x-ext-authz-check-result merupakan header kustom dan harus ditambahkan ke kedua daftar, yaitu allow dan deny.

  5. Pada wizard Workload and Match Rules, klik Add Workload Group. Pada kotak dialog New Workload Group, konfigurasikan parameter dan klik Submit.

    Tabel berikut menjelaskan cara mengonfigurasi parameter pada contoh ini.

    Parameter

    Deskripsi

    Workload Group Name

    Tetapkan nama menjadi test-policy.

    Workload List

    1. Klik Add Workload.

    2. Pada kotak dialog Add Workload, pilih Workload Scope. Tetapkan Namespaces menjadi default dan Workload Type menjadi Service.

    3. Pada area Select workloads, pilih productpage, klik ikon 添加 untuk memindahkannya ke area selected, lalu klik OK.

    Match Rule List

    Tetapkan Match Mode menjadi The selected request must be authenticated. Pilih Custom Matching Rules untuk Matching Rules. Kemudian, aktifkan sakelar Path dan tetapkan path menjadi /productpage.

    Setelah kebijakan dibuat, pesan "ASM security policy created successfully" muncul pada langkah Complete wizard. Anda dapat mengklik View YAML untuk melihat file YAML dari resource yang dibuat, atau klik Complete untuk kembali ke halaman ASMSecurityPolicy dan melihat kebijakan baru tersebut.

  6. Periksa apakah konfigurasi otorisasi kustom telah berlaku.

    1. Jalankan perintah berikut untuk mengirim permintaan dengan header x-ext-authz: allow guna mengakses layanan productpage:

      curl -I -H "x-ext-authz: allow" http://${IP address of the ingress gateway}/productpage

      Output yang diharapkan:

      HTTP/1.1 200 OK
      content-type: text/html; charset=utf-8
      content-length: 5288
      server: istio-envoy
      date: Tue, 17 Jan 2023 07:53:14 GMT
      x-envoy-upstream-service-time: 20

      Output tersebut menunjukkan bahwa otorisasi kustom telah dipicu dan otentikasi berhasil.

    2. Jalankan perintah berikut untuk mengirim permintaan dengan header x-ext-authz: deny guna mengakses layanan productpage:

      curl -I -H "x-ext-authz: deny" http://${IP address of the ingress gateway}/productpage

      Output yang diharapkan:

      HTTP/1.1 403 Forbidden
      x-ext-authz-check-result: denied
      date: Tue, 17 Jan 2023 07:55:27 GMT
      server: istio-envoy
      x-envoy-upstream-service-time: 2
      transfer-encoding: chunked

      Output tersebut menunjukkan bahwa otorisasi kustom telah dipicu tetapi otentikasi gagal.

    Hasil di atas menunjukkan bahwa konfigurasi otorisasi kustom telah berlaku.

Referensi