Terhubung ke jaringan VPC
Halaman ini menunjukkan cara menggunakan Akses VPC Serverless untuk menghubungkan Cloud Functions langsung ke jaringan VPC Anda, sehingga memungkinkan akses ke instance VM Compute Engine, instance Memorystore, dan sumber daya lain dengan alamat IP internal.
Sebelum memulai
Buat jaringan VPC di project Anda jika belum memilikinya.
Jika Anda menggunakan VPC Bersama, berikan akses ke konektor, dan lihat Menghubungkan ke jaringan VPC Bersama.
Di konsol Google Cloud, pastikan bahwa API Akses VPC Serverless diaktifkan untuk project Anda.
Membuat konektor Akses VPC Serverless
Untuk mengirim permintaan ke jaringan VPC dan menerima respons yang sesuai tanpa menggunakan internet publik, Anda dapat menggunakan konektor Akses VPC Serverless.
Anda dapat membuat konektor menggunakan konsol Google Cloud, Google Cloud CLI, atau Terraform.
Konsol
Buka halaman ringkasan Akses VPC Serverless.
Klik Create connector.
Di kolom Nama, masukkan nama untuk konektor Anda. Nama ini harus sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu kurang dari 21 karakter dengan 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 atau tugas Anda berada di region
us-central
ataueurope-west
, gunakanus-central1
ataueurope-west1
.Di kolom Jaringan, pilih jaringan VPC yang akan dipasangkan konektor.
Klik menu Subnet. Setiap konektor memerlukan subnet
/28
tersendiri untuk menempatkan instance konektor. Subnet tidak dapat digunakan oleh resource lain seperti VM, Private Service Connect, atau load balancer.Jika Anda menggunakan VPC Bersama, yang mengharuskan Anda menggunakan subnet Anda sendiri, pilih subnet
/28
yang tidak digunakan. Untuk mengonfirmasi bahwa subnet Anda tidak digunakan untuk Private Service Connect atau Cloud Load Balancing, periksa apakah subnetpurpose
adalahPRIVATE
dengan menjalankan perintah berikut di gcloud CLI: Ganti:gcloud compute networks subnets describe SUBNET
- SUBNET: nama subnet Anda
Jika Anda tidak menggunakan VPC Bersama, buat subnet untuk konektor atau minta konektor untuk membuat subnet dengan memilih Rentang IP Kustom dari menu.
Di kolom rentang IP, masukkan alamat pertama pada rentang IP internal
/28
CIDR yang belum direservasi. Rentang IP ini tidak boleh tumpang tindih dengan reservasi alamat IP apa pun yang sudah ada di jaringan VPC Anda. Misalnya,10.8.0.0
(/28
) dapat digunakan di sebagian besar project baru.Subnet yang dibuat disembunyikan dan tidak dapat digunakan dalam aturan firewall dan konfigurasi NAT.
Lihat rentang IP yang saat ini dicadangkan di konsol Google Cloud.
Pelajari lebih lanjut tentang bekerja dengan subnet.
(Opsional) Guna menetapkan opsi penskalaan untuk mendapatkan kontrol tambahan atas konektor, klik Tampilkan Setelan Penskalaan 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 jika penggunaan traffic memerlukannya,
tetapi konektor tidak diskalakan balik saat traffic menurun.
Anda harus menggunakan nilai antara
2
dan10
. - Di menu Jenis Instance, pilih jenis mesin yang akan
digunakan untuk konektor, atau gunakan
e2-micro
default. 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 jika penggunaan traffic memerlukannya,
tetapi konektor tidak diskalakan balik saat traffic menurun.
Anda harus menggunakan nilai antara
Klik Buat.
Tanda centang berwarna hijau akan muncul di samping nama konektor saat konektor siap digunakan.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Update komponen
gcloud
ke versi terbaru:gcloud components update
Pastikan API Akses VPC Serverless diaktifkan untuk project Anda:
gcloud services enable vpcaccess.googleapis.com
Jika Anda menggunakan VPC Bersama, yang mengharuskan Anda menggunakan subnet Anda sendiri, buat konektor dengan perintah berikut:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --region REGION \ --subnet SUBNET \ # If you are not using Shared VPC, omit the following line. --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 sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu kurang dari 21 karakter dengan tanda hubung (-) dihitung sebagai dua karakter.REGION
: region untuk konektor Anda; region ini harus cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau tugas Anda berada di regionus-central
ataueurope-west
, gunakanus-central1
ataueurope-west1
.SUBNET
: nama subnet/28
yang tidak digunakan.- Subnet harus digunakan secara eksklusif oleh konektor. Subnet tersebut 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
purpose
adalahPRIVATE
dengan menjalankan perintah berikut di gcloud CLI: Ganti:gcloud compute networks subnets describe SUBNET
- SUBNET: nama subnet Anda.
- Pelajari lebih lanjut tentang bekerja dengan subnet.
HOST_PROJECT_ID
: ID project host; berikan ini hanya jika Anda menggunakan VPC Bersama.MIN
: jumlah minimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara2
dan9
. Default-nya adalah2
. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.MAX
: jumlah maksimum instance yang akan digunakan untuk konektor. Gunakan bilangan bulat antara3
dan10
. Default-nya adalah10
. Jika traffic memerlukannya, konektor akan diskalakan ke instance[MAX]
, tetapi tidak diskalakan balik. Untuk mempelajari penskalaan konektor, lihat Throughput dan penskalaan.MACHINE_TYPE
:f1-micro
,e2-micro
, ataue2-standard-4
. Untuk mempelajari tentang throughput konektor, termasuk jenis mesin dan penskalaan, lihat Throughput dan penskalaan.
Untuk detail selengkapnya dan argumen opsional, lihat referensi
gcloud
.Jika Anda tidak menggunakan VPC Bersama dan ingin menyediakan rentang IP kustom, bukan menggunakan subnet yang ada, buat konektor dengan perintah berikut:
gcloud compute networks vpc-access connectors create CONNECTOR_NAME \ --network VPC_NETWORK \ --region REGION \ --range IP_RANGE
Ganti kode berikut:
CONNECTOR_NAME
: nama untuk konektor Anda. Nama ini harus sesuai dengan konvensi penamaan Compute Engine, dengan batasan tambahan yaitu panjang nama harus kurang dari 21 karakter dengan tanda hubung (-
) dihitung sebagai dua karakter.VPC_NETWORK
: jaringan VPC yang akan dipasangkan konektor.REGION
: region untuk konektor Anda. Region ini harus cocok dengan region layanan atau tugas serverless Anda. Jika layanan atau tugas Anda berada di regionus-central
ataueurope-west
, gunakanus-central1
ataueurope-west1
.IP_RANGE
: jaringan IP internal yang belum direservasi dan ruang/28
yang belum dialokasikan diperlukan. Nilai yang dimasukkan adalah jaringan dalam notasi CIDR (10.8.0.0/28
). Rentang IP ini tidak boleh tumpang tindih dengan reservasi alamat IP yang ada di jaringan VPC Anda. Misalnya,10.8.0.0/28
dapat digunakan di sebagian besar project baru. Subnet yang dibuat untuk rentang ini akan disembunyikan dan tidak dapat digunakan dalam aturan firewall dan konfigurasi NAT.
Untuk mengetahui detail selengkapnya dan argumen opsional seperti kontrol throughput, baca referensi
gcloud
.Pastikan konektor Anda berstatus
READY
sebelum menggunakannya:gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \ --region REGION
Ganti kode berikut:
CONNECTOR_NAME
: nama konektor Anda; ini adalah nama yang Anda tentukan pada langkah sebelumnya.REGION
: region konektor Anda; ini adalah region yang Anda tentukan pada 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.
Mengonfigurasi fungsi untuk terhubung ke jaringan VPC
Anda harus mengonfigurasi setiap fungsi untuk menggunakan konektor Akses VPC Serverless agar terhubung ke jaringan VPC Anda untuk mengirimkan traffic keluar. Anda dapat mengonfigurasi fungsi untuk menggunakan konektor dari konsol Google Cloud atau Google Cloud CLI:
Konsol
Klik Create Function jika Anda mengonfigurasi fungsi baru. Jika Anda mengonfigurasi fungsi yang ada, klik fungsi, lalu klik Edit.
Jika Anda mengonfigurasi fungsi baru, isi halaman setelan fungsi awal seperti yang diinginkan, lalu klik Runtime, build... untuk meluaskan halaman konfigurasi fungsi.
Klik tab Sambungan dan di bagian Setelan keluar, pilih salah satu opsi berikut dari menu VPC Network:
- Untuk memutuskan koneksi layanan Anda dari jaringan VPC, pilih None.
- Untuk menggunakan konektor yang ada, pilih konektor dari menu drop-down atau pilih Custom untuk menggunakan konektor yang tidak ditampilkan di menu drop-down.
- Untuk membuat konektor baru, pilih Add new VPC connector. (Pratinjau)
Lihat Membuat konektor Akses VPC Serverless untuk mengetahui detail tentang cara membuat konektor.
Klik Next.
gcloud
Gunakan perintah gcloud functions deploy
untuk men-deploy fungsi
tersebut dan menentukan flag
--vpc-connector
:
gcloud functions deploy FUNCTION_NAME \ --vpc-connector CONNECTOR_NAME \ FLAGS...
dengan:
FUNCTION_NAME
adalah nama fungsi Anda.CONNECTOR_NAME
adalah nama konektor Anda.FLAGS...
merujuk pada flag lain yang Anda teruskan selama deployment fungsi.
Gunakan flag --clear-vpc-connector
untuk memutuskan sambungan fungsi Anda dari jaringan VPC:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
Untuk kontrol lebih lanjut atas permintaan yang dirutekan melalui konektor, lihat Setelan egress.
Akses ke resource VPC
Mengizinkan traffic masuk dari infrastruktur serverless ke konektor
VM konektor Anda harus dapat menerima paket dari rentang
alamat IP eksternal Google Cloud 35.199.224.0/19
. Rentang ini digunakan oleh infrastruktur
serverless Google dasar untuk memastikan bahwa layanan dari Cloud Run,
Cloud Functions, dan App Engine dapat mengirimkan paket ke konektor.
Akses VPC Serverless membuat aturan firewall izinkan traffic masuk yang
berlaku untuk VM konektor dengan mengizinkan paket dari 35.199.224.0/19
jika
konektor berada dalam project yang sama dengan jaringan VPC yang
menjadi target. Konektor dan jaringan VPC targetnya harus berada dalam project
yang sama baik saat konektor menargetkan jaringan
VPC mandiri maupun saat konektor menargetkan jaringan VPC Bersama dan
konektor berada di project host.
Jika Anda membuat konektor di project layanan VPC Bersama, Security
Admin atau Project Owner untuk project host VPC Bersama harus membuat
aturan firewall izinkan traffic masuk yang berlaku untuk VM konektor yang mengizinkan paket
dari 35.199.224.0/19
. Berikut ini adalah contoh set data terstruktur, yaitu tabel sederhana:
gcloud compute firewall-rules create RULE_NAME \ --action=ALLOW \ --rules=TCP \ --source-ranges=35.199.224.0/19 \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY \ --project=PROJECT_ID
Ganti kode berikut:
- RULE_NAME: nama aturan firewall baru. Contoh:
allow-vpc-connector-ingress
. - VPC_CONNECTOR_NETWORK_TAG: tag jaringan
konektor universal
vpc-connector
dapat digunakan untuk membuat aturan berlaku ke semua konektor di jaringan VPC. Atau, Anda dapat menggunakan tag jaringan yang spesifik untuk konektor tersebut. Tag jaringan spesifik memiliki format:vpc-connector-
REGION-
CONNECTOR_NAME di mana REGION adalah region Google Cloud konektor dan CONNECTOR_NAME adalah nama konektornya. - VPC_NETWORK: nama jaringan VPC yang ditargetkan oleh konektor.
- PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.
- PROJECT_ID: project ID untuk project yang berisi jaringan VPC yang ditargetkan oleh konektor.
Membatasi akses VM konektor ke resource jaringan VPC
Anda dapat membatasi akses konektor ke resource di jaringan VPC targetnya menggunakan aturan firewall VPC atau aturan dalam kebijakan firewall. Anda dapat membuat batasan ini menggunakan salah satu strategi berikut:
- Buat aturan traffic masuk yang targetnya mewakili resource yang ingin Anda batasi aksesnya ke VM konektor dan sumbernya mewakili VM konektor.
- Buat aturan traffic keluar yang targetnya mewakili VM konektor, dan yang tujuannya mewakili resource yang ingin Anda batasi aksesnya ke VM konektor.
Contoh berikut mengilustrasikan setiap strategi.
Membatasi akses menggunakan aturan traffic masuk
Pilih tag jaringan atau rentang CIDR untuk mengontrol traffic masuk ke jaringan VPC Anda.
Network tags
Langkah-langkah berikut menunjukkan cara membuat aturan traffic masuk yang membatasi akses konektor ke jaringan VPC berdasarkan tag jaringan konektor.
Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:
- Peran Compute Security Admin
- Peran IAM kustom dengan izin
compute.firewalls.create
diaktifkan
Tolak traffic konektor di seluruh jaringan VPC Anda.
Buat aturan firewall traffic masuk dengan prioritas di bawah 1000 di jaringan VPC Anda untuk menolak traffic masuk dari tag jaringan konektor. Aturan ini akan menggantikan aturan firewall implisit yang secara default dibuat oleh Akses VPC Serverless di jaringan VPC Anda secara default.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
deny-vpc-connector
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut:
ah
,all
,esp
,icmp
,ipip
, dansctp
.VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor universal jika Anda ingin membatasi akses untuk semua konektor (termasuk konektor yang dibuat di masa mendatang), atau tag jaringan unik jika Anda ingin membatasi akses untuk konektor tertentu.
- Tag jaringan universal:
vpc-connector
Tag jaringan unik:
vpc-connector-REGION-CONNECTOR_NAME
Ganti:
- REGION: region konektor yang ingin Anda batasi
- CONNECTOR_NAME: nama konektor yang ingin Anda batasi
Untuk mempelajari tag jaringan konektor lebih lanjut, lihat Tag jaringan.
- Tag jaringan universal:
VPC_NETWORK: nama jaringan VPC
PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.
Izinkan traffic konektor ke resource yang akan menerima traffic konektor.
Gunakan flag
allow
dantarget-tags
untuk membuat aturan firewall traffic masuk yang menargetkan resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor VPC. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-tags=VPC_CONNECTOR_NETWORK_TAG \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
allow-vpc-connector-for-select-resources
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor universal jika Anda ingin membatasi akses untuk semua konektor (termasuk konektor yang dibuat di masa mendatang), atau tag jaringan unik jika Anda ingin membatasi akses untuk konektor tertentu. Tag ini harus sama dengan tag jaringan yang Anda tentukan di langkah sebelumnya.
- Tag jaringan universal:
vpc-connector
Tag jaringan unik:
vpc-connector-REGION-CONNECTOR_NAME
Ganti:
- REGION: region konektor yang ingin Anda batasi
- CONNECTOR_NAME: nama konektor yang ingin Anda batasi
Untuk mempelajari tag jaringan konektor lebih lanjut, lihat Tag jaringan.
- Tag jaringan universal:
VPC_NETWORK: nama jaringan VPC Anda
RESOURCE_TAG: tag jaringan untuk resource VPC yang Anda inginkan untuk diakses oleh konektor VPC
PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.
Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat
aturan firewall, baca
dokumentasi untuk gcloud compute firewall-rules create
.
Rentang CIDR
Langkah-langkah berikut menunjukkan cara membuat aturan traffic masuk yang membatasi akses konektor ke jaringan VPC berdasarkan rentang CIDR konektor.
Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:
- Peran Compute Security Admin
- Peran IAM kustom dengan izin
compute.firewalls.create
diaktifkan
Tolak traffic konektor di seluruh jaringan VPC Anda.
Buat aturan firewall traffic masuk dengan prioritas di bawah 1000 di jaringan VPC Anda untuk menolak traffic masuk dari rentang CIDR konektor. Aturan ini akan menggantikan aturan firewall implisit yang secara default dibuat oleh Akses VPC Serverless di jaringan VPC Anda secara default.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
deny-vpc-connector
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut:
ah
,all
,esp
,icmp
,ipip
, dansctp
.VPC_CONNECTOR_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi
VPC_NETWORK: nama jaringan VPC Anda
PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.
Izinkan traffic konektor ke resource yang akan menerima traffic konektor.
Gunakan flag
allow
dantarget-tags
untuk membuat aturan firewall traffic masuk yang menargetkan resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor VPC. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --source-ranges=VPC_CONNECTOR_CIDR_RANGE \ --direction=INGRESS \ --network=VPC_NETWORK \ --target-tags=RESOURCE_TAG \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
allow-vpc-connector-for-select-resources
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.VPC_CONNECTOR_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi
VPC_NETWORK: nama jaringan VPC Anda
RESOURCE_TAG: tag jaringan untuk resource VPC yang Anda inginkan untuk diakses oleh konektor VPC
PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.
Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat
aturan firewall, lihat
dokumentasi untuk gcloud compute firewall-rules create
.
Membatasi akses menggunakan aturan traffic keluar
Langkah-langkah berikut menunjukkan cara membuat aturan traffic keluar untuk membatasi akses konektor.
Pastikan Anda memiliki izin yang diperlukan untuk menyisipkan aturan firewall. Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut:
- Peran Compute Security Admin
- Peran IAM kustom dengan izin
compute.firewalls.create
diaktifkan
Tolak traffic keluar dari konektor Anda.
Buat aturan firewall traffic keluar di konektor Akses VPC Serverless Anda agar tidak mengirim traffic keluar, dengan pengecualian untuk respons yang sudah ditetapkan, ke tujuan mana pun.
gcloud compute firewall-rules create RULE_NAME \ --action=DENY \ --rules=PROTOCOL \ --direction=EGRESS \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --network=VPC_NETWORK \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
deny-vpc-connector
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.Untuk tujuan keamanan dan validasi, Anda juga dapat mengonfigurasi aturan penolakan guna memblokir traffic untuk protokol yang tidak didukung berikut:
ah
,all
,esp
,icmp
,ipip
, dansctp
.VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor VPC universal jika Anda ingin aturan tersebut diterapkan ke semua konektor VPC yang ada dan konektor VPC apa pun yang dibuat di masa mendatang. Atau, tag jaringan konektor VPC unik jika Anda ingin mengontrol konektor tertentu.
VPC_NETWORK: nama jaringan VPC Anda
PRIORITY: bilangan bulat antara 0-65535. Misalnya, 0 ditetapkan sebagai prioritas tertinggi.
Izinkan traffic keluar saat tujuan berada dalam rentang CIDR yang Anda inginkan untuk diakses oleh konektor Anda.
Gunakan flag
allow
dandestination-ranges
untuk membuat aturan firewall yang mengizinkan traffic keluar dari konektor Anda untuk rentang tujuan tertentu. Tetapkan rentang tujuan ke rentang CIDR resource di jaringan VPC yang Anda inginkan untuk diakses oleh konektor. Tetapkan prioritas untuk aturan ini ke nilai yang lebih rendah daripada prioritas aturan yang Anda buat di langkah sebelumnya.gcloud compute firewall-rules create RULE_NAME \ --allow=PROTOCOL \ --destination-ranges=RESOURCE_CIDR_RANGE \ --direction=EGRESS \ --network=VPC_NETWORK \ --target-tags=VPC_CONNECTOR_NETWORK_TAG \ --priority=PRIORITY
Ganti kode berikut:
RULE_NAME: nama aturan firewall baru. Misalnya,
allow-vpc-connector-for-select-resources
.PROTOCOL: satu atau beberapa protokol yang ingin Anda izinkan dari konektor VPC. Protokol yang didukung adalah
tcp
atauudp
. Misalnya,tcp:80,udp
mengizinkan traffic TCP melalui port 80 dan traffic UDP. Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk flagallow
.RESOURCE_CIDR_RANGE: rentang CIDR untuk konektor yang aksesnya Anda batasi
VPC_NETWORK: nama jaringan VPC Anda
VPC_CONNECTOR_NETWORK_TAG: tag jaringan konektor VPC universal jika Anda ingin aturan tersebut diterapkan ke semua konektor VPC yang ada dan konektor VPC apa pun yang dibuat di masa mendatang. Atau, tag jaringan konektor VPC unik jika Anda ingin mengontrol konektor tertentu. Jika Anda menggunakan tag jaringan unik pada langkah sebelumnya, gunakan tag jaringan unik tersebut.
PRIORITY: bilangan bulat yang lebih kecil daripada prioritas yang Anda tetapkan pada langkah sebelumnya. Misalnya, jika Anda menetapkan prioritas untuk aturan yang dibuat di langkah sebelumnya ke 990, coba 980.
Untuk informasi selengkapnya tentang flag wajib dan opsional dalam membuat aturan
firewall, baca
dokumentasi untuk gcloud compute firewall-rules create
.
Mengelola konektor
Memutuskan sambungan fungsi dari jaringan VPC
Anda dapat memutuskan koneksi fungsi dari jaringan VPC menggunakan konsol Google Cloud atau Google Cloud CLI:
Konsol
Buka halaman ringkasan Cloud Functions di konsol Google Cloud:
Atau, klik fungsi yang ada untuk membuka halaman detailnya dan klik Edit.
Perluas setelan lanjutan dengan mengeklik Runtime, build....
Di tab Sambungan pada setelan Egress, masukkan nama konektor Anda di bidang konektor VPC, atau kosongkan bidang tersebut untuk memutuskan sambungan fungsi Anda dari jaringan VPC.
gcloud
Gunakan flag --clear-vpc-connector
untuk memutuskan sambungan fungsi Anda dari jaringan VPC:
gcloud functions deploy FUNCTION_NAME \ --clear-vpc-connector \ FLAGS...
dengan:
FUNCTION_NAME
adalah nama fungsi Anda.CONNECTOR_NAME
adalah nama konektor Anda.FLAGS...
merujuk pada flag lain yang Anda teruskan selama deployment fungsi.
Konektor akan terus dikenai biaya meskipun tidak ada traffic dan koneksinya sudah diputus. Untuk mengetahui detailnya, lihat pricing. Jika Anda tidak lagi memerlukan konektor, pastikan untuk menghapusnya agar penagihan tidak berlanjut.
Memperbarui konektor
Anda dapat memperbarui dan memantau atribut konektor berikut menggunakan Konsol Google Cloud, Google Cloud CLI, atau API:
- Jenis mesin (instance)
- Jumlah minimum dan maksimum instance
- Throughput, jumlah instance, dan penggunaan CPU terbaru
Update jenis mesin
Konsol
Buka halaman ringkasan Akses VPC Serverless.
Pilih konektor yang ingin Anda edit, lalu klik Edit.
Dalam daftar Jenis instance, pilih jenis mesin (instance) yang Anda inginkan. Untuk mempelajari jenis mesin yang tersedia, baca dokumentasi tentang Throughput dan penskalaan.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Untuk mengupdate jenis mesin konektor, jalankan perintah berikut di terminal Anda:
Ganti kode berikut:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
CONNECTOR_NAME
: nama konektor AndaREGION
: nama region konektor AndaMACHINE_TYPE
: jenis mesin pilihan Anda. Untuk mempelajari tentang jenis mesin yang tersedia, baca dokumentasi tentang Throughput dan penskalaan.
Mengurangi jumlah minimum dan maksimum instance
Untuk mengurangi jumlah minimum dan maksimum instance, lakukan tindakan berikut:
- Buat konektor baru dengan nilai yang Anda inginkan.
- Perbarui fungsi atau layanan Anda agar dapat menggunakan konektor baru.
- Hapus konektor lama setelah Anda memindahkan traffic-nya.
Baca Membuat konektor Akses VPC Serverless untuk informasi selengkapnya.
Menambah jumlah minimum dan maksimum instance
Konsol
Buka halaman ringkasan Akses VPC Serverless.
Pilih konektor yang ingin Anda edit, lalu klik Edit.
Di kolom Instance minimum, pilih jumlah minimum instance yang Anda inginkan.
Nilai terkecil yang mungkin untuk kolom ini adalah nilai saat ini. Nilai terbesar yang mungkin untuk kolom ini adalah nilai saat ini di kolom Instance maksimum dikurangi 1. Misalnya, jika nilai di kolom Instance maksimum adalah 8, nilai terbesar yang mungkin untuk kolom Instance minimum adalah 7.
Di kolom Instance maksimum, pilih jumlah maksimum instance yang Anda inginkan.
Nilai terkecil yang mungkin untuk kolom ini adalah nilai saat ini. Nilai terbesar yang mungkin untuk kolom ini adalah 10.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Untuk menambah jumlah minimum atau maksimum instance konektor, jalankan perintah berikut di terminal Anda:
Ganti kode berikut:gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
CONNECTOR_NAME
: nama konektor AndaREGION
: nama region konektor AndaMIN_INSTANCES
: jumlah minimum instance yang Anda inginkan.- Nilai terkecil yang mungkin untuk kolom ini adalah nilai
min_instances
saat ini. Untuk mengetahui nilai saat ini, baca Menemukan nilai atribut saat ini. - Nilai terbesar yang mungkin untuk kolom ini adalah nilai
max_instances
saat ini dikurangi 1, karenamin_instances
harus lebih kecil darimax_instances
. Misalnya, jikamax_instances
adalah 8, nilai terbesar yang mungkin untuk kolom ini adalah 7. Jika konektor Anda menggunakan nilaimax-instances
default 10, nilai terbesar yang mungkin untuk kolom ini adalah 9. Untuk mengetahui nilaimax-instances
, lihat Menemukan nilai atribut saat ini.
- Nilai terkecil yang mungkin untuk kolom ini adalah nilai
MAX_INSTANCES
:- Nilai terkecil yang mungkin untuk kolom ini adalah nilai
max_instances
saat ini. Untuk mengetahui nilai saat ini, baca Menemukan nilai atribut saat ini. - Nilai terbesar yang mungkin untuk kolom ini adalah 10.
Jika hanya ingin menambah jumlah minimum instance, tetapi bukan jumlah maksimumnya, Anda tetap harus menentukan jumlah maksimum instance. Sebaliknya, jika Anda hanya ingin memperbarui jumlah maksimum instance, tetapi bukan jumlah minimumnya, Anda tetap harus menentukan jumlah minimum instance. Untuk mempertahankan jumlah minimum atau maksimum instance pada nilainya saat ini, tentukan nilai instance saat ini. Untuk mengetahui nilainya saat ini, baca Menemukan nilai atribut saat ini.
- Nilai terkecil yang mungkin untuk kolom ini adalah nilai
Menemukan nilai atribut saat ini
Untuk menemukan nilai atribut saat ini bagi konektor Anda, jalankan perintah berikut ini di terminal Anda:
gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
CONNECTOR_NAME
: nama konektor AndaREGION
: nama region konektor AndaPROJECT
: nama project Google Cloud Anda
Memantau penggunaan konektor
Memantau penggunaan dari waktu ke waktu dapat membantu Anda menentukan kapan harus menyesuaikan setelan konektor. Misalnya, jika penggunaan CPU melonjak, Anda dapat mencoba meningkatkan jumlah maksimum instance agar hasilnya lebih baik. Atau jika Anda sudah memaksimalkan throughput, Anda mungkin memutuskan untuk beralih ke jenis mesin yang lebih besar.
Untuk menampilkan diagram throughput konektor, jumlah instance, dan metrik pemanfaatan CPU dari waktu ke waktu menggunakan Konsol Google Cloud:
Buka halaman ringkasan Akses VPC Serverless.
Klik nama konektor yang ingin Anda pantau.
Pilih jumlah hari yang ingin ditampilkan antara 1 dan 90 hari.
Pada diagram throughput, arahkan kursor ke diagram untuk melihat throughput terbaru konektor.
Pada diagram Jumlah instance, arahkan kursor ke diagram untuk melihat jumlah instance yang baru-baru ini digunakan oleh konektor.
Pada diagram Pemakaian CPU, arahkan kursor ke diagram untuk melihat penggunaan CPU terbaru konektor. Diagram menampilkan penggunaan CPU yang didistribusikan di seluruh instance untuk persentil ke-50, ke-95, dan ke-99.
Menghapus konektor
Sebelum Anda menghapus konektor, pastikan tidak ada layanan atau tugas yang masih terhubung ke konektor tersebut.
Untuk pengguna VPC Bersama yang menyiapkan konektor di project host
VPC Bersama, Anda dapat menggunakan perintah
gcloud compute networks vpc-access connectors describe
untuk mencantumkan project yang memiliki layanan atau tugas yang menggunakan konektor tertentu.
Untuk menghapus konektor, gunakan konsol Google Cloud atau Google Cloud CLI:
Konsol
Buka halaman ringkasan Akses VPC Serverless di konsol Google Cloud:
Pilih konektor yang ingin dihapus.
Klik Delete.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Gunakan perintah
gcloud
berikut untuk menghapus konektor:gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION
Ganti kode berikut:
- CONNECTOR_NAME dengan nama konektor yang ingin dihapus
- REGION dengan region tempat konektor berada
Pemecahan masalah
Izin akun layanan
Untuk menjalankan operasi di project Google Cloud Anda, Akses VPC Serverless menggunakan akun layanan Agen Layanan Akses VPC Serverless. Alamat email akun layanan ini memiliki format berikut:
service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com
Secara default, akun layanan ini memiliki
peran Agen Layanan Akses VPC Serverless
(roles/vpcaccess.serviceAgent
). Operasi Akses VPC Serverless
mungkin gagal jika Anda mengubah izin akun ini.
Error
Error akun layanan memerlukan peran Agen Layanan
Jika menggunakan batasan kebijakan organisasi
Batasi Service Usage Resource
untuk memblokir Cloud Deployment Manager (deploymentmanager.googleapis.com
), Anda
mungkin melihat pesan error berikut:
Serverless VPC Access service account (service-<PROJECT_NUMBER>@gcp-sa-vpcaccess.iam.gserviceaccount.com) needs Serverless VPC Access Service Agent role in the project.
Tetapkan kebijakan organisasi untuk menghapus Deployment Manager dari daftar tolak atau menambahkannya ke daftar yang diizinkan.
Error pembuatan konektor
Jika pembuatan konektor menghasilkan error, coba langkah berikut:
- Tentukan rentang IP internal RFC 1918 yang tidak tumpang-tindih dengan reservasi alamat IP yang ada di jaringan VPC.
- Beri project Anda izin untuk menggunakan image VM Compute Engine dari
project dengan ID
serverless-vpc-access-images
. Untuk informasi selengkapnya tentang cara memperbarui kebijakan organisasi, lihat Menetapkan batasan akses image.
Tidak dapat mengakses resource
Jika Anda telah menentukan konektor, tetapi masih tidak dapat mengakses resource di jaringan VPC Anda, pastikan tidak ada aturan firewall di jaringan VPC dengan prioritas di bawah 1000 yang menolak traffic masuk dari rentang alamat IP konektor Anda.
Jika Anda mengonfigurasi konektor di project layanan VPC Bersama, pastikan aturan firewall Anda mengizinkan traffic masuk dari infrastruktur serverless ke konektor.
Error koneksi ditolak
Jika Anda menerima error connection refused
yang menurunkan performa jaringan,
koneksi Anda dapat berkembang tanpa batas di seluruh pemanggilan
aplikasi serverless Anda. Untuk membatasi jumlah maksimum koneksi yang digunakan per
instance, gunakan library klien yang mendukung kumpulan koneksi. Untuk contoh
mendetail tentang cara menggunakan kumpulan koneksi, lihat
Mengelola koneksi database.
Error resource tidak ditemukan
Saat menghapus jaringan VPC atau aturan firewall, Anda mungkin melihat
pesan yang mirip dengan berikut ini: The resource
"aet-uscentral1-subnet--1-egrfw" was not found.
Untuk informasi tentang error ini dan solusinya, lihat Error resource tidak ditemukan dalam dokumentasi aturan firewall VPC.
Izin yang diperlukan vpcaccess.connectors.use untuk akun layanan tidak ada...
Pertama, pastikan peran roles/vpcaccess.user
ditetapkan ke akun layanan.
Jika Anda masih mengalami masalah izin dengan konektor VPC, periksa apakah benar-benar VPC Bersama. Dalam hal ini, penyiapan tambahan diperlukan pada project host.
Langkah berikutnya
- Hubungkan ke Memorystore dari Cloud Functions.
- Konfigurasikan setelan jaringan untuk Cloud Functions.
- Pantau aktivitas admin dengan pembuatan log 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.