Tujuan
Dalam tutorial ini, Anda akan mempelajari hal berikut:
- Membuat template instance Compute Engine dan grup instance terkelola (MIG).
- Mendapatkan nama domain dan sertifikat.
- Membuat load balancer HTTPS dengan sertifikat.
- Mengaktifkan IAP.
- Menguji apakah IAP berfungsi.
Biaya
Tutorial ini menggunakan komponen Google Cloud yang dapat ditagih, termasuk:
- Compute Engine
- 4 Virtual Machine (VM)
- Jaringan
- Aturan Penerusan Load Balancer Global
- Traffic Masuk
Untuk mengetahui estimasi biaya berdasarkan penggunaan yang diproyeksikan, lihat Kalkulator Harga ini.
Sebelum memulai
Sebelum memulai tutorial ini, Anda akan memerlukan hal berikut:
Pilih atau buat project Google Cloud.
BUKA HALAMAN PROJECTAktifkan penagihan untuk project Anda. Baca cara Mengubah setelan penagihan project
Langkah 1: Buat template Compute Engine
Di konsol Google Cloud, buka halaman Compute Engine > Create an instance template dan pilih project tempat Anda ingin membuat template.
BUKA HALAMAN BUAT TEMPLATE INSTANCE
Gunakan nilai default, kecuali untuk hal berikut:
- Jenis mesin:
- mikro (f1-micro)
- Cakupan akses:
- Tetapkan akses untuk setiap API
- Compute Engine: Hanya Baca
- Firewall:
- Allow HTTP traffic
- Di bagian Management, di bagian Automation > Startup script, salin dan tempel skrip berikut:
Setelah selesai memperbarui nilai, klik Create untuk membuat template.
Langkah 2: Buat Grup Instance Terkelola
Di konsol Google Cloud, buka halaman Compute Engine > Create a new instance group lalu pilih project tempat Anda ingin membuat Grup Instance Terkelola.
BUKA HALAMAN BUAT HALAMAN GRUP INSTANCE
Gunakan nilai default, kecuali untuk hal berikut:
- Nama: my-managed-instance-group
- Lokasi: Multi-zona
- Instance template: Pilih template instance yang Anda buat pada Langkah 1.
- Jumlah instance: Untuk mengubah jumlah instance, Anda harus menonaktifkan penskalaan otomatis terlebih dahulu.
- Mode penskalaan otomatis: Jangan lakukan penskalaan otomatis
Health check: pilih Create a health check, lalu masukkan nilai berikut:
- Nama: my-health-check
- Protokol: HTTP
Gunakan health check baru Anda dengan mengklik Simpan dan lanjutkan.
Setelah selesai memperbarui nilai, klik Create untuk membuat Managed Instance Group (MIG).
Langkah 3: Dapatkan nama domain dan sertifikat
Untuk menggunakan Load Balancer dengan traffic HTTPS, Anda memerlukan nama domain dan sertifikat yang ditandatangani. Anda dapat mendaftarkan domain di Google Domains, atau menggunakan registrar domain pilihan Anda. Daftarkan domain Anda sebelum melanjutkan panduan ini.
Menyiapkan sertifikat
Buat sertifikat yang mengidentifikasi situs web Anda kepada pengguna. Untuk informasi tentang cara membuat sertifikat, lihat Menggunakan sertifikat SSL yang dikelola Google.
CA Anda harus memverifikasi bahwa Anda adalah pemilik nama domain yang didaftarkan. Dalam langkah-langkah di bawah ini, Anda akan membuat VM untuk mengautentikasi domain Anda dengan CA.
Membuat VM untuk mengautentikasi kepemilikan domain Anda
Di Konsol Google Cloud, buka halaman Compute Engine > Create an instance.
BUKA HALAMAN MENCIPTAKAN INSTANCE
Gunakan nilai default, kecuali untuk hal berikut:
- Nama: certbot-vm
- Jenis mesin: micro (f1-micro)
- Cakupan akses:
- Tetapkan akses untuk setiap API
- Compute Engine: Baca/Tulis
- Image boot disk:
- Debian GNU/Linux 9 (stretch)
- Firewall:
- Allow HTTP traffic
- Izinkan traffic HTTPS
Setelah selesai memperbarui nilai, klik Create untuk membuat instance VM. Catat alamat IP Eksternal VM yang baru saja Anda buat. Anda akan membutuhkannya di langkah berikutnya.
Menyiapkan domain Anda agar mengarah ke VM
Untuk menyiapkan domain Anda agar mengarah ke VM, ikuti langkah-langkah di bawah ini untuk mengonfigurasi data A:
- Login ke akun domain di host domain Anda.
- Temukan halaman untuk memperbarui data DNS domain Anda. Halaman ini mungkin memiliki nama seperti "DNS Management", "Name Server Management", atau "Advanced Settings".
- Ubah data A menjadi nilai berikut:
- Nama/Host/Alias: @
- Value: Alamat IP eksternal VM yang Anda buat untuk mengautentikasi kepemilikan domain di atas.
- TTL: setelan default untuk registrar Anda, atau 86400 (satu hari).
- Tunggu hingga data DNS diperbarui. Diperlukan waktu hingga satu hari agar data yang Anda tambahkan diterapkan.
Untuk mempelajari lebih lanjut, lihat artikel Tentang data A.
Menguji server Anda
Untuk menguji apakah server Anda berfungsi dengan baik, ikuti langkah-langkah di bawah ini:
Di Konsol Google Cloud, buka halaman Compute Engine > VM Instances.
BUKA HALAMAN INSTANCE VMDi bagian Connect untuk certbot-vm, klik SSH.
Jalankan perintah berikut untuk menjalankan server web kecil di VM Anda:
mkdir web cd web echo "Hello" > index.html sudo busybox httpd -v -f
Di browser web, buka nama domain yang sebelumnya Anda daftarkan. Browser web akan menampilkan
Hello
, dan sesi SSH akan menampilkan pesan yang berisi... response:200
. Jika belum, tunggu beberapa menit, lalu ulangi langkah ini.Setelah pengujian berhasil, tekan Ctrl+C untuk menghentikan server web.
Membuat sertifikat
Untuk membuat sertifikat, daftar ke Let's Encrypt dengan menjalankan perintah berikut di VM dengan YOUR_DOMAIN sebagai nama domain Anda, tidak termasuk protokol:
sudo pkill busybox sudo apt-get install -y certbot sudo certbot certonly --standalone -d YOUR-DOMAIN
Selama proses ini, Let's Encrypt dapat meminta alamat email agar dapat mengirim pengingat saat masa berlaku sertifikat Anda akan berakhir (secara default, 3 bulan setelah diterbitkan). Anda juga harus menyetujui Persyaratan Layanan yang ditetapkan oleh Let's Encrypt.
Setelah berhasil terdaftar, Anda akan melihat pesan yang bertuliskan
Congratulations! Your certificate and chain have been saved at...
Menambahkan sertifikat ke project Anda
Untuk menambahkan sertifikat ke project Anda, jalankan perintah berikut di VM:
sudo su cd /etc/letsencrypt/live/YOUR_DOMAIN gcloud compute ssl-certificates create my-cert --certificate=fullchain.pem --private-key=privkey.pem
Setelah berhasil membuat sertifikat, Anda akan melihat pesan
yang serupa dengan: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Sebelum melanjutkan, tutup sesi SSH.
Langkah 4: Membuat load balancer
Sebelum memulai langkah ini, pastikan Anda sudah menutup sesi SSH yang dimulai pada langkah sebelumnya. Jika sudah siap, ikuti langkah-langkah di bawah ini untuk membuat load balancer:
Di konsol Google Cloud, buka halaman Network Services > Create a load balancer dan pilih project yang ingin Anda buat load balancernya.
BUKA HALAMAN BUAT SALUR KEMBANGPada HTTP(S) Load Balancing, klik Start configuration.
Pilih From Internet to my VMs.
Di halaman New external Application Load Balancer yang muncul, masukkan Name untuk load balancer Anda.
Klik Backend configuration, lalu pilih Backend services > Create a backend service.
Di panel Create back-end service, di kotak Name, masukkan
my-backend-service
.
Pada bagian New backend, gunakan nilai default, kecuali untuk hal berikut:
- Instance group: my-managed-instance-group
Di bagian Health check, pilih my-health-check.
Setelah selesai memperbarui nilai, klik Create. Panel New HTTP(S) load balancer akan muncul kembali.
Klik Host and path rules untuk memuat nilai default. Anda tidak perlu menambahkan aturan apa pun.
Klik Frontend configuration. Gunakan nilai default, kecuali untuk hal berikut:
- Protokol: HTTPS
- Alamat IP: klik Buat alamat IP
- Masukkan Nama untuk dikaitkan dengan alamat IP statis Anda yang baru.
- Klik Reserve untuk mencadangkan alamat IP statis.
- Sertifikat: sertifikat saya
Setelah selesai memasukkan nilai konfigurasi frontend, klik Done.
Klik Create. Halaman Load balancing akan muncul dan load balancer baru Anda akan dibuat dalam daftar load balancer.
Setelah konsol Google Cloud selesai membuat load balancer baru, klik nama load balancer, lalu catat alamat IP eksternal di bagian Details > Frontend. Anda akan membutuhkannya di langkah berikutnya.
Menyiapkan domain Anda agar mengarah ke load balancer
Untuk menyiapkan domain Anda agar mengarah ke load balancer, konfigurasikan data A dengan mengikuti langkah-langkah di bawah ini:
- Login ke akun domain di host domain Anda.
- Temukan halaman untuk memperbarui data DNS domain Anda. Halaman ini mungkin memiliki nama seperti "DNS Management", "Name Server Management", atau "Advanced Settings".
- Ubah data A menjadi nilai berikut:
- Nama/Host/Alias: @
- Value: alamat IP eksternal load balancer yang Anda buat di atas. Jangan sertakan port
:443
di data DNS Anda. - TTL: setelan default untuk registrar Anda, atau 86400 (satu hari).
- Tunggu hingga data DNS diperbarui. Diperlukan waktu hingga satu hari agar data yang baru saja Anda tambahkan diterapkan.
- Untuk menguji load balancer, gunakan browser web untuk membuka domain Anda dengan protokol
https://
.- Jika load balancer belum disiapkan, Anda akan melihat error "HTTP 502".
- Setelah load balancer siap, Anda akan melihat "Permintaan tidak sah".
Untuk mempelajari lebih lanjut, lihat artikel Tentang data A.
Mulai ulang VM
Untuk mengautentikasi permintaan dari IAP dengan benar, Anda harus memulai ulang VM di MIG dengan mengikuti langkah-langkah berikut:
- Di Konsol Google Cloud, buka
halaman Compute Engine > Grup instance.
BUKA HALAMAN GRUP INSTANCE - Klik my-managed-instance-group.
- Di bagian atas detail grup instance yang muncul, klik Rolling Restart/Replace.
- Di halaman Restart/replace instances of my-managed-instance-group yang
muncul, tetapkan nilai berikut:
- Operasi: Mulai ulang
- Maksimu tidak tersedia: 3 instance dari 3 instance
- Waktu tunggu minimum: 0 d
- Setelah selesai memperbarui nilai, klik Mulai ulang.
Langkah 5: Siapkan IAP
Konfigurasikan firewall Anda
Selanjutnya, Anda akan mengonfigurasi firewall untuk memblokir akses ke VM dasar dan hanya mengizinkan akses melalui IAP:
- Buka Jaringan VPC > Aturan firewall di konsol Google Cloud.
BUKA HALAMAN ATURAN FIREWALL - Pilih kotak centang di samping aturan berikut:
- default-allow-http
- default-allow-https
- default-allow-internal
- Klik Delete.
- Klik Create firewall rule dan tetapkan nilai berikut:
- Nama: allow-iap-traffic
- Target: Semua instance dalam jaringan
- Source IP ranges (tekan Enter setelah Anda menempelkan setiap nilai
di dalam kotak). Rentang IP diizinkan karena merupakan prasyarat
untuk komunikasi load balancer ke backend.
- 130.211.0.0/22
- 35.191.0.0/16
- Protokol dan port:
- Specified protocols and ports
- tcp:80
- Setelah selesai memperbarui nilai, klik Create.
Menyiapkan IAP
Untuk menyiapkan IAP untuk project Anda, ikuti langkah-langkah di bawah:
- Di konsol Google Cloud, buka halaman Security > Identity-Aware Proxy dan pilih project tempat Anda ingin mengaktifkan IAP.
BUKA HALAMAN PROXI IDENTITAS-PENGHARGAAN Jika belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya:
-
Buka Layar persetujuan OAuth.
Konfigurasi layar izin - Di bagian Support email, pilih alamat email yang ingin Anda tampilkan sebagai kontak publik. Alamat email harus merupakan milik akun pengguna yang saat ini login atau milik Google Grup dengan pengguna yang saat ini login adalah pengelola atau pemiliknya.
- Masukkan Application name yang ingin ditampilkan.
- Tambahkan detail opsional yang Anda inginkan.
- Klik Simpan.
Untuk mengubah informasi pada layar izin OAuth nanti, seperti nama produk atau alamat email, ulangi langkah-langkah sebelumnya untuk mengonfigurasi layar izin.
-
Buka Layar persetujuan OAuth.
Di samping my-backend-service,
Di jendela Turn on IAP yang muncul, centang kotak di samping "Saya telah membaca persyaratan konfigurasi dan mengonfigurasi resource Compute Engine sesuai dengan dokumentasi".
Klik Aktifkan.
Menambahkan akun utama ke daftar akses
Selanjutnya, tambahkan akun utama ke daftar akses IAP untuk project Anda.
- Di bagian IAM & admin > Identity-Aware Proxy di bagian kanan Access, klik Add.
- Masukkan akun utama yang ingin Anda beri akses, termasuk akun Anda, dan
tetapkan peran IAP-secured Web App User untuk akun utama tersebut. Kepala sekolah dapat berupa:
- Akun Google: pengguna@gmail.com
- Google Grup: admin@googlegroups.com
- Akun layanan: server@example.gserviceaccount.com
- Domain Google Workspace: example.com
Langkah 6: Uji IAP
Untuk menguji apakah IAP berfungsi dengan benar, ikuti langkah-langkah di bawah:
- Di browser web, buka domain Anda.
- Jika Anda melihat "Permintaan tidak sah", coba lagi dalam beberapa menit.
- Jika Anda melihat layar login Google, login menggunakan Akun Google yang telah Anda beri akses di langkah sebelumnya.
- Anda akan melihat pesan seperti "Hai, pengguna@example.com. Saya my-managed-instance-group-29z6".
- Coba muat ulang halaman. Browser Anda akan menampilkan nama ketiga mesin dalam grup instance terkelola. Ini adalah load balancer yang mendistribusikan traffic di seluruh VM dalam grup.
Selamat! Anda telah berhasil mengaktifkan layanan load balancing menggunakan IAP.
Pembersihan
Agar tidak dikenakan biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource-nya.
Setelah selesai menyiapkan IAP untuk Compute Engine, Anda dapat menghapus resource yang dibuat di Google Cloud agar tidak ditagih di masa mendatang. Bagian berikut menjelaskan cara menghapus atau menonaktifkan resource ini.
Menghapus project
Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus instance
Untuk menghapus instance Compute Engine:
- Di konsol Google Cloud, buka halaman Instance VM.
- Pilih kotak centang untuk instance yang ingin Anda hapus.
- Untuk menghapus instance, klik Tindakan lainnya, klik Hapus, lalu ikuti petunjuknya.
Menghapus aturan firewall untuk jaringan default
Untuk menghapus aturan firewall:
- Di Konsol Google Cloud, buka halaman Firewall.
- Centang kotak untuk aturan firewall yang ingin Anda hapus.
- Untuk menghapus aturan firewall, klik Hapus.
Langkah selanjutnya
- Coba ubah aplikasi contoh yang kita gunakan dalam tutorial ini untuk menyalurkan data lain.
- Baca Praktik Terbaik untuk memahami cara menulis aplikasi Anda sendiri dan mengamankannya dengan IAP.