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 Cloudyang dapat ditagih, termasuk:
- Compute Engine
- 4 Virtual Machine (VM)
- Networking
- Global Aturan Penerusan Load Balancer
- Traffic Masuk
Untuk perkiraan biaya berdasarkan proyeksi penggunaan, lihat Kalkulator Harga ini.
Sebelum memulai
Sebelum memulai tutorial ini, Anda memerlukan hal berikut:
Pilih atau buat project Google Cloud .
BUKA HALAMAN PROJECTAktifkan penagihan untuk project Anda. Baca cara Mengubah setelan penagihan project
Langkah 1: Membuat template Compute Engine
Di konsol Google Cloud , buka halaman Compute Engine > Create an instance template dan pilih project tempat Anda ingin membuat template instance.
BUKA HALAMAN BUAT TEMPLATE INSTANCE
Gunakan nilai default kecuali untuk hal berikut:
- Jenis mesin:
- micro (f1-micro)
- Cakupan akses:
- Tetapkan akses untuk setiap API
- Compute Engine: Hanya Baca
- Firewall:
- Izinkan traffic HTTP
- Di bagian Management, di bagian Automation > skrip startup, salin dan tempel skrip berikut:
Setelah selesai memperbarui nilai, klik Create untuk membuat template.
Langkah 2: Membuat Grup Instance Terkelola
Di konsol Google Cloud , buka halaman Compute Engine > Create a new instance group dan pilih project tempat Anda ingin membuat Grup Instance Terkelola.
BUKA HALAMAN CREATE AN INSTANCE GROUP
Gunakan nilai default kecuali untuk hal berikut:
- Name: my-managed-instance-group
- Location: Multi-zone
- Instance template: Pilih template instance yang Anda buat di Langkah 1
- Jumlah instance: Untuk mengubah jumlah instance, Anda harus menonaktifkan penskalaan otomatis terlebih dahulu.
- Autoscaling mode: Don't autoscale
Health check: pilih Create a health check, lalu masukkan nilai berikut:
- Name: my-health-check
- Protocol: HTTP
Gunakan health check baru Anda dengan mengklik Save and continue.
Setelah selesai memperbarui nilai, klik Create untuk membuat Grup Instance Terkelola (MIG).
Langkah 3: Mendapatkan nama domain dan sertifikat
Untuk menggunakan Load Balancer dengan traffic HTTPS, Anda memerlukan nama domain dan sertifikat yang ditandatangani. Anda dapat mendaftarkan domain di Cloud Domains, atau menggunakan registrar domain pilihan Anda. Daftarkan domain Anda sebelum melanjutkan.
Menyiapkan sertifikat
Buat sertifikat yang mengidentifikasi situs Anda kepada pengguna. Untuk mengetahui informasi tentang cara membuat sertifikat, lihat Menggunakan sertifikat SSL yang dikelola Google.
CA Anda harus memverifikasi bahwa Anda adalah pemilik nama domain yang Anda daftarkan. Pada langkah-langkah berikut, 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 CREATE AN INSTANCE
Gunakan nilai default kecuali untuk hal berikut:
- Name: certbot-vm
- Machine type: micro (f1-micro)
- Cakupan akses:
- Tetapkan akses untuk setiap API
- Compute Engine: Baca/Tulis
- Boot disk image:
- Debian GNU/Linux 9 (stretch)
- Firewall:
- Izinkan traffic HTTP
- 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 pada langkah berikutnya.
Menyiapkan domain agar mengarah ke VM
Untuk menyiapkan domain agar mengarah ke VM, ikuti langkah-langkah berikut untuk mengonfigurasi data A:
- Login ke akun domain di host domain Anda.
- Temukan halaman untuk memperbarui data DNS domain Anda. Halaman ini mungkin bernama DNS Management, Name Server Management, atau Advanced Settings.
- Ubah data A Anda ke nilai berikut:
- Nama/Host/Alias: @
- Value: alamat IP eksternal VM yang Anda buat untuk mengautentikasi kepemilikan domain di atas.
- TTL: default untuk registrar Anda, atau 86400 (satu hari).
- Tunggu hingga data DNS diperbarui. Mungkin perlu waktu hingga satu hari agar data yang Anda tambahkan diterapkan.
Untuk mempelajari lebih lanjut, lihat Tentang data A.
Menguji server Anda
Untuk menguji apakah server Anda berfungsi dengan benar, ikuti langkah-langkah berikut:
Di konsol Google Cloud , buka halaman Compute Engine > VM Instances.
BUKA HALAMAN VM INSTANCESDi 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 -fDi browser web, buka nama domain yang Anda daftarkan sebelumnya. Browser web Anda akan menampilkan
Hello, dan sesi SSH Anda 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 adalah 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 mungkin meminta alamat email untuk mengirim pengingat saat masa berlaku sertifikat Anda berakhir (secara default, 3 bulan setelah diterbitkan). Anda juga harus menyetujui Persyaratan Layanan Let's Encrypt.
Setelah Anda berhasil mendaftar, pesan yang bertuliskan
Congratulations! Your certificate and chain have been saved at... akan muncul.
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 Anda berhasil membuat sertifikat, akan muncul pesan
yang mirip dengan: Created
[https://www.googleapis.com/compute/v1/projects/example-project/global/sslCertificates/my-cert]
Sebelum melanjutkan, tutup sesi SSH.
Langkah 4: Buat load balancer
Sebelum memulai langkah ini, pastikan Anda telah menutup sesi SSH yang Anda mulai di langkah sebelumnya. Jika sudah siap, ikuti langkah-langkah di bawah untuk membuat load balancer:
Di konsol Google Cloud , buka halaman Network Services > Create a load balancer dan pilih project tempat Anda ingin membuat load balancer.
BUKA HALAMAN CREATE A LOAD BALANCERDi bagian 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.
Di bagian Layanan backend & bucket backend, pilih Buat layanan backend.
Tambahkan nama untuk layanan backend Anda, seperti
my-backend-service.
Buka bagian Security, lalu pilih Enable IAP to secure access to your applications.
Cloud CDN dan IAP tidak kompatibel. Jika Anda telah mengaktifkan Cloud CDN dan Anda memilih untuk mengaktifkan IAP, Cloud CDN akan otomatis dinonaktifkan.
Klik Create. Halaman Load balancing akan dimuat, dengan load balancer baru Anda ditampilkan dalam daftar load balancer.
Setelah konsol Google Cloud selesai membuat load balancer baru, klik nama load balancer dan catat alamat IP eksternal di bagian Details > Frontend. Anda akan menggunakannya pada langkah berikutnya.
Menyiapkan domain agar mengarah ke load balancer
Untuk menyiapkan domain agar mengarah ke load balancer, konfigurasikan data A menggunakan langkah-langkah berikut:
- Login ke akun domain di host domain Anda.
- Temukan halaman untuk memperbarui data DNS domain Anda. Halaman ini mungkin bernama DNS Management, Name Server Management, atau Advanced Settings.
- Ubah data A Anda ke nilai berikut:
- Nama/Host/Alias: @
- Value: alamat IP eksternal load balancer yang Anda buat
sebelumnya. Jangan sertakan port
:443di data DNS Anda. - TTL: default untuk registrar Anda, atau 86400 (satu hari).
- Tunggu hingga data DNS diperbarui. Mungkin perlu waktu hingga satu hari agar data yang baru 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".
- Saat load balancer siap, Anda akan melihat "Unauthorized request".
Untuk mempelajari lebih lanjut, lihat Tentang data A.
Memulai ulang VM Anda
Untuk mengautentikasi permintaan dari IAP dengan benar, Anda harus memulai ulang VM di MIG.
- Di konsol Google Cloud , buka halaman
Compute Engine > Instance groups.
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, tetapkan nilai berikut:
- Operation: Restart
- Maximum unavailable: 3 instance dari 3 instance
- Waktu tunggu minimum: 0 d
- Setelah selesai memperbarui nilai, klik Restart.
Langkah 5: Menyiapkan IAP
Mengonfigurasi firewall
Selanjutnya, konfigurasikan firewall Anda untuk memblokir akses ke VM yang mendasarinya dan hanya mengizinkan akses melalui IAP:
Buka konsol Google Cloud VPC network > Firewall rules.
BUKA HALAMAN ATURAN FIREWALLCentang kotak di samping aturan berikut:
default-allow-http
default-allow-https
default-allow-internal
Klik Hapus.
Klik Create firewall rule dan tetapkan nilai berikut:
Name: allow-iap-traffic
Targets: All instances in the network
Source IP ranges (tekan Enter setelah menempelkan setiap nilai ke kolom): Anda harus mengizinkan traffic dari rentang alamat IP ini agar load balancer dapat berkomunikasi dengan backend Anda.
130.211.0.0/22
35.191.0.0/16
Protocols and ports:
Protokol dan port yang ditentukan
tcp:80
Setelah selesai memperbarui nilai, klik Create.
Menyiapkan IAP
Untuk menyiapkan IAP untuk project Anda, ikuti langkah-langkah berikut:
1. Di konsol Google Cloud , buka halaman Security > Identity-Aware Proxy dan pilih project yang ingin Anda aktifkan IAP-nya.BUKA HALAMAN IDENTITY-AWARE PROXY 1. Jika Anda belum mengonfigurasi layar izin OAuth project, Anda akan diminta untuk melakukannya:
-
Buka OAuth consent screen.
Konfigurasi layar izin - Di bagian Email dukungan, pilih alamat email yang ingin Anda tampilkan sebagai kontak publik. Alamat email harus milik akun pengguna yang saat ini login atau milik Grup Google yang pengelola atau pemiliknya adalah pengguna yang saat ini login.
- Masukkan Nama aplikasi yang ingin ditampilkan.
- Tambahkan detail opsional yang Anda inginkan.
- Klik Save.
Untuk mengubah informasi di layar izin OAuth nanti, seperti nama produk atau alamat email, ulangi langkah-langkah sebelumnya untuk mengonfigurasi layar izin.
1. Di samping my-backend-service, 1. Di jendela Turn on IAP yang muncul, centang kotak di samping "I have read the configuration requirements and configured my resource Compute Engine sesuai dengan dokumentasi." 1. Klik Aktifkan.Menambahkan akun utama ke daftar akses
Selanjutnya, tambahkan principal ke daftar akses IAP untuk project Anda.
- Di bagian Access di sisi kanan Security > Identity-Aware Proxy, klik Add.
- Masukkan akun utama yang ingin Anda beri akses, termasuk diri Anda sendiri, dan
tetapkan peran IAP-secured Web App User ke akun utama. Akun utama dapat berupa:
- Akun Google: user@gmail.com
- Google Grup: admins@googlegroups.com
- Akun layanan: server@example.gserviceaccount.com
- Domain Google Workspace: example.com
Langkah 6: Menguji IAP
Untuk menguji apakah IAP berfungsi dengan benar, ikuti langkah-langkah berikut:
1. Di browser web, buka domain Anda. Jika Anda melihat "Permintaan tidak sah", coba lagi setelah beberapa menit. 1. Saat Anda melihat layar login Google, login menggunakan Akun Google yang Anda beri akses di langkah sebelumnya. 1. Pesan akan muncul seperti "Hi, user@example.com. I am my-managed-instance-group-29z6." 1. Coba muat ulang halaman. Browser Anda akan menampilkan nama 3 mesin di grup instance terkelola Anda. Ini adalah load balancer yang mendistribusikan traffic ke seluruh VM dalam grup.Selamat! Anda telah berhasil mengaktifkan layanan yang di-load balanced menggunakan IAP.
Pembersihan
Agar tidak perlu membayar 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.
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 resources.
- 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 VM instances.
- 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.
- Pilih kotak centang untuk aturan firewall yang ingin Anda hapus.
- Untuk menghapus aturan firewall, klik Hapus.
Langkah berikutnya
- Coba ubah aplikasi contoh yang kami gunakan dalam tutorial ini untuk menyajikan data lain.
- Baca Praktik Terbaik untuk memahami cara menulis aplikasi Anda sendiri dan mengamankannya dengan IAP.