Mengaktifkan fitur opsional di Anthos Service Mesh terkelola

Halaman ini menjelaskan cara mengaktifkan fitur opsional di bidang kontrol Anthos Service Mesh terkelola. Untuk mengetahui informasi tentang bidang kontrol dalam cluster, lihat Mengaktifkan fitur opsional di bidang kontrol dalam cluster.

Saat Anda menyediakan Anthos Service Mesh terkelola, fitur yang diaktifkan secara default berbeda menurut platform. Jika saat ini Anda menggunakan konfigurasi berbasis IstioOperator, alat Bermigrasi dari IstioOperator dapat membantu mengonversi ke konfigurasi yang didukung oleh bidang kontrol terkelola.

Log akses Envoy

Jalankan perintah berikut untuk mengaktifkan logging akses Envoy:

  1. Jalankan perintah berikut untuk menambahkan accessLogFile: /dev/stdout:

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        accessLogFile: /dev/stdout
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

    dengan release-channel sebagai saluran rilis (asm-managed, asm-managed-stable, atau asm-managed-rapid).

  2. Jalankan perintah berikut untuk melihat configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. Untuk memastikan bahwa logging akses diaktifkan, pastikan baris accessLogFile: /dev/stdout muncul di bagian mesh:.

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        accessLogFile: /dev/stdout
    ...
    

Mengaktifkan Cloud Tracing

Jalankan perintah berikut untuk mengaktifkan Cloud Trace:

  1. Jalankan perintah berikut:

    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    data:
      mesh: |-
        defaultConfig:
          tracing:
            stackdriver: {}
    kind: ConfigMap
    metadata:
      name: istio-release-channel
      namespace: istio-system
    EOF
    

    dengan release-channel sebagai saluran rilis (asm-managed, asm-managed-stable, atau asm-managed-rapid).

  2. Jalankan perintah berikut untuk melihat configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  3. Untuk memastikan bahwa Cloud Trace diaktifkan, pastikan baris berikut muncul di bagian mesh:.

    ...
    apiVersion: v1
    data:
      mesh: |
        ....
        defaultConfig:
          tracing:
            stackdriver:{}
    ...
    
  4. Mulai ulang proxy.

    Perhatikan bahwa konfigurasi tracer saat ini adalah bagian dari konfigurasi bootstrap proxy, sehingga setiap pod harus dimulai ulang dan dimasukkan ulang untuk mengambil update tracer. Misalnya, Anda dapat menggunakan perintah berikut untuk memulai ulang pod yang termasuk dalam deployment:

    kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

Untuk informasi selengkapnya tentang header rekaman aktivitas yang didukung, lihat Mengakses rekaman aktivitas.

Gambar proxy tanpa hambatan

Sebagai praktik terbaik, Anda harus membatasi konten runtime container hanya ke paket yang diperlukan. Pendekatan ini meningkatkan keamanan serta rasio sinyal terhadap derau dari pemindai Kerentanan dan Eksposur Umum (CVE). Istio menyediakan image proxy berdasarkan image dasar tanpa hambatan.

Konfigurasi berikut mengaktifkan image distroless untuk seluruh Anthos Service Mesh. Perubahan jenis gambar mengharuskan setiap pod untuk dimulai ulang dan dimasukkan ulang agar dapat diterapkan.

     apiVersion: v1
     kind: ConfigMap
     metadata:
       name: istio-release-channel
       namespace: istio-system
     data:
       mesh: |-
         defaultConfig:
           image:
             imageType: distroless

Gambar proxy distroless tidak berisi biner selain proxy. Oleh karena itu, Anda tidak dapat melakukan exec pada shell atau menggunakan curl, ping, atau utilitas debug lainnya di dalam container. Jika memerlukan akses ke alat ini untuk deployment tertentu, Anda dapat mengganti imageType menggunakan anotasi pod berikut.

sidecar.istio.io/proxyImageType: debug

Setelah mengubah jenis image deployment melalui anotasi, deployment harus dimulai ulang.

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

Untuk sebagian besar jenis proses debug proxy, istioctl proxy-cmd harus digunakan yang tidak memerlukan image dasar debug.

Kebijakan Traffic Keluar

Secara default, outboundTrafficPolicy disetel ke ALLOW_ANY. Dalam mode ini, semua traffic ke layanan eksternal diizinkan. Untuk mengontrol dan membatasi traffic hanya ke layanan eksternal yang entri layanannya sudah ditentukan, Anda dapat mengubah perilaku default ALLOW_ANY menjadi REGISTRY_ONLY

  1. Konfigurasi berikut mengonfigurasi outboundTrafficPolicy menjadi REGISTRY_ONLY

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: istio-release-channel
        namespace: istio-system
      data:
        mesh: |-
          outboundTrafficPolicy:
           mode: REGISTRY_ONLY
    

    dengan release-channel sebagai saluran rilis (asm-managed, asm-managed-stable, atau asm-managed-rapid).

  2. Anda dapat membuat perubahan konfigurasi yang diperlukan di atas di configmap menggunakan perintah di bawah ini

    kubectl edit configmap istio-release-channel -n istio-system -o yaml
    
  3. Jalankan perintah berikut untuk melihat configmap:

    kubectl get configmap istio-release-channel -n istio-system -o yaml
    
  4. Untuk memverifikasi bahwa outboundTrafficPolicy diaktifkan dengan REGISTRY_ONLY, pastikan baris berikut muncul di bagian mesh:.

    ...
    apiVersion: v1
    data:
      mesh: |
        outboundTrafficPolicy:
         mode: REGISTRY_ONLY
    ...
    

Autentikasi pengguna akhir

Anda dapat mengonfigurasi autentikasi pengguna Anthos Service Mesh terkelola untuk autentikasi pengguna akhir berbasis browser dan kontrol akses ke beban kerja yang di-deploy. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi autentikasi pengguna Anthos Service Mesh.

Mengonfigurasi versi TLS minimum untuk workload Anda

Anda dapat menggunakan kolom minProtocolVersion untuk menentukan versi TLS minimum untuk koneksi TLS di antara beban kerja Anda. Untuk mengetahui informasi selengkapnya tentang cara menetapkan versi TLS minimum dan memeriksa konfigurasi TLS beban kerja Anda, lihat Konfigurasi Versi TLS Minimum Workload Istio.

Contoh berikut menunjukkan ConfigMap yang menetapkan versi TLS minimum untuk beban kerja ke 1.3:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-release-channel
  namespace: istio-system
data:
  mesh: |-
    meshMTLS:
      minProtocolVersion: TLSV1_3