Istio Authorization Policy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio Authorization Policy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio Authorization Policy: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya

Ilustrasi Istio Authorization Policy pada Kubernetes Service Mesh

Pada artikel sebelumnya kita telah mempelajari HTTPRoute, yaitu resource pada Kubernetes Gateway API yang digunakan untuk mengatur bagaimana request HTTP diarahkan menuju backend service. Melalui HTTPRoute, administrator dapat menentukan aturan routing berdasarkan hostname, path, header, maupun query parameter sehingga lalu lintas aplikasi menjadi lebih fleksibel dan mudah dikelola.

Namun, mengarahkan request ke service yang benar saja belum cukup untuk menjaga keamanan aplikasi Dewa234 modern. Setelah traffic berhasil mencapai workload tujuan, masih diperlukan mekanisme yang memastikan bahwa hanya identitas yang berwenang yang dapat mengakses layanan tersebut. Di sinilah Istio Authorization Policy berperan penting.

Authorization Policy merupakan fitur keamanan pada Istio yang digunakan untuk mengontrol hak akses antar workload maupun antara pengguna dengan aplikasi. Administrator dapat menentukan siapa yang boleh mengakses service tertentu, metode HTTP apa yang diizinkan, path mana yang dapat digunakan, hingga namespace mana yang memiliki hak akses.

Pada arsitektur microservices yang terdiri dari puluhan bahkan ratusan service, pendekatan ini menjadi fondasi penerapan Zero Trust Security. Setiap request harus diverifikasi dan dievaluasi berdasarkan kebijakan yang telah ditentukan, bukan sekadar dipercaya karena berasal dari dalam jaringan.

Pada artikel ini kita akan membahas Istio Authorization Policy secara lengkap, mulai dari pengertian, fungsi, cara kerja, arsitektur, komponen, contoh implementasi YAML, best practice, hingga hubungannya dengan Ambient Mesh, Waypoint Proxy, HTTPRoute, dan RequestAuthentication.


Apa Itu Istio Authorization Policy?

Istio Authorization Policy adalah resource keamanan pada Istio yang digunakan untuk menentukan aturan akses terhadap workload di dalam service mesh. Resource ini memungkinkan administrator mengizinkan, menolak, atau mengaudit request berdasarkan identitas, namespace, metode HTTP, path, header, maupun atribut lainnya.

Berbeda dengan firewall tradisional yang umumnya memfilter koneksi berdasarkan alamat IP atau port, Authorization Policy bekerja pada tingkat identitas workload dan konteks aplikasi. Hal ini membuat kontrol akses menjadi lebih detail dan sesuai dengan kebutuhan arsitektur cloud-native.


Mengapa Authorization Policy Dibutuhkan?

Pada aplikasi monolitik, seluruh komponen biasanya berjalan dalam satu proses sehingga pengaturan akses relatif sederhana. Namun pada arsitektur microservices, setiap service saling berkomunikasi melalui jaringan sehingga risiko akses tidak sah menjadi lebih besar.


Client
   │
   ▼
API Gateway
   │
   ▼
Order Service
   │
   ▼
Payment Service

Tanpa kebijakan otorisasi, setiap workload berpotensi mengakses service lain tanpa pembatasan yang jelas. Kondisi ini dapat meningkatkan risiko penyalahgunaan akses apabila salah satu workload berhasil dikompromikan.

Authorization Policy membantu mengurangi risiko tersebut dengan menerapkan prinsip bahwa setiap request harus memenuhi aturan yang telah ditentukan sebelum diteruskan ke workload tujuan.


Konsep Zero Trust Security

Authorization Policy merupakan salah satu implementasi dari konsep Zero Trust Security. Pendekatan ini mengusung prinsip Never Trust, Always Verify, yaitu tidak ada request yang secara otomatis dipercaya, baik berasal dari luar maupun dari dalam cluster.


Traditional Network

Internal Traffic

      │

 Trusted

      │

      ▼

