Mengonfigurasi akses lintas project di GKE

Halaman ini menunjukkan cara memberikan akses Otorisasi Biner ke kebijakan dan image container yang ada di project yang berbeda dari project Anda saat ini. Google Cloud Misalnya, jika Anda men-deploy image di cluster Google Kubernetes Engine (GKE) Anda dari repositori Artifact Registry atau Container Registry (Tidak Digunakan Lagi) yang dimiliki oleh project lain, Anda harus memberikan akses layanan Otorisasi Biner di project Anda ke metadata image di repositori sumber.

Terminologi

Dokumen ini menggunakan istilah berikut:

  • Agen layanan: Akun layanan yang dikelola A Google Cloud. Otorisasi Biner menggunakan agen layanan untuk berinteraksi dengan resource Anda, seperti cluster GKE. Google Cloud
  • Project kebijakan: Project yang berisi kebijakan Otorisasi Biner Anda. Google Cloud
  • Project cluster: Project yang berisi cluster GKE Anda. Google Cloud
  • Project artefak: Project yang berisi repositori Artifact Registry atau Container Registry (Tidak Digunakan Lagi) Anda. Google Cloud

Skenario yang memerlukan akses lintas project

Anda harus memberikan izin lintas project dalam situasi seperti berikut:

  • Project kebijakan Anda berbeda dengan project cluster Anda.
  • Project cluster Anda berbeda dengan project artefak Anda.

Sebelum memulai

  1. Login keakun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  6. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  7. Aktifkan Binary Authorization API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable binaryauthorization.googleapis.com
  8. Instal Google Cloud CLI.

  9. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus terlebih dahulu login ke gcloud CLI dengan identitas gabungan Anda.

  10. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  11. Buat atau pilih Google Cloud project.

    Peran yang diperlukan untuk memilih atau membuat project

    • Memilih project: Memilih project tidak memerlukan peran IAM tertentu Anda dapat memilih project mana pun yang telah diberi peran.
    • Membuat project: Untuk membuat project, Anda memerlukan peran Project Creator (roles/resourcemanager.projectCreator), yang berisi izin resourcemanager.projects.create. Pelajari cara memberikan peran.
    • Buat Google Cloud project:

      gcloud projects create PROJECT_ID

      Ganti PROJECT_ID dengan nama untuk Google Cloud project yang Anda buat.

    • Pilih Google Cloud project yang Anda buat:

      gcloud config set project PROJECT_ID

      Ganti PROJECT_ID dengan nama Google Cloud project Anda.

  12. Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  13. Aktifkan Binary Authorization API:

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    gcloud services enable binaryauthorization.googleapis.com

Project cluster berbeda dengan project kebijakan

Beri peran Binary Authorization Policy Evaluator (roles/binaryauthorization.policyEvaluator) kepada agen layanan Otorisasi Biner di project cluster pada project kebijakan.

gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
  --role=roles/binaryauthorization.policyEvaluator

Ganti kode berikut:

  • POLICY_PROJECT_ID: ID project yang berisi kebijakan Anda.
  • CLUSTER_PROJECT_ID: project ID cluster.

Project cluster berbeda dengan project artefak

Beri peran Artifact Registry Reader (roles/artifactregistry.reader) kepada agen layanan Otorisasi Biner di project cluster pada project artefak.

gcloud projects add-iam-policy-binding ARTIFACT_PROJECT_ID \
    --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
    --role=roles/artifactregistry.reader

Ganti kode berikut:

  • ARTIFACT_PROJECT_ID: ID project yang berisi repositori Artifact Registry Anda.
  • CLUSTER_PROJECT_ID: project ID yang menjalankan cluster GKE Anda.