Melindungi penguatan data plane Kubernetes Anda

Halaman ini menjelaskan cara menggunakan kumpulan rekomendasi keamanan Microsoft Defender untuk Cloud yang didedikasikan untuk penguatan data plane Kubernetes.

Tip

Untuk daftar rekomendasi keamanan yang mungkin muncul untuk kluster dan node Kubernetes, lihat Rekomendasi kontainer dari tabel referensi rekomendasi.

Menyiapkan perlindungan beban kerja Anda

Microsoft Defender untuk Cloud menyertakan bundel rekomendasi yang tersedia setelah Anda menginstal Add-on Azure Policy untuk Kubernetes atau ekstensi.

Prasyarat

Mengaktifkan penguatan data plane Kubernetes

Saat Anda mengaktifkan Microsoft Defender untuk Kontainer, kluster Azure Kubernetes Service, dan perlindungan kluster Kubernetes dengan dukungan Azure Arc (Pratinjau) keduanya diaktifkan secara default. Anda dapat mengonfigurasi penguatan data plane Kubernetes, saat Anda mengaktifkan Microsoft Defender untuk Kontainer.

Untuk mengaktifkan kluster Azure Kubernetes Service dan kluster Kubernetes dengan dukungan Azure Arc (Pratinjau):

  1. Masuk ke portal Azure.

  2. Navigasikan ke Microsoft Defender untuk Cloud>Pengaturan lingkungan.

  3. Pilih langganan yang relevan.

  4. Di halaman paket Defender, pastikan Kontainer dialihkan ke Aktif.

  5. Pilih Konfigurasikan.

    Screenshot showing where on the defenders plan to go to to select the configure button.

  6. Pada halaman Konfigurasi lanjutan, alihkan setiap komponen yang relevan ke Aktif.

    Screenshot showing the toggles used to enable or disable them.

  7. Pilih Simpan.

Mengonfigurasi komponen Defender untuk Kontainer

Jika Anda menonaktifkan salah satu perlindungan default saat mengaktifkan Microsoft Defender untuk Kontainer, Anda dapat mengubah konfigurasi dan mengaktifkannya kembali melalui provisi otomatis.

Untuk mengonfigurasi komponen Defender untuk Kontainer:

  1. Masuk ke portal Azure.

  2. Navigasikan ke Microsoft Defender untuk Cloud>Pengaturan lingkungan.

  3. Pilih langganan yang relevan.

  4. Dari bilah alat sisi kiri, pilih Provisi otomatis.

  5. Pastikan komponen Microsoft Defender untuk Kontainer (pratinjau) diaktifkan.

    Screenshot showing that Microsoft Defender for Containers is toggled to on.

  6. Pilih Edit konfigurasi.

    Screenshot showing the edit configuration button.

  7. Pada halaman Konfigurasi lanjutan, alihkan setiap komponen yang relevan ke Aktif.

    Screenshot showing each option and the toggles to enable or disable them.

  8. Pilih Konfirmasi.

Menyebarkan add-on ke kluster yang ditentukan

Anda dapat secara manual mengonfigurasi add-on penguatan data plane Kubernetes, atau perlindungan ekstensi melalui halaman Rekomendasi. Hal ini dapat dicapai dengan memperbaiki Azure Policy add-on for Kubernetes should be installed and enabled on your clusters rekomendasi, atau Azure policy extension for Kubernetes should be installed and enabled on your clusters.

Untuk Menyebarkan add-on ke kluster tertentu:

  1. Dari halaman rekomendasi, cari rekomendasi Azure Policy add-on for Kubernetes should be installed and enabled on your clusters, atau Azure policy extension for Kubernetes should be installed and enabled on your clusters.

    Recommendation **Azure Policy add-on for Kubernetes should be installed and enabled on your clusters**.

    Tip

    Rekomendasi disertakan dalam lima kontrol keamanan yang berbeda dan tidak masalah mana yang Anda pilih di langkah berikutnya.

  2. Dari salah satu kontrol keamanan, pilih rekomendasi untuk melihat sumber daya tempat Anda dapat memasang add-on.

  3. Pilih kluster yang relevan, dan Remediasi.

    Recommendation details page for Azure Policy add-on for Kubernetes should be installed and enabled on your clusters.

