Menyiapkan penerapan kebijakan Otorisasi Biner

Otorisasi Biner untuk Google Distributed Cloud adalah fitur Google Cloud yang memperpanjang penerapan waktu deploy yang dihosting Otorisasi Biner ke infrastruktur lokal Anda klaster pengguna. Kasus penggunaan utama Otorisasi Biner pada Google Distributed Cloud ditujukan untuk mengamankan workload pada cluster pengguna. Ikuti langkah-langkah dalam panduan ini untuk menerapkan aturan penegakan Otorisasi Biner kebijakan yang dikonfigurasi di project Google Cloud ke cluster pengguna Anda. Untuk selengkapnya informasi tentang kebijakan dan aturan Otorisasi Biner, lihat Ringkasan Otorisasi Biner.

Prasyarat

Sebelum Anda dapat mengaktifkan penerapan kebijakan Otorisasi Biner untuk pengguna , pastikan Anda telah memenuhi kriteria prasyarat berikut:

  • Daftarkan cluster ke fleet: Untuk cluster yang dibuat dengan gkectl, cluster ini terdaftar ke project Google Cloud yang Anda tentukan di kolom gkeConnect.projectID dalam file konfigurasi cluster. Ini disebut sebagai host perlengkapan project Anda. Untuk mempelajari perangkat lebih lanjut, termasuk kasus penggunaan, praktik terbaik, dan lihat contohnya, lihat Manajemen perangkat dokumentasi layanan.

  • Aktifkan Binary Authorization API di project Google Cloud: aktifkan layanan Otorisasi Biner project host fleet Anda.

  • Menambahkan peran Binary Authorization Policy Evaluator ke host fleet project: Untuk memberikan Evaluator Kebijakan Otorisasi Biner Peran (roles/binaryauthorization.policyEvaluator) ke layanan Kubernetes akun Anda di project host fleet, jalankan perintah berikut:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \
        --role="roles/binaryauthorization.policyEvaluator"
    

    Jika cluster Anda berjalan di belakang server proxy, pastikan server proxy memungkinkan koneksi ke Binary Authorization API (binaryauthorization.googleapis.com). API ini menyediakan solusi berbasis kebijakan validasi dan kontrol deployment untuk gambar yang di-deploy ke cluster. Sebagai informasi lebih lanjut, lihat Proxy aturan proxy dan firewall.

Setelah memenuhi prasyarat, Anda dapat mengaktifkan (atau menonaktifkan) Kebijakan Otorisasi Biner saat Anda membuat cluster baru atau mengupdate cluster yang ada .

Mengaktifkan kebijakan Otorisasi Biner selama pembuatan cluster

Anda dapat mengaktifkan penerapan kebijakan Otorisasi Biner dengan gkectl atau gcloud CLI.

gkectl

Untuk mengaktifkan Otorisasi Biner saat Anda membuat cluster dengan gkectl:

  1. Sebelum membuat cluster, tambahkan binaryAuthorization.evaluationMode ke cluster pengguna seperti yang ditunjukkan dalam contoh berikut:

    ...
    binaryAuthorization:
      evaluationMode: "project_singleton_policy_enforce"
    ...
    

    Nilai yang diizinkan untuk evaluationMode adalah:

    • project_singleton_policy_enforce: menerapkan aturan yang ditentukan dalam Kebijakan Otorisasi Biner, juga dikenal sebagai project-singleton , di project Google Cloud Anda untuk mengatur deployment image container di cluster Anda.

    • disabled: menonaktifkan penggunaan Otorisasi Biner untuk cluster Anda. Ini adalah nilai defaultnya. Jika Anda menghilangkan binaryAuthorization, dinonaktifkan.

  2. Buat perubahan lain yang diperlukan di file konfigurasi cluster, lalu buat perubahan jalankan perintah gkectl create cluster.

Untuk informasi selengkapnya tentang cara membuat cluster, lihat Ringkasan penginstalan Google Distributed Cloud.

Mengaktifkan atau menonaktifkan kebijakan Otorisasi Biner untuk cluster yang ada

Jika sudah memiliki cluster versi 1.28 atau yang lebih tinggi, Anda dapat mengaktifkan atau nonaktifkan Otorisasi Biner kapan saja, menggunakan gkectl atau dengan gcloud CLI

gkectl

  • Untuk mengaktifkan:

    1. Edit file konfigurasi cluster untuk menambahkan binaryAuthorization bidang:

      ...
      binaryAuthorization:
        evaluationMode: "project_singleton_policy_enforce"
      
    2. Update cluster:

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

      Ganti kode berikut:

      • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin
      • USER_CLUSTER_CONFIG_FILE: jalur file konfigurasi cluster pengguna.
    3. Tunggu Deployment bernama binauthz-module-deployment di Namespace binauthz-system yang akan siap.

      Saat deployment siap, Otorisasi Biner akan menerapkan aturan yang disebutkan dalam kebijakan Otorisasi Biner, yang juga dikenal sebagai kebijakan project-singleton Anda. Kebijakan ini terkait dengan project Google Cloud dan menentukan aturan untuk mengatur deployment image container. Untuk informasi selengkapnya tentang penggunaan gkectl guna mengupdate cluster, lihat Mengupdate cluster. Untuk informasi selengkapnya tentang kebijakan dan aturan Otorisasi Biner, lihat Ringkasan Otorisasi Biner.

  • Untuk menonaktifkan:

    1. Edit file konfigurasi cluster dan hapus Bagian binaryAuthorization atau dengan menetapkan evaluationMode ke disabled.

      ...
      binaryAuthorization:
        evaluationMode: "disabled"
      
    2. Update cluster:

      gkectl update cluster \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG \
        --config USER_CLUSTER_CONFIG_FILE \
        --force

    Setelah melakukan perubahan ini, tunggu beberapa menit hingga Deployment bernama binauthz-module-deployment dalam namespace binauthz-system adalah dihapus.

Pemecahan masalah

Jika belum menyelesaikan semua prasyarat, Anda mungkin melihat pesan seperti berikut menunjukkan adanya masalah dengan konfigurasi Otorisasi Biner:

failed to validate Binary Authorization policy

(1) Ensure the Binary Authorization API is enabled for your Google Cloud project:
    gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID
(2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \
        --role=roles/binaryauthorization.policyEvaluator