Application



Zero Trust

Client

   │

Verify Identity

   │

Authorization Policy

   │

Decision

   │

ALLOW / DENY

Dengan pendekatan ini, setiap permintaan akan dievaluasi berdasarkan identitas dan kebijakan yang berlaku sehingga akses dapat dikendalikan secara lebih aman.


Posisi Authorization Policy pada Istio

Authorization Policy berada pada lapisan keamanan setelah proses routing selesai dilakukan.


Internet

      │

      ▼

Gateway

      │

HTTPRoute

      │

Authorization Policy

      │

Waypoint Proxy

      │

Application

Urutan tersebut menunjukkan bahwa request terlebih dahulu diarahkan menggunakan HTTPRoute, kemudian diperiksa terhadap Authorization Policy sebelum diteruskan menuju workload.


Hubungan Authorization Policy dengan Ambient Mesh

Pada Ambient Mesh, komunikasi Layer 4 ditangani oleh ztunnel, sedangkan kebijakan Layer 7 seperti Authorization Policy diterapkan melalui Waypoint Proxy. Dengan demikian, administrator tetap dapat menerapkan kontrol akses berbasis HTTP tanpa perlu menjalankan sidecar Envoy pada setiap Pod.


Client

   │

   ▼

Gateway

   │

HTTPRoute

   │

Waypoint Proxy

   │

Authorization Policy

   │

ztunnel

   │

Application

Model ini memberikan keseimbangan antara performa dan keamanan. Workload hanya menggunakan Waypoint Proxy apabila membutuhkan fitur Layer 7 seperti otorisasi, observabilitas, maupun traffic management tingkat lanjut.


Bagaimana Cara Kerja Authorization Policy?

Ketika request mencapai workload, Waypoint Proxy atau Envoy akan memeriksa apakah terdapat Authorization Policy yang berlaku. Setiap aturan akan dievaluasi berdasarkan urutan tertentu hingga menghasilkan keputusan akhir.


Incoming Request

       │

       ▼

Authorization Policy

       │

Evaluate Rules

       │

 ┌─────┴─────┐

 ▼           ▼

ALLOW      DENY

       │

       ▼

Backend Service

Apabila request memenuhi seluruh syarat pada policy, maka akses akan diizinkan. Sebaliknya, apabila terdapat aturan yang menolak request tersebut, maka koneksi akan dihentikan sebelum mencapai aplikasi.


Komponen Authorization Policy

Komponen Fungsi
selector Menentukan workload yang dikenai policy.
action Menentukan tindakan seperti ALLOW, DENY, atau AUDIT.
rules Berisi aturan evaluasi request.
from Menentukan sumber request.
to Menentukan operasi yang diizinkan.
when Menambahkan kondisi tambahan.

Fungsi Authorization Policy

  • Mengontrol akses antar workload.
  • Menerapkan prinsip Zero Trust.
  • Membatasi akses berdasarkan namespace.
  • Membatasi akses berdasarkan Service Account.
  • Membatasi akses berdasarkan metode HTTP.
  • Membatasi akses berdasarkan path.
  • Mengurangi risiko lateral movement.
  • Meningkatkan keamanan aplikasi cloud-native.
  • Melengkapi mekanisme autentikasi pada Istio.
  • Mendukung implementasi keamanan pada skala enterprise.

Hubungan Authorization Policy dengan HTTPRoute

HTTPRoute dan Authorization Policy memiliki peran yang berbeda tetapi saling melengkapi. HTTPRoute menentukan ke mana request harus diarahkan, sedangkan Authorization Policy menentukan siapa yang boleh mengakses resource tersebut.


Client

   │

   ▼

HTTPRoute

Routing

   │

   ▼

Authorization Policy

Access Control

   │

   ▼

Application

Kombinasi keduanya menghasilkan sistem yang tidak hanya mampu mengelola lalu lintas aplikasi secara efisien, tetapi juga memastikan setiap akses sesuai dengan kebijakan keamanan yang telah ditentukan.


