Untuk mendapatkan kontrol detail halus atas traffic HTTP, konfigurasikan kebijakan otorisasi guna mengelola akses antar layanan. Kebijakan ini memastikan hanya permintaan yang sah yang dapat mengakses layanan tertentu, sehingga meningkatkan keamanan dan keandalan.
Prasyarat
-
Anda telah menerapkan aplikasi Bookinfo ke instans ASM.
-
Anda telah menetapkan resource Istio yang diperlukan. Untuk informasi lebih lanjut, lihat Gunakan resource Istio untuk mengarahkan traffic ke versi layanan yang berbeda.
Langkah 1: Konfigurasikan kebijakan otorisasi deny-all
Pertama, konfigurasikan kebijakan garis dasar untuk menolak semua permintaan ke workload. Anda kemudian akan memberikan izin tertentu secara bertahap.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi sisi kiri, pilih . Pada halaman yang muncul, klik Create from YAML.
-
Pada halaman Create, pilih default dari daftar drop-down Namespaces, pilih template Scenario Template apa pun, tempel konten YAML berikut ke editor YAML, lalu klik Create.
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: allow-nothing namespace: default spec: {}Setelah kebijakan dibuat, kebijakan otorisasi allow-nothing muncul di halaman AuthorizationPolicy.
-
Di bilah alamat browser Anda, masukkan
http://{your_ingress_gateway_address}/productpageuntuk mengakses aplikasi Bookinfo.Halaman mengembalikan
RBAC: access denied, yang menunjukkan bahwa Anda tidak memiliki izin yang diperlukan. Untuk informasi tentang cara mendapatkan alamat IP gateway, lihat Dapatkan alamat ingress gateway.
Langkah 2: Konfigurasikan kebijakan untuk layanan Productpage
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Pada halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Gunakan salah satu metode berikut untuk membuat kebijakan otorisasi yang mengizinkan akses ke layanan Productpage.
Metode 1: Buat dari YAML
-
Di halaman AuthorizationPolicy, klik Create from YAML.
-
Di halaman Create, pilih default dari daftar drop-down Namespaces, pilih template Scenario Template apa pun, tempel konten YAML berikut ke editor YAML, lalu klik Create.
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: "productpage-viewer" namespace: default spec: selector: matchLabels: app: productpage action: ALLOW rules: - to: - operation: methods: ["GET"]
Metode 2: Buat menggunakan UI
-
Di halaman AuthorizationPolicy, klik Create.
-
Di halaman Create, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut, lalu klik Create.
Parameter
Deskripsi
Name
Masukkan productpage-viewer.
Policy Type
Pilih ALLOW.
Namespaces
Di tab Workload Scope, atur Namespaces menjadi default.
Effective Scope
Pilih Service.
Workload
Pilih productpage.
Request Matching Rules
Di bagian Add Request Target, aktifkan Methods dan atur nilainya menjadi GET.
Setelah kebijakan dibuat, kebijakan otorisasi productpage-viewer muncul di halaman AuthorizationPolicy.
-
-
Di bilah alamat browser Anda, masukkan
http://{your_ingress_gateway_address}/productpageuntuk mengakses aplikasi Bookinfo.Anda sekarang dapat mengakses halaman Productpage. Namun, layanan Details dan Reviews gagal dimuat karena masih memerlukan otorisasi.
Langkah 3: Konfigurasikan kebijakan untuk layanan Details
Konfigurasikan kebijakan otorisasi untuk layanan Details agar mengizinkan permintaan dari serviceAccount Productpage.
-
Dapatkan nilai parameter
serviceAccountuntuk workload Productpage.-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Deployments, temukan deployment productpage-v1. Di kolom Actions, pilih untuk menemukan nilai parameter
serviceAccount.Nilai parameter
serviceAccountadalahbookinfo-productpage.dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} serviceAccount: bookinfo-productpage serviceAccountName: bookinfo-productpage
-
-
Buat kebijakan otorisasi.
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Buat kebijakan otorisasi menggunakan salah satu metode berikut.
Metode 1: Buat dari YAML
-
Di halaman AuthorizationPolicy, klik Create from YAML.
-
Di halaman Create, pilih default dari daftar drop-down Namespaces, pilih template Scenario Template apa pun, tempel konten YAML berikut ke editor YAML, lalu klik Create.
kind: AuthorizationPolicy apiVersion: security.istio.io/v1beta1 metadata: name: details-viewer namespace: default spec: action: ALLOW rules: - to: - operation: methods: - GET - from: - source: principals: - cluster.local/ns/default/sa/bookinfo-productpage # Ini adalah nilai serviceAccount yang diperoleh pada sub-langkah sebelumnya. selector: matchLabels: app: details
Metode 2: Buat menggunakan UI
-
Di halaman AuthorizationPolicy, klik Create.
-
Di halaman Create, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut, lalu klik Create.
Parameter
Deskripsi
Name
Masukkan details-viewer.
Policy Type
Pilih ALLOW.
Namespaces
Di tab Workload Scope, atur Namespaces menjadi default.
Effective Scope
Pilih Service.
Workload
Pilih details.
Request Matching Rules
-
Di bagian Add Request Source, aktifkan Principals dan atur nilainya menjadi cluster.local/ns/default/sa/bookinfo-productpage.
Catatanbookinfo-productpageadalah nilai parameterserviceAccountyang Anda peroleh di sub-langkah pertama. -
Di bagian Add Request Target, aktifkan Methods dan atur nilainya menjadi GET.
-
Setelah kebijakan dibuat, kebijakan otorisasi details-viewer muncul di halaman AuthorizationPolicy.
-
-
-
Di bilah alamat browser Anda, masukkan
http://{your_ingress_gateway_address}/productpageuntuk mengakses aplikasi Bookinfo.Layanan Details sekarang dapat diakses, tetapi layanan Reviews belum.
Langkah 4: Konfigurasikan kebijakan untuk layanan Reviews
-
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
-
Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih .
-
Buat kebijakan otorisasi menggunakan salah satu metode berikut.
Metode 1: Buat dari YAML
-
Di halaman AuthorizationPolicy, klik Create from YAML.
-
Di halaman Create, pilih default dari daftar drop-down Namespaces, pilih template Scenario Template apa pun, tempel konten YAML berikut ke editor YAML, lalu klik Create.
kind: AuthorizationPolicy apiVersion: security.istio.io/v1beta1 metadata: name: reviews-viewer namespace: default spec: action: ALLOW rules: - to: - operation: methods: - GET - from: - source: principals: - cluster.local/ns/default/sa/bookinfo-productpage selector: matchLabels: app: reviews
Metode 2: Buat menggunakan UI
-
Di halaman AuthorizationPolicy, klik Create.
-
Di halaman Create, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut, lalu klik Create.
Parameter
Deskripsi
Name
Masukkan reviews-viewer.
Policy Type
Pilih ALLOW.
Namespaces
Di tab Workload Scope, atur Namespaces menjadi default.
Effective Scope
Pilih Service.
Workload
Pilih reviews.
Request Matching Rules
-
Di bagian Add Request Source, aktifkan Principals dan atur nilainya menjadi cluster.local/ns/default/sa/bookinfo-productpage.
Catatanbookinfo-productpageadalah nilai parameterserviceAccountyang Anda peroleh di Langkah 3. -
Di bagian Add Request Target, aktifkan Methods dan atur nilainya menjadi GET.
-
Setelah kebijakan dibuat, kebijakan otorisasi reviews-viewer muncul di halaman AuthorizationPolicy.
-
-
Di bilah alamat browser Anda, masukkan
http://{your_ingress_gateway_address}/productpageuntuk mengakses aplikasi Bookinfo.Kedua layanan Details dan Reviews sekarang dapat diakses.
Dokumen terkait
-
Kebijakan otorisasi yang salah konfigurasi dapat menyebabkan penolakan atau pemberian akses yang tidak disengaja. Untuk mencegah hal ini, Anda dapat menggunakan mode dry-run untuk menguji efek kebijakan dengan menganalisis log sebelum diberlakukan. Untuk informasi lebih lanjut, lihat Gunakan mode dry-run untuk kebijakan otorisasi ASM.
-
Untuk menerapkan kontrol detail halus atas traffic TCP antar layanan, lihat Konfigurasikan kebijakan otorisasi untuk traffic TCP.
-
Untuk mengontrol akses ke layanan di luar mesh, lihat Kontrol akses dari layanan dalam mesh ke website eksternal dan Kontrol akses dari layanan dalam mesh ke database eksternal.
-
Anda dapat menyesuaikan konten log akses gerbang ASM untuk segera mengidentifikasi potensi masalah keamanan. Untuk informasi lebih lanjut, lihat Hasilkan dan kumpulkan log akses gerbang ASM.
-
Anda dapat mengaktifkan fitur audit mesh untuk mencatat dan melacak operasi pengguna. Anda juga dapat mengonfigurasi peringatan audit untuk operasi pada resource mesh agar diberi tahu ketika resource kritis dimodifikasi. Untuk informasi lebih lanjut, lihat Gunakan audit operasi KubeAPI dan Konfigurasikan peringatan audit untuk operasi pada resource mesh.