Mengonfigurasi konektor di project host VPC Bersama
Jika organisasi Anda menggunakan VPC Bersama, Anda dapat menyiapkan konektor Akses VPC Serverless di project layanan atau project host. Panduan ini menunjukkan cara menyiapkan konektor di project host.
Jika Anda perlu menyiapkan konektor di project layanan, lihat Mengonfigurasi konektor di project layanan. Untuk mempelajari keuntungan dari setiap metode, lihat Menghubungkan ke jaringan VPC Bersama.
Sebelum memulai
Periksa peran Identity and Access Management (IAM) untuk akun yang sedang Anda gunakan. Akun aktif harus memiliki peran berikut di project host:
Pilih project host di lingkungan pilihan Anda.
Konsol
Buka dasbor konsol Google Cloud .
Pada panel menu di bagian atas dasbor, klik menu dropdown project, lalu pilih project host.
gcloud
Tetapkan project default di gcloud CLI ke project host dengan menjalankan perintah berikut di terminal Anda:
gcloud config set project HOST_PROJECT_ID
Ganti kode berikut:
HOST_PROJECT_ID: ID project host VPC Bersama
Membuat konektor Akses VPC Serverless
Untuk mengirim permintaan ke jaringan VPC dan menerima respons yang sesuai, Anda harus membuat konektor Akses VPC Serverless. Anda dapat membuat konektor menggunakan konsol Google Cloud , Google Cloud CLI, atau Terraform:
Konsol
Aktifkan Serverless VPC Access API untuk project Anda.
Buka halaman Serverless VPC Access overview.
Klik Create connector.
Di kolom Name, masukkan nama untuk konektor Anda. Nama ini harus mengikuti konvensi penamaan Compute Engine dan kurang dari 21 karakter. Tanda hubung (
-) dihitung sebagai dua karakter.Di kolom Region, pilih region untuk konektor Anda. Region ini harus cocok dengan region layanan serverless Anda.
Jika layanan Anda berada di region
us-centralataueurope-west, gunakanus-central1ataueurope-west1.Di kolom Network, pilih jaringan VPC yang akan dihubungkan dengan konektor.
Klik menu pull-down Subnetwork:
Pilih subnet
/28yang tidak digunakan.- Subnet harus digunakan secara eksklusif oleh konektor. Subnet tidak dapat digunakan oleh resource lain seperti VM, Private Service Connect, atau load balancer.
- Untuk mengonfirmasi bahwa subnet Anda tidak digunakan untuk
Private Service Connect atau Cloud Load Balancing, pastikan
subnet
purposeadalahPRIVATEdengan menjalankan perintah berikut di gcloud CLI: Gantigcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAMEdengan nama subnet Anda.
(Opsional) Guna menetapkan opsi penskalaan untuk mendapatkan kontrol tambahan atas konektor, klik Show Scaling Settings untuk menampilkan formulir penskalaan.
- Tetapkan jumlah minimum dan maksimum instance untuk konektor Anda,
atau gunakan default, yaitu 2 (minimum) dan 10 (maksimum). Konektor
diskalakan hingga batas maksimum yang ditentukan saat traffic meningkat,
tetapi konektor tidak diskalakan kembali saat traffic menurun. Anda
harus menggunakan nilai antara
2dan10, serta nilaiMINharus kurang dari nilaiMAX. - Di menu pull-down Instance Type, pilih jenis mesin yang akan digunakan untuk
konektor, atau gunakan
e2-microdefault. Perhatikan sidebar biaya di sisi kanan saat Anda memilih jenis instance, yang menampilkan estimasi biaya dan bandwidth.
- Tetapkan jumlah minimum dan maksimum instance untuk konektor Anda,
atau gunakan default, yaitu 2 (minimum) dan 10 (maksimum). Konektor
diskalakan hingga batas maksimum yang ditentukan saat traffic meningkat,
tetapi konektor tidak diskalakan kembali saat traffic menurun. Anda
harus menggunakan nilai antara
Klik Create.
Tanda centang berwarna hijau akan muncul di samping nama konektor saat konektor siap digunakan.
gcloud
Update komponen
gcloudke versi terbaru:gcloud components update
Aktifkan Serverless VPC Access API untuk project Anda:
gcloud services enable vpcaccess.googleapis.com
Buat konektor Akses VPC Serverless:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region=REGION \ --subnet=SUBNET \ --subnet-project=HOST_PROJECT_ID \ # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max. --min-instances=MIN \ --max-instances=MAX \ # Optional: specify machine type, default is e2-micro --machine-type=MACHINE_TYPE
Ganti kode berikut:
CONNECTOR_NAME: nama untuk konektor Anda. Nama ini harus mengikuti konvensi penamaan Compute Engine dan kurang dari 21 karakter. Tanda hubung (-) dihitung sebagai dua karakter.REGION: region untuk konektor Anda. Region ini harus cocok dengan region layanan serverless Anda. Jika layanan Anda berada di regionus-centralataueurope-west, gunakanus-central1ataueurope-west1.SUBNET: nama subnet/28yang tidak digunakan.- Subnet harus digunakan secara eksklusif oleh konektor. Subnet tidak dapat digunakan oleh resource lain seperti VM, Private Service Connect, atau load balancer.
- Untuk mengonfirmasi bahwa subnet Anda tidak digunakan untuk
Private Service Connect atau Cloud Load Balancing, pastikan
subnet
purposeadalahPRIVATEdengan menjalankan perintah berikut di gcloud CLI: Ganti kode berikut:gcloud compute networks subnets describe SUBNET_NAME
SUBNET_NAME: nama subnet Anda
HOST_PROJECT_ID: ID project hostMIN: jumlah minimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara2dan9. Default-nya adalah2. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.MAX: jumlah maksimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara3dan10. Default-nya adalah10. Jika traffic memerlukannya, konektor akan diskalakan ke instance[MAX], tetapi tidak diskalakan kembali. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.MACHINE_TYPE:f1-micro,e2-micro, ataue2-standard-4. Untuk mempelajari throughput konektor, termasuk jenis mesin dan penskalaan, lihat Throughput dan penskalaan.
Untuk mengetahui detail dan argumen opsional, lihat referensi
gcloud.Pastikan konektor Anda berstatus
READYsebelum menggunakannya:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region=REGION
Ganti kode berikut:
CONNECTOR_NAME: nama konektor Anda. Nama ini adalah nama yang Anda tentukan di langkah sebelumnyaREGION: region konektor Anda. Region ini adalah region yang Anda tentukan di langkah sebelumnya
Output harus berisi baris
state: READY.
Terraform
Anda dapat menggunakan resource Terraform
untuk mengaktifkan API vpcaccess.googleapis.com.
Anda dapat menggunakan modul Terraform untuk membuat jaringan VPC dan subnet, lalu membuat konektor.
Mengaktifkan Cloud Run Functions untuk project layanan
Aktifkan Cloud Run Functions API untuk project layanan. Hal ini diperlukan untuk menambahkan peran IAM pada langkah berikutnya dan agar project layanan dapat menggunakan Cloud Run Functions.
Konsol
Buka halaman untuk Cloud Run Functions API.
Pada panel menu di bagian atas dasbor, klik menu dropdown project, lalu pilih service project.
Klik Enable.
gcloud
Jalankan perintah berikut di terminal Anda:
gcloud services enable cloudfunctions.googleapis.com --project=SERVICE_PROJECT_ID
Ganti kode berikut:
SERVICE_PROJECT_ID: ID project layanan
Memberikan akses ke konektor
Berikan akses ke konektor dengan memberi Agen Layanan Cloud Run Functions peran IAM Serverless VPC Access User ke project layanan di project host.
Konsol
Buka halaman IAM.
Klik menu dropdown project, lalu pilih host project.
Klik Grant access.
Di kolom New principals, masukkan alamat email Agen Layanan Cloud Run Functions untuk project layanan:
service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com
Ganti kode berikut:
SERVICE_PROJECT_NUMBER: nomor project yang terkait dengan project layanan. Nomor ini berbeda dengan project ID. Anda dapat menemukan nomor project di halaman Project Settings untuk project layanan di konsolGoogle Cloud .
Di kolom Role, pilih Serverless VPC Access User.
Klik Save.
gcloud
Jalankan perintah berikut di terminal.
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=serviceAccount:service-SERVICE_PROJECT_NUMBER@gcf-admin-robot.iam.gserviceaccount.com \ --role=roles/vpcaccess.user
Ganti kode berikut:
HOST_PROJECT_ID: ID project host VPC BersamaSERVICE_PROJECT_NUMBER: nomor project yang terkait dengan project layanan. Nomor ini berbeda dengan project ID. Anda dapat menemukan nomor project dengan menjalankan perintah berikut:gcloud projects describe SERVICE_PROJECT_ID
Membuat konektor dapat ditemukan
Di kebijakan IAM project host, Anda harus memberikan dua peran yang telah ditetapkan berikut ke principal yang men-deploy layanan Cloud Run:
- Serverless VPC Access Viewer (
vpcaccess.viewer): Wajib. - Compute Network Viewer (
compute.networkViewer): Opsional tetapi direkomendasikan. Memungkinkan principal IAM menghitung subnet di jaringan VPC Bersama.
Atau, Anda dapat menggunakan peran khusus atau peran lain yang telah ditetapkan, yang
mencakup semua izin peran Serverless VPC Access Viewer
(vpcaccess.viewer).
Konsol
Buka halaman IAM.
Klik menu dropdown project, lalu pilih host project.
Klik Grant access.
Di kolom New principals, masukkan alamat email principal yang akan dapat melihat konektor dari project layanan. Anda dapat memasukkan beberapa email di kolom ini.
Di kolom Role, pilih kedua peran berikut:
- Serverless VPC Access Viewer
- Compute Network Viewer
Klik Save.
gcloud
Jalankan perintah berikut di terminal Anda:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/vpcaccess.viewer gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member=PRINCIPAL \ --role=roles/compute.networkViewer
Ganti kode berikut:
HOST_PROJECT_ID: ID project host VPC BersamaPRINCIPAL: principal yang men-deploy layanan Cloud Run. Pelajari selengkapnya tentang flag--member.
Mengonfigurasi layanan Anda menggunakan konektor
Untuk setiap fungsi yang memerlukan akses ke VPC Bersama, Anda harus menentukan konektor untuk fungsi tersebut. Langkah-langkah berikut menunjukkan cara mengonfigurasi fungsi Anda untuk menggunakan konektor.
Konsol
Buka halaman Cloud Run Functions overview.
Klik menu dropdown project, lalu pilih service project.
Klik Create function. Atau, klik fungsi yang ada untuk membuka halaman detailnya, lalu klik Edit.
Luaskan setelan lanjutan dengan mengklik Runtime, build....
Di tab Connections di bagian setelan Egress, pilih konektor Anda di kolom VPC connector.
gcloud
Tetapkan gcloud CLI untuk menggunakan project yang berisi fungsi:
Ganti kode berikut:gcloud config set project PROJECT_ID
PROJECT_ID: ID project berisi fungsi yang memerlukan akses ke VPC Bersama. Jika fungsi ada dalam project host, ini adalah project ID host. Jika fungsi ada dalam project layanan, ini adalah project ID layanan.
Gunakan flag
--vpc-connector, lalu deploy fungsi Anda:gcloud functions deploy FUNCTION_NAME --vpc-connector=CONNECTOR_NAME
Ganti kode berikut:
FUNCTION_NAME: nama fungsi AndaCONNECTOR_NAME: nama konektor Anda Gunakan nama yang sepenuhnya memenuhi syarat saat men-deploy dari project layanan VPC Bersama (bukan project host), misalnya: denganprojects/HOST_PROJECT_ID/locations/CONNECTOR_REGION/connectors/CONNECTOR_NAME
HOST_PROJECT_IDsebagai ID project host,CONNECTOR_REGIONsebagai region konektor Anda, danCONNECTOR_NAMEsebagai nama yang Anda berikan untuk konektor.
Untuk kontrol lebih lanjut atas permintaan yang dirutekan melalui konektor, lihat Egress settings.
Langkah berikutnya
- Hubungkan ke Memorystore dari Cloud Run Functions.
- Konfigurasi setelan jaringan untuk Cloud Run Functions.
- Pantau aktivitas admin dengan Logging audit Akses VPC Serverless.
- Lindungi resource dan data dengan membuat perimeter layanan dengan Kontrol Layanan VPC.
- Pelajari peran Identity and Access Management (IAM) yang terkait dengan Akses VPC Serverless. Lihat peran Akses VPC Serverless dalam dokumentasi IAM untuk mengetahui daftar izin yang terkait dengan setiap peran.