Jenis Action pada Authorization Policy

Authorization Policy menyediakan beberapa jenis tindakan yang dapat diterapkan terhadap request yang masuk. Pemilihan action yang tepat memungkinkan administrator menyesuaikan kebijakan keamanan sesuai kebutuhan aplikasi dan tingkat risiko yang dihadapi.

1. ALLOW

ALLOW merupakan action yang digunakan untuk mengizinkan request yang memenuhi seluruh aturan pada Authorization Policy. Apabila sebuah request sesuai dengan rule yang telah ditentukan, maka request tersebut akan diteruskan menuju workload tujuan.


Incoming Request

        │

        ▼

 Match Rule ?

    │

 ┌──┴──┐

 │     │

Yes    No

 │      │

 ▼      ▼

ALLOW  Continue Evaluation

Action ini merupakan jenis policy yang paling sering digunakan karena administrator dapat menentukan secara spesifik siapa yang memiliki hak akses terhadap suatu layanan.


2. DENY

Action DENY digunakan untuk menolak request yang memenuhi kondisi tertentu. Berbeda dengan ALLOW, ketika rule DENY cocok dengan request yang masuk, proses evaluasi akan langsung dihentikan dan akses ditolak.


Incoming Request

        │

        ▼

 Authorization Policy

        │

        ▼

 DENY Rule Match

        │

        ▼

 HTTP 403 Forbidden

DENY umumnya digunakan untuk memblokir akses menuju endpoint sensitif atau mencegah namespace tertentu mengakses workload lain.


3. AUDIT

Selain ALLOW dan DENY, Istio juga menyediakan action AUDIT. Mode ini tidak memblokir request maupun mengizinkannya secara langsung, tetapi hanya mencatat aktivitas ke dalam sistem observability untuk kebutuhan audit dan analisis keamanan.


Incoming Request

        │

        ▼

Authorization Policy

        │

        ▼

 Audit Log

        │

        ▼

 Monitoring System

Mode AUDIT sangat berguna ketika administrator ingin menguji sebuah policy baru tanpa memengaruhi layanan yang sedang berjalan.


Rules pada Authorization Policy

Bagian rules merupakan inti dari Authorization Policy. Di dalamnya administrator menentukan kondisi yang harus dipenuhi agar request dapat diproses.


rules

 ├── from

 ├── to

 └── when

Ketiga komponen tersebut dapat dikombinasikan untuk menghasilkan kebijakan keamanan yang sangat fleksibel.


Komponen from

Bagian from digunakan untuk menentukan asal request. Administrator dapat membatasi akses berdasarkan namespace, service account, maupun principal identity.


Namespace A

      │

      ▼

Order Service

      │

      ▼

Payment Service

Sebagai contoh, hanya workload dari namespace production yang diperbolehkan mengakses Payment Service.


Komponen to

Bagian to menentukan operasi yang diperbolehkan terhadap workload tujuan. Operasi tersebut dapat berupa metode HTTP, path URL, maupun port tertentu.

Operation Contoh
Methods GET, POST, PUT, DELETE
Paths /api/order
Ports 80, 443

Komponen when

Bagian when digunakan untuk menambahkan kondisi tambahan berdasarkan atribut tertentu, misalnya header HTTP, JWT Claim, maupun informasi lain yang tersedia pada request.


Request

   │

Header

   │

Condition

   │

ALLOW

Kondisi tambahan ini memberikan fleksibilitas tinggi ketika organisasi menerapkan kebijakan keamanan yang lebih kompleks.


Workload Selector

Authorization Policy tidak selalu berlaku untuk seluruh workload. Administrator dapat menentukan workload tertentu menggunakan selector berdasarkan label Kubernetes.


Authorization Policy

        │

Selector

app=payment

        │

        ▼

Payment Pods

Pendekatan ini memungkinkan setiap layanan memiliki kebijakan keamanan yang berbeda sesuai kebutuhan masing-masing.


Membatasi Akses Berdasarkan Namespace

Salah satu implementasi yang paling umum adalah membatasi akses berdasarkan namespace. Misalnya hanya namespace frontend yang boleh mengakses service pembayaran.


Frontend Namespace

        │

        ▼

Payment Service

        ▲

        │

Other Namespace

 Access Denied

Dengan konfigurasi seperti ini, service dari namespace lain tidak dapat berkomunikasi langsung dengan Payment Service.


Membatasi Berdasarkan HTTP Method

Authorization Policy juga dapat mengizinkan metode HTTP tertentu saja.


GET

 │

 ▼

 ALLOW



POST

 │

 ▼

 DENY

Sebagai contoh, pengguna umum hanya diperbolehkan melakukan operasi baca (GET), sedangkan operasi POST dan DELETE dibatasi untuk administrator.


Membatasi Berdasarkan URL Path

Selain metode HTTP, administrator juga dapat membatasi akses berdasarkan path tertentu.


/api/public

     │

     ▼

ALLOW



/api/admin

     │

     ▼

DENY

Strategi ini umum digunakan untuk melindungi endpoint administrasi maupun API internal.


Contoh Authorization Policy Sederhana

apiVersion: security.istio.io/v1

kind: AuthorizationPolicy

metadata:

  name: allow-product

spec:

  selector:

    matchLabels:

      app: product

  action: ALLOW

  rules:

  - from:

    - source:

        namespaces:

        - frontend

Konfigurasi di atas mengizinkan workload pada namespace frontend mengakses service product.


Contoh Policy DENY

apiVersion: security.istio.io/v1

kind: AuthorizationPolicy

metadata:

  name: deny-delete

spec:

  selector:

    matchLabels:

      app: product

  action: DENY

  rules:

  - to:

    - operation:

        methods:

        - DELETE

Policy tersebut akan menolak seluruh request HTTP dengan metode DELETE menuju Product Service.


Hubungan Authorization Policy dengan RequestAuthentication

Dalam implementasi nyata, Authorization Policy sering dikombinasikan dengan RequestAuthentication. RequestAuthentication bertugas memverifikasi identitas pengguna melalui JSON Web Token (JWT), sedangkan Authorization Policy menggunakan identitas tersebut untuk menentukan apakah akses diizinkan atau ditolak.


Client

   │

JWT

   │

   ▼

RequestAuthentication

   │

Identity

   │

   ▼

Authorization Policy

   │

ALLOW / DENY

   │

   ▼

Application

Kombinasi keduanya menghasilkan sistem keamanan yang lebih kuat karena keputusan otorisasi didasarkan pada identitas yang telah diverifikasi.


Best Practice Menggunakan Authorization Policy

Menerapkan Authorization Policy pada lingkungan production memerlukan perencanaan yang matang agar keamanan meningkat tanpa mengganggu komunikasi antar layanan. Sebaiknya kebijakan dibuat secara bertahap, dimulai dari service yang paling kritis, kemudian diperluas ke seluruh workload setelah dilakukan pengujian.

  • Terapkan prinsip Least Privilege, yaitu hanya memberikan akses yang benar-benar diperlukan.
  • Hindari penggunaan wildcard (*) secara berlebihan.
  • Pisahkan Authorization Policy untuk setiap namespace agar lebih mudah dikelola.
  • Gunakan label workload yang konsisten.
  • Kombinasikan dengan RequestAuthentication agar identitas pengguna dapat diverifikasi.
  • Gunakan PeerAuthentication untuk mengaktifkan komunikasi mTLS.
  • Lakukan audit policy secara berkala.
  • Uji setiap perubahan pada lingkungan staging sebelum diterapkan ke production.
  • Gunakan observability untuk memantau dampak perubahan policy.
  • Dokumentasikan seluruh Authorization Policy agar mudah dipelihara.

Monitoring Authorization Policy