Melihat dan mengonfigurasi bundel rekomendasi

  1. Sekitar 30 menit setelah penginstalan add-on selesai, Defender untuk Cloud menampilkan status kesehatan kluster untuk rekomendasi berikut, masing-masing dalam kontrol keamanan yang relevan seperti terlihat:

    Catatan

    Jika Anda menginstal add-on untuk pertama kalinya, rekomendasi ini akan muncul sebagai tambahan baru dalam daftar rekomendasi.

    Tip

    Beberapa rekomendasi memiliki parameter yang harus disesuaikan melalui Azure Policy untuk menggunakannya secara efektif. Misalnya, untuk mendapatkan manfaat dari rekomendasi Gambar kontainer harus disebarkan hanya dari registri tepercaya, Anda harus menentukan registri tepercaya Anda.

    Jika Anda tidak memasukkan parameter yang diperlukan untuk rekomendasi yang membutuhkan konfigurasi, beban kerja Anda akan ditampilkan sebagai tidak sehat.

    Nama rekomendasi Kontrol keamanan Konfigurasi diperlukan
    CPU kontainer dan batas memori harus diberlakukan Melindungi aplikasi dari serangan DDoS Ya
    Gambar kontainer harus disebarkan hanya dari registri tepercaya Meremediasi kerentanan Ya
    Kemampuan Linux dengan hak istimewa paling rendah harus diberlakukan untuk kontainer Kelola akses dan izin akses Ya
    Kontainer hanya boleh menggunakan profil AppArmor yang diizinkan Remediasi konfigurasi keamanan Ya
    Layanan hanya mendengarkan pada port yang diizinkan Batasi akses jaringan yang tidak sah Ya
    Penggunaan jaringan dan port host harus dibatasi Batasi akses jaringan yang tidak sah Ya
    Penggunaan volume pod HostPath yang dipasang harus dibatasi untuk daftar yang diketahui Kelola akses dan izin akses Ya
    Kontainer dengan eskalasi hak istimewa harus dihindari Kelola akses dan izin akses Tidak
    Kontainer yang berbagi namespace layanan host yang sensitif harus dihindari Kelola akses dan izin akses Tidak
    Sistem file akar yang tidak dapat diubah (baca-saja) harus diberlakukan untuk kontainer Kelola akses dan izin akses Tidak
    Kluster Kube hanya boleh diakses melalui HTTPS Mengenkripsi data dalam transit Tidak
    Kluster Kube harus menonaktifkan pemasangan otomatis info masuk API Kelola akses dan izin akses Tidak
    Kluster kube tidak boleh menggunakan namespace layanan default Menerapkan praktik terbaik keamanan Tidak
    Kluster Kube tidak boleh memberi kemampuan keamanan CAPSYSADMIN Kelola akses dan izin akses Tidak
    Kontainer dengan hak istimewa harus dihindari Kelola akses dan izin akses Tidak
    Menjalankan kontainer sebagai pengguna akar harus dihindari Kelola akses dan izin akses Tidak

Untuk rekomendasi dengan parameter yang perlu disesuaikan, Anda perlu mengatur parameter:

Untuk mengatur parameter:

  1. Masuk ke portal Azure.

  2. Navigasikan ke Microsoft Defender untuk Cloud>Pengaturan lingkungan.

  3. Pilih langganan yang relevan.

  4. Dari menu Defender untuk Cloud, pilih Kebijakan keamanan.

  5. Pilih penugasan yang relevan. Penugasan default adalah ASC default.

  6. Buka tab Parameter dan ubah nilai sesuai yang diperlukan.

    Modifying the parameters for one of the recommendations in the Kubernetes data plane hardening protection bundle.

  7. Pilih Tinjau + simpan.

  8. Pilih Simpan.

Untuk menerapkan salah satu rekomendasi:

  1. Buka halaman detail rekomendasi dan pilih Tolak:

    Deny option for Azure Policy parameter.

    Langkah ini akan membuka panel tempat Anda mengatur cakupan.

  2. Saat Anda telah set cakupan, pilih Ubah untuk menolak.

Untuk melihat rekomendasi mana yang berlaku untuk kluster Anda:

  1. Buka halaman inventaris aset Defender untuk Cloud dan gunakan filter jenis sumber daya ke layanan Kube.

  2. Pilih kluster untuk menyelidiki dan meninjau rekomendasi yang tersedia.

Saat melihat rekomendasi dari set perlindungan beban kerja, Anda akan melihat daftar jumlah Pod yang terpengaruh ("komponen Kube") di samping kluster. Untuk daftar Pod tertentu, pilih kluster lalu pilih Ambil tindakan.

Viewing the affected pods for a K8s recommendation.

Untuk menguji penerapannya, gunakan dua penyebaran Kubernetes di bawah ini:

  • Pertama adalah untuk penyebaran yang sehat, sesuai dengan bundel rekomendasi perlindungan beban kerja.

  • Kedua adalah untuk penyebaran yang tidak sehat, tidak sesuai dengan semua rekomendasi.

Sebarkan contoh file .yaml seperti apa adanya, atau gunakan sebagai referensi untuk remediasi beban kerja Anda (langkah VIII).

Contoh penyebaran file .yaml yang sehat

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-healthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:
      labels:
        app: redis
      annotations:
        container.apparmor.security.beta.kubernetes.io/redis: runtime/default
    spec:
      containers:
      - name: redis
        image: <customer-registry>.azurecr.io/redis:latest
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 100m
            memory: 250Mi
        securityContext:
          privileged: false
          readOnlyRootFilesystem: true
          allowPrivilegeEscalation: false
          runAsNonRoot: true
          runAsUser: 1000
---
apiVersion: v1
kind: Service
metadata:
  name: redis-healthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 80
    targetPort: 80

Contoh penyebaran file .yaml yang tidak sehat

apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis-unhealthy-deployment
  labels:
    app: redis
spec:
  replicas: 3
  selector:
    matchLabels:
      app: redis
  template:
    metadata:      
      labels:
        app: redis
    spec:
      hostNetwork: true
      hostPID: true 
      hostIPC: true
      containers:
      - name: redis
        image: redis:latest
        ports:
        - containerPort: 9001
          hostPort: 9001
        securityContext:
          privileged: true
          readOnlyRootFilesystem: false
          allowPrivilegeEscalation: true
          runAsUser: 0
          capabilities:
            add:
              - NET_ADMIN
        volumeMounts:
        - mountPath: /test-pd
          name: test-volume
          readOnly: true
      volumes:
      - name: test-volume
        hostPath:
          # directory location on host
          path: /tmp
---
apiVersion: v1
kind: Service
metadata:
  name: redis-unhealthy-service
spec:
  type: LoadBalancer
  selector:
    app: redis
  ports:
  - port: 6001
    targetPort: 9001

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara mengonfigurasi penguatan data plane Kubernetes.

Untuk materi terkait, lihat artikel berikut ini: