Hai!

Setelah membuat auto-mode VPCs di jurnal sebelumnya (baca: https://misskecupbung.wordpress.com/2021/03/14/google-cloud-how-to-creating-auto-mode-vpcs-easily/), disini kita akan coba membuat custom-mode VPCs ya.

Seperti namanya, custom-mode berarti kita bisa definisikan sendiri komponen-komponen VPCs nya sesuai kebutuhan. Komponen apa saja itu? mari kita coba menggunakan skenario.

Skenario dalam jurnal ini adalah pertama kita buat custom-mode VPCs, lalu buat service account baru dengan roles logs writer dan monitoring, buat instance template beserta instance group dimana kita gunakan service account yang baru saja dibuat (instance akan mendapatkan permission sesuai roles) dan terakhir adalah pembuatan firewall dimana metodenya berdasarkan service account dan network-tag. So, firewall hanya akan diapply sesuai service account dan network-tag saja.

Mari kita mulai.

Masuk ke menu VPC Networks > VPC Networks. Tampilannya akan seperti di bawah ini dimana ada dua buah VPCs (default terbuat otomatis bersamaan saat project dibuat dan yang satunya dibuat di jurnal sebelumnya).

Disini kita akan hapus semua dan buat VPCs dengan mode custom. Untuk menghapus, klik nama VPCs.

Setelah masuk ke tampilan detail, klik Delete VPC Network.

Akan muncul pop up konfirmasi, klik DELETE.

Ulangi dengan langkah yang sama untuk menghapus VPCs kedua hingga semua sudah terhapus ya. Untuk membuat VPCs baru klik Create VPC Network.

Kita definisikan nama dan deskripsi bila perlu, dan yang jadi perbedaan dengan auto-mode yaitu pada Subnet Creation Mode, pilih Custom.

Lalu kita definisikan nama subnet, region tempat dimana subnet berada, beserta range ip nya ya. Sebagai opsional bisa set Private Google Access dan Flow logs, setelah itu klik Done.

Untuk membuat subnet baru lagi (misal untuk region yang berbeda) bisa klik Add Subnet. Disini saya masih buat 1 aja ya. Lalu set Dynamic routing mode menjadi Regional. Perbedaan dari keduanya yaitu jika Regional untuk satu region saja, dan untuk Global bersifat global dan biasanya digunakan untuk VPN. Lalu klik Create.

Hasilnya akan seperti berikut ini:

Selanjutnya, kita akan buat service account baru dan service account kita coba hapus saja, apakah bisa? bisa dong. Sebelum membuat service account, kita perlu buat roles nya. Ini merupakan custom roles dimana permissionnya bisa kita definisikan sendiri. Masuk ke IAM & Admin > Roles.

Tampilannya seperti berikut ini:

Roles baru yang akan dibuat memiliki akses untuk Logs Writer dan Monitoring Metric Writer. Agar tidak perlu cari satu-persatu, gunakan fitur filter. Centang kedua roles dan klik Create Role.

Definisikan nama, deskripsi bila perlu, dan ID.

Bisa dilihat di bawah ini, bahwa permission dari kedua role yang dipilih berjumlah 7 sesuai permission dari kedua roles bawaan yang dipilih sebelumnya, lalu klik Create.

Hasilnya seperti berikut ini:

Untuk assign roles ke service account sebenarnya tinggal pilih roles > edit dan assign. Tapi dengan menggunakan cara tersebut, service account yang digunakan adalah default. Padahal kita ingin membuat service account baru bukan? kita tidak menggunakan carai klik edit.

Untuk membuat service account, masuk ke menu Service Accounts. Kita hapus dulu defaultnya denan pilih service account > Delete.

Pada pop up konfirmasi, tulis service account nya, dan klik Delete.

Sudah kosong dan klik Create Service Account:

Definisikan nama dan id dari service account, lalu klik create.

Nah, pada saat grant option, kita pilih roles yang sudah dibuat tadi. Jadi artinya service account yang sudah kita buat memiliki permission logs writer dan monitoring sesuai yang sudah didefinisikan sebelumnya. Lalu klik continue.

Biarkan default, dan klik Done.

Hasilnya akan seperti berikut ini:

Selanjutnya, kita buat instance template. Klik Compute Engine > Instance Templates

Klik Create Instance Template dan pada form, bisa definisikan nama, dan spesifikasi mesinnya ya. Ini sesuai kebutuhan. Lalu gulir ke bawah.

Nah, pada opsi Identity and API access, pilih service account yang sudah dibuat sebelumnya. Oh iya, karena ini service account buatan sendiri, maka tidak ada opsi access scope, access scope hanya diperuntukkan untuk service account default. GCP akan menganggap permission nya sudah sesuai dengan apa yang didefinisikan di roles services account (pada contoh ini logs writer dan monitoring ya). Lalu klik Management, security, disks, networking, sole tenancy.

Buka tab networking, dan sesuaikan dengan VPCs yang sudah dibuat sebelumnya. Lalu klik Create.

Hasilnya akan seperti berikut ini:

Lalu kita buat instance group dari instance template yang sudah dibuat. Buka menu Instance Group > Create instance group

Definisikan nama, lokasi multi-region, sesuaikan region dengan region tempat VPCs berada, dan pilih instance-template yang sudah dibuat. Lalu gulir ke bawah.

Biarkan yang lain default, atau bisa disesuaikan masing-masing. Disini saya coba minimum instance 2 dan maximum nya 3. Jika sudah klik Create.

Hasilnya akan seperti berikut ini. Pastikan tercentang hijau ya. Artinya instance group dalam keadaan baik. Lalu klik nama instance group untuk melihat detailnya.

Seperti di bawah ini, terlihat jumlah instance yang berada di instance group ada 2. Sesuai dengan yang didefinisikan di template.

Mari kita coba ping salah satu. Apakah bisa? hasilnya tidak bisa. Mengapa?

Jika kita cek, di dalam detail VPCs Networks, pada tab Firewall Rules masih kosong, yang artinya semua trafik tidak boleh masuk, keluar, ataupun lewat (ingress allow dan egress deny. hanya terdapat di VPCs default ya). Untuk membuat firewall baru, klik Add Firewall Rule.

Definisikan nama dan deskripsi bila perlu. Pada rule pertama ini, saya ingin coba mengijinkan trafik masuk khusus paket icmp agar bisa servernya bisa diping. Jadi direction pilih ingress, dan action pilih allow.

Saat penulisan jurnal ini, target untuk firewall di GCP ada tiga. Dimana untuk semua network, spesifik netwok-tag, dan service account. Jadi, rule hanya akan diapply berdasarkan targetnya saja.

Disini saya pilih target nya spesific service account, dan pilih service account yang sudah dibuat tadi. Jadi, rule hanya akan diapply ke instance yang menggunakan service account tersebut. Untuk source pilih 0.0.0.0/0. Pada bagian protocol, centang bagian other dan isikan icmp. Lalu klik create.

Hasilnya akan seperti berikut ini:

Dan instance sudah bisa diping.

Karena tadi kita hanya definisiin icmp saja, saat kita ssh salah satu instance, hasilnya tidak akan bisa. Seperti berikut ini.

Mari kita buat firewall untuk SSH nya dengan metode berbeda, yaitu network-tag. Untuk nama, network, direction dan action masa sama. Lalu gulir ke bawah.

Dan target nya pilih Spesific target tags, dan definisiin tag nya ya. Misal allow-ssh-tag. Untuk source set ke 0.0.0.0/0 dan protokol set ke tcp 22. Lalu klik create.

Hasilnya akan seperti berikut ini:

Agar bisa diaplikasikan ke instance, kita harus update instance nya. Saya coba untuk salah satu instance, format perintahnya:

gcloud compute instances add-tags [instance-name] --tags=[tag] --zone [zone-instance]

Saat diverifikasi maka akan muncul tag nya di vm instance details:

Dan ya… insance bisa di ssh.

Sekian!