Setelah policy diterapkan, administrator perlu memastikan bahwa aturan berjalan sesuai harapan. Monitoring dapat dilakukan melalui metrik, log, maupun dashboard observability seperti Prometheus, Grafana, dan Kiali.


Client

   │

   ▼

Authorization Policy

   │

   ├── Access Granted

   ├── Access Denied

   ├── Response Time

   └── Error Rate

Melalui monitoring yang baik, administrator dapat mengetahui apakah terdapat lonjakan request yang ditolak, peningkatan latency, atau indikasi aktivitas yang tidak normal.


Troubleshooting Authorization Policy

1. Seluruh Request Ditolak

Jika semua request menghasilkan HTTP 403 Forbidden, periksa kembali selector, namespace, maupun rule yang digunakan. Kesalahan kecil pada label workload dapat menyebabkan policy diterapkan pada target yang tidak sesuai.


kubectl get authorizationpolicy

kubectl describe authorizationpolicy

2. Policy Tidak Berjalan

Pastikan workload telah menjadi bagian dari service mesh dan Waypoint Proxy atau Envoy yang bertanggung jawab terhadap Layer 7 telah aktif sesuai arsitektur yang digunakan.

3. Request Masih Bisa Mengakses Service

Periksa urutan evaluasi policy, namespace tempat policy dibuat, serta apakah terdapat Authorization Policy lain yang masih mengizinkan akses tersebut.

4. JWT Tidak Terbaca

Apabila Authorization Policy menggunakan informasi dari JWT, pastikan RequestAuthentication telah dikonfigurasi dengan benar sebelum policy otorisasi diterapkan.


Implementasi Authorization Policy pada Lingkungan Production

Pada lingkungan production, Authorization Policy biasanya diterapkan secara bertingkat. Service yang berhubungan langsung dengan internet memiliki kebijakan yang lebih ketat dibandingkan service internal.


Internet

    │

Gateway

    │

HTTPRoute

    │

Authorization Policy

    │

Frontend

    │

Authorization Policy

    │

Order Service

    │

Authorization Policy

    │

Payment Service

Dengan pendekatan tersebut, setiap lapisan memiliki kontrol akses masing-masing sehingga apabila salah satu komponen mengalami gangguan, dampaknya dapat diminimalkan.


Kelebihan Authorization Policy

  • Mendukung implementasi Zero Trust Security.
  • Kontrol akses berbasis identitas workload.
  • Mudah diintegrasikan dengan RequestAuthentication.
  • Mendukung Ambient Mesh maupun Sidecar Mode.
  • Konfigurasi deklaratif menggunakan YAML.
  • Dapat diterapkan pada tingkat namespace maupun workload.
  • Mengurangi risiko lateral movement di dalam cluster.
  • Mudah diaudit dan dipelihara.
  • Terintegrasi dengan observability Istio.
  • Sangat cocok untuk arsitektur microservices.

Kekurangan Authorization Policy

  • Membutuhkan pemahaman mengenai identitas workload.
  • Konfigurasi dapat menjadi kompleks pada lingkungan berskala besar.
  • Kesalahan konfigurasi dapat menyebabkan service tidak dapat diakses.
  • Memerlukan dokumentasi yang baik agar mudah dipelihara.
  • Perlu dipadukan dengan autentikasi untuk menghasilkan keamanan yang optimal.

Contoh Penerapan pada Sistem Perbankan

Sebagai ilustrasi, sebuah aplikasi perbankan memiliki beberapa layanan utama seperti Account Service, Transfer Service, Payment Service, dan Notification Service. Tidak semua layanan diperbolehkan saling mengakses secara langsung.


Mobile Banking

      │

Gateway

      │

Authorization Policy

      │

 ┌───────────────┬───────────────┐

 ▼               ▼               ▼

Account      Transfer      Payment

Service       Service       Service

Misalnya hanya Transfer Service yang diizinkan mengakses Payment Service, sedangkan layanan lain harus melalui proses tertentu. Pendekatan ini membantu mengurangi risiko akses yang tidak sah.


