Akun Layanan Kustom untuk Cloud Build

Ringkasan

Cloud Functions memanfaatkan Cloud Build saat membangun dan men-deploy Cloud Function. Secara default, Cloud Functions menggunakan akun layanan Cloud Build default sebagai akun utama saat menjalankan build. Dokumen ini menjelaskan cara meneruskan akun layanan buatan pengguna untuk digunakan oleh Cloud Build saat men-deploy fungsi Anda.

Anda dapat men-deploy fungsi dengan akun layanan kustom menggunakan Google Cloud CLI, Konsol Google Cloud, atau Cloud Functions API.

Berikut adalah beberapa skenario ketika Anda mungkin ingin menyediakan akun layanan lain untuk digunakan saat Cloud Build mem-build fungsi Anda:

  • Anda menginginkan lebih banyak kontrol atas akun layanan yang akan ditambahkan ke perimeter VPC-SC.

  • Anda ingin Cloud Build dijalankan dengan izin yang berbeda dari yang dimiliki akun layanan default tanpa harus mencabut setiap izin satu per satu.

  • Anda ingin menetapkan izin Cloud Build terperinci khusus untuk fungsi, bukan membagikan akun layanan Cloud Build yang dioptimalkan untuk tujuan lain.

Mengaktifkan API

Fitur ini mengharuskan IAM API diaktifkan.

Gunakan Google Cloud CLI untuk mengaktifkan API yang diperlukan untuk men-deploy Cloud Function, atau gunakan Google Cloud Console:

gcloud services enable iam.googleapis.com

Mengonfigurasi Akun Layanan

Dokumen ini menjelaskan cara membuat akun layanan baru dan memberikan izin yang diperlukan. Jika ingin menggunakan akun layanan yang ada, Anda memerlukan alamat email akun layanan yang akan digunakan. Untuk mengetahui detailnya, lihat mengonfigurasi akun layanan yang ditentukan pengguna.

Anda dapat melihat akun layanan yang ada sebagai berikut, atau menggunakan Konsol Google Cloud:

gcloud iam service-accounts list

Membuat Akun Layanan

Gunakan Google Cloud CLI untuk membuat akun layanan atau menggunakan Google Cloud Console:

gcloud iam service-accounts create SA_EMAIL

Ganti SA_EMAIL dengan alamat email akun layanan Anda.

Berikan Izin

Akun layanan yang Anda gunakan akan memerlukan peran berikut:

Berikan peran berikut menggunakan Google Cloud CLI, atau gunakan Google Cloud Console.

gcloud projects add-iam-policy-binding SA_PROJECT_ID \
--member=user:DEPLOYING_USER_EMAIL \
--role=roles/iam.serviceAccountUser

gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SA_EMAIL \
    --role=roles/logging.logWriter

gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SA_EMAIL \
--role=roles/artifactregistry.writer

gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:SA_EMAIL \
--role=roles/storage.objectAdmin

Ganti kode berikut:

  • PROJECT_ID: Project ID Google Cloud Anda.
  • SA_EMAIL: Alamat email akun layanan Anda.
  • SA_PROJECT_ID: Project ID akun layanan Anda.
  • DEPLOYING_USER_EMAIL: Alamat email pengguna yang men-deploy fungsi.

Men-deploy fungsi dengan akun layanan kustom

Anda dapat menggunakan Google Cloud CLI untuk men-deploy fungsi yang menggunakan akun layanan kustom untuk Cloud Build:

  • Flag --build-service-account menentukan akun layanan IAM yang kredensialnya akan digunakan untuk langkah build. Jika akun layanan kustom tidak disediakan, fungsi tersebut akan menggunakan akun layanan default project untuk Cloud Build.
  • Secara opsional, Anda dapat menggunakan kumpulan pribadi, yang ditentukan menggunakan flag --build-worker-pool.

gcloud beta functions deploy FUNCTION_NAME \
   --gen2 \
   --region=REGION \
   --project=PROJECT_ID \
   --runtime=RUNTIME \
   --entry-point=CODE_ENTRYPOINT \
   --build-service-account=projects/PROJECT_ID/serviceAccounts/SA_EMAIL \
   --memory=256Mi \
   --trigger-http \
   --source=.

Ganti kode berikut: