Mengonfigurasi lingkungan pengembangan

Dokumen ini menjelaskan cara mengonfigurasi lingkungan pengembangan API Gateway Anda.

Prasyarat

Sebelum dapat membuat API di API Gateway, pastikan Anda memiliki:

  • Membuat project Google Cloud tempat Anda memiliki peran Editor atau Pemilik. Setelah deployment awal, Anda dapat memberikan peran Service Config Editor yang lebih ketat kepada pengguna, grup, atau akun layanan.

  • Menyiapkan Google Cloud CLI seperti yang dijelaskan di bawah.

  • Mengaktifkan layanan Google yang diperlukan seperti yang dijelaskan di bawah.

  • Konfigurasikan akun layanan yang digunakan untuk membuat konfigurasi API seperti yang dijelaskan di bawah.

Menyiapkan Google Cloud CLI untuk deployment

Untuk menyiapkan gcloud untuk deployment:

  1. Menginstal dan melakukan inisialisasi gcloud CLI.
  2. Update gcloud CLI:
    gcloud components update
  3. Pastikan gcloud CLI diberi otorisasi untuk mengakses data dan layanan Anda:
    gcloud auth login

    Tab browser baru akan terbuka dan Anda akan diminta untuk memilih akun.

  4. Tetapkan project default. Ganti PROJECT_ID dengan project ID Google Cloud Anda:
    gcloud config set project PROJECT_ID 

Mengaktifkan layanan yang diperlukan

API Gateway mengharuskan Anda mengaktifkan layanan Google berikut:

Nama Judul
apigateway.googleapis.com API Gateway API
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

Untuk mengonfirmasi bahwa layanan yang diperlukan telah diaktifkan:

gcloud services list

Jika Anda tidak melihat layanan yang diperlukan tercantum, aktifkan layanan tersebut:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Untuk mengetahui informasi selengkapnya tentang layanan gcloud, lihat layanan gcloud.

Mengonfigurasi akun layanan

Konfigurasi API yang di-deploy di gateway dijalankan dengan izin yang terkait dengan akun layanan gateway.

Sebagai praktik terbaik, buat akun layanan terpisah dalam project yang sama dengan yang Anda gunakan untuk API Gateway. Kemudian, tetapkan izin yang diperlukan untuk mengakses layanan backend hanya ke akun layanan. Dengan begitu, Anda membatasi izin yang terkait dengan konfigurasi API.

Untuk API Gateway, pengguna yang membuat atau memperbarui konfigurasi atau gateway API memerlukan izin iam.serviceAccounts.actAs pada objek akun layanan. Izin ini disertakan dalam peran Service Account User.

Peran dan izin dapat ditambahkan ke akun layanan untuk pengguna dengan perintah berikut:

gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_EMAIL \
  --member user:USER_EMAIL \
  --role roles/iam.serviceAccountUser

dengan:

  • SERVICE_ACCOUNT_EMAIL adalah email akun layanan, dalam format SA_NAME@PROJECT_ID.iam.gserviceaccount.com.
  • USER_EMAIL adalah alamat email pengguna.

Contoh:

gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \
  --member user:myemail@email.com \
  --role roles/iam.serviceAccountUser

Selain itu, akun layanan gateway memerlukan izin yang diperlukan untuk mengakses layanan backend Anda. Contoh:

  • Untuk backend Cloud Function, akun layanan harus diberi peran Cloud Functions Invoker.
  • Untuk backend Cloud Run, akun layanan harus diberi peran Cloud Run Invoker.
  • Untuk backend App Engine, Anda harus mengikuti langkah-langkah di Menyiapkan akses IAP untuk memberikan peran Pengguna Aplikasi Web yang Dilindungi IAP ke akun layanan yang terkait dengan gateway Anda.

Dengan membatasi izin yang terkait dengan konfigurasi API, Anda dapat mengamankan sistem backend dengan lebih baik. Untuk informasi selengkapnya, lihat dokumentasi Identity and Access Management (IAM).

Setelah Anda membuat akun layanan, gunakan opsi --backend-auth-service-account untuk menentukan alamat email akun layanan tersebut saat membuat konfigurasi API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID \
  --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

Lihat Membuat API untuk mengetahui informasi selengkapnya tentang cara membuat konfigurasi API.

Menggunakan akun layanan default

Beberapa produk GCP menentukan akun layanan default. Misalnya, jika Anda menggunakan Compute Engine dan telah mengaktifkan Compute Engine API untuk project Anda, akun layanan Compute Engine default akan dibuat untuk Anda. Akun layanan default dapat diidentifikasi dengan alamat emailnya:

PROJECT_NUMBER-compute@developer.gserviceaccount.com

Jika menetapkan izin yang diperlukan ke akun layanan default, Anda dapat menghapus opsi --backend-auth-service-account saat membuat konfigurasi API:

gcloud api-gateway api-configs create CONFIG_ID \
  --api=API_ID --openapi-spec=API_DEFINITION --project=PROJECT_ID

Lihat Menggunakan Akun Layanan Default Compute Engine untuk mengetahui informasi selengkapnya.

Menggunakan OpenID Connect

Permintaan dari API Gateway ke layanan backend dapat menggunakan autentikasi. Permintaan ini diamankan menggunakan token OpenID Connect (OIDC) yang ditandatangani oleh akun layanan gateway. Anda harus mengonfirmasi bahwa layanan backend Anda dikonfigurasi dengan benar untuk menerima token OIDC untuk autentikasi dan otorisasi. Fungsi Cloud Run, Cloud Run, dan Identity Aware Proxy (IAP) menyediakan opsi ini.

Langkah selanjutnya