Baca Juga

Silakan ganti tautan di atas dengan URL artikel yang sesuai pada Blogger Anda agar internal linking semakin optimal.


Artikel Selanjutnya

Setelah memahami bagaimana Authorization Policy menentukan hak akses setiap workload, langkah berikutnya adalah mempelajari RequestAuthentication, yaitu mekanisme autentikasi berbasis JSON Web Token (JWT) pada Istio.


HTTPRoute

      │

      ▼

RequestAuthentication

      │

Verify JWT

      │

      ▼

Authorization Policy

      │

ALLOW / DENY

      │

      ▼

Application

Melalui RequestAuthentication, Istio dapat memverifikasi identitas pengguna sebelum Authorization Policy mengevaluasi apakah request tersebut diizinkan atau ditolak.


Pertanyaan yang Sering Diajukan (FAQ)

Apa itu Authorization Policy?

Authorization Policy adalah resource keamanan Istio yang digunakan untuk mengatur hak akses terhadap workload berdasarkan identitas dan aturan tertentu.

Apa perbedaan Authorization dan Authentication?

Authentication memverifikasi identitas pengguna atau workload, sedangkan Authorization menentukan apakah identitas tersebut memiliki hak untuk mengakses resource tertentu.

Apa fungsi action ALLOW?

ALLOW digunakan untuk memberikan izin kepada request yang memenuhi seluruh aturan pada policy.

Kapan menggunakan DENY?

DENY digunakan ketika administrator ingin memblokir akses terhadap operasi, path, atau sumber tertentu.

Apa fungsi AUDIT?

AUDIT mencatat aktivitas request tanpa memengaruhi hasil akses, sehingga berguna untuk evaluasi dan audit keamanan.

Apakah Authorization Policy dapat digunakan tanpa JWT?

Ya, tetapi kemampuannya akan lebih terbatas. Untuk skenario yang membutuhkan identitas pengguna, Authorization Policy biasanya dikombinasikan dengan RequestAuthentication.

Apakah Authorization Policy mendukung Ambient Mesh?

Ya. Pada Ambient Mesh, Authorization Policy diterapkan melalui Waypoint Proxy untuk kebijakan Layer 7.

Apakah satu workload dapat memiliki lebih dari satu Authorization Policy?

Ya. Istio akan mengevaluasi seluruh policy yang berlaku terhadap workload tersebut sesuai mekanisme evaluasi yang diterapkan.

Mengapa Authorization Policy penting?

Karena resource ini membantu memastikan bahwa hanya identitas yang berwenang yang dapat mengakses layanan tertentu, sehingga meningkatkan keamanan aplikasi cloud-native.

Apa hubungan Authorization Policy dengan HTTPRoute?

HTTPRoute mengatur arah lalu lintas, sedangkan Authorization Policy menentukan apakah request yang telah diarahkan tersebut boleh mengakses workload tujuan.


Kesimpulan

Istio Authorization Policy merupakan salah satu komponen penting dalam membangun keamanan pada Kubernetes Service Mesh. Dengan pendekatan berbasis identitas dan prinsip Zero Trust Security, administrator dapat mengontrol akses ke setiap workload secara lebih detail dibandingkan mekanisme keamanan jaringan tradisional.

Dikombinasikan dengan HTTPRoute, RequestAuthentication, PeerAuthentication, serta fitur-fitur Istio lainnya, Authorization Policy membantu membangun sistem yang aman, fleksibel, dan mudah dikelola pada lingkungan cloud-native modern. Penggunaan policy yang terencana juga memudahkan organisasi dalam memenuhi kebutuhan keamanan dan kepatuhan pada skala enterprise.

Postingan populer dari blog ini

Istio Egress Gateway: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio VirtualService: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

Istio Ingress Gateway: Pengertian, Cara Kerja, Arsitektur, Komponen, Fungsi, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234