Mengaktifkan kebijakan keamanan pod

Dengan mengaktifkan kebijakan keamanan pod, Anda memastikan bahwa namespace yang disusupi (selain istio-system) tidak memengaruhi keamanan namespace lain yang menggunakan node yang sama. Contoh file resource PodSecurityPolicy yang berfungsi dengan Mesh CA disediakan dengan Anthos Service Mesh. Anda dapat mengubah file ini sesuai kebutuhan. Sebagai berikut, Anda harus menerapkan kebijakan keamanan pod terlebih dahulu, lalu mengaktifkan kebijakan keamanan pod untuk cluster GKE.

Mengaktifkan kebijakan keamanan pod

  1. Periksa apakah sistem Anda sudah menetapkan kebijakan keamanan pod:

    kubectl get psp --all-namespaces
    
    • Jika perintah ini menampilkan daftar kebijakan yang ada, berarti sistem Anda telah menerapkan kebijakan keamanan pod. Sebaiknya Anda menyediakan file YAML PodSecurityPolicy yang sudah ada untuk mengantisipasi jika Anda perlu melakukan rollback. Anda perlu menambahkan bagian berikut ke bagian spec di setiap kebijakan keamanan pod yang sudah ada, kecuali kebijakan yang dimulai dengan gce.

      allowedHostPaths:
        - pathPrefix: "/var/run/sds"
          readOnly: true
      allowedCapabilities:
        - NET_ADMIN
        - NET_RAW
      

      Baris ini memungkinkan pembacaan dari jalur host /var/run/sds, dan memungkinkan injeksi file bantuan otomatis.

      Anda dapat menggunakan kubectl untuk mengedit dan menerapkan kebijakan keamanan pod di Kubernetes:

      kubectl edit psp YOUR_EXISTING_POD_SECURITY_POLICY
      
    • Jika perintah tersebut menampilkan No resources found, berarti Anda tidak memiliki kebijakan keamanan pod yang ditentukan. Anda mungkin masih perlu memodifikasi file samples/security/psp/all-pods-psp.yaml untuk memastikannya tidak bentrok dengan workload yang ada. Untuk mengetahui detail selengkapnya, lihat panduan Kebijakan Keamanan Pod. Setelah mengubah file, terapkan:

      kubectl apply -f "samples/security/psp/all-pods-psp.yaml"
      
  2. Terapkan kebijakan keamanan pod untuk mengamankan Secret Discovery Service (SDS):

    kubectl apply -f "samples/security/psp/citadel-agent-psp.yaml"
    

    Hal ini memberikan hak istimewa kepada agen Citadel (juga disebut sebagai Agen Node) untuk membuat jalur UDS /var/run/sds di VM host.

  3. Jalankan perintah berikut untuk mengaktifkan kebijakan keamanan pod:

    gcloud beta container clusters update ${CLUSTER_NAME} \
        --enable-pod-security-policy
    

    Mengaktifkan kebijakan keamanan pod mungkin memerlukan waktu beberapa menit. Selama proses ini, beban kerja yang ada tidak akan dapat terhubung ke master Kubernetes. Tunggu hingga master Kubernetes aktif lagi. Anda dapat memeriksa status cluster di Google Cloud Console di halaman cluster Kubernetes.

    Untuk mengetahui informasi selengkapnya, baca artikel Menggunakan kebijakan keamanan pod.

Memverifikasi kebijakan keamanan pod

Jika Anda sudah memiliki beban kerja, sebaiknya verifikasi bahwa beban kerja tersebut dapat di-deploy dengan kebijakan keamanan pod yang baru.

  1. Pilih deployment yang ingin diperiksa dan tingkatkan replikanya. Misalnya, jika layanan yang ditentukan memiliki 1 replika, tingkatkan 1 replika:

    kubectl scale deployment YOUR_DEPLOYMENT --replicas=2 -n YOUR_NAMESPACE
    
  2. Pastikan bahwa deployment mengalami peningkatan skala:

    kubectl get deploy
    
  3. Memastikan bahwa beban kerja baru dapat di-deploy. Ini berarti bahwa kebijakan keamanan pod tidak memengaruhi deployment beban kerja untuk layanan.

    kubectl get deployment YOUR_SERVICE -n YOUR_NAMESPACE
    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    YOUR_SERVICE            2/2     2            2           ...
    
  4. Menurunkan skala replika layanan:

    kubectl scale deployment YOUR_SERVICE --replicas=1 -n YOUR_NAMESPACE
    
  5. Jika beban kerja tidak berhasil di-deploy, Anda dapat menonaktifkan kebijakan keamanan pod untuk sementara selagi memperbaiki file YAML:

    gcloud beta container clusters update ${CLUSTER_NAME} \
      --no-enable-pod-security-policy
    

Langkah selanjutnya