GSP946

Ringkasan
Dengan model keamanan Zero-Trust, tidak ada orang, perangkat, atau jaringan yang dipercaya secara otomatis. Pemberian akses didasarkan pada berbagai faktor, termasuk, tetapi tidak terbatas pada: identitas, perangkat, lokasi, dan waktu. Salah satu kasus penggunaan utama pemberlakuan kebijakan Zero-Trust adalah penyediaan akses aman ke aplikasi web, seperti aplikasi berbasis HTTP/HTTPS yang dihosting di Google Cloud atau pusat data lokal. Setiap aplikasi web dapat memiliki kontrol aksesnya sendiri agar keamanannya tepat sasaran dan risikonya lebih rendah. Pengamanan aplikasi web tidak perlu penetapan daftar kontrol akses (ACL). Penetapan rentang IP memungkinkan orientasi yang cepat tanpa mengorbankan keamanan. Secara arsitektur, komponen utama untuk menyediakan akses zero-trust adalah:
-
Identity-Aware Proxy (IAP), yaitu mesin penerapan kebijakan untuk memastikan setiap permintaan akses diotorisasi.
Di lab ini, Anda akan men-deploy aplikasi sampel ke App Engine dan menerapkan kebijakan menggunakan Identity-Aware Proxy (IAP). Anda juga akan mendapatkan informasi identitas pengguna di aplikasi yang dilindungi IAP.
Tujuan pembelajaran
- Men-deploy aplikasi App Engine sederhana menggunakan Python.
- Mengaktifkan Identity-Aware Proxy (IAP) untuk membatasi akses ke aplikasi.
- Mendapatkan informasi identitas pengguna dari IAP di aplikasi.
Prasyarat
Pengetahuan dasar bahasa pemrograman (Python)
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Google Cloud Console
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Waktu tersisa
- Kredensial sementara yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab Details.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab Details.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
-
Klik halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan mendaftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Mengaktifkan Cloud Shell
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
-
Klik Activate Cloud Shell
di bagian atas Konsol Google Cloud.
-
Klik jendela berikut:
- Lanjutkan melalui jendela informasi Cloud Shell.
- Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:
Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}
gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
- (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
- Klik Authorize.
Output:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
Untuk menetapkan akun aktif, jalankan:
$ gcloud config set account `ACCOUNT`
- (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project
Output:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Skenario
Anda akan membangun aplikasi web sederhana dengan Google App Engine, lalu mencoba berbagai cara penggunaan Identity-Aware Proxy untuk membatasi akses ke aplikasi dan memberikan informasi identitas pengguna ke aplikasi tersebut. Aplikasi akan:
- Menampilkan halaman sambutan
- Mengakses informasi identitas pengguna yang disediakan IAP
Tugas 1. Men-deploy aplikasi dan melindunginya dengan IAP
Aplikasi Standar App Engine ini ditulis dalam Python 3.8 dan hanya menampilkan halaman sambutan “Halo Dunia”. Anda akan men-deploy dan mengujinya, lalu membatasi aksesnya menggunakan IAP.
- Di Cloud Shell, jalankan perintah berikut untuk mendownload kode yang diperlukan untuk lab ini dari GitHub, lalu ubah ke folder kode:
git clone https://github.com/googlecodelabs/user-authentication-with-iap.git
cd user-authentication-with-iap
Meninjau kode aplikasi
- Ubah direktori dari folder project utama ke folder 1-HelloWorld:
cd 1-HelloWorld
Kode aplikasi berada di file main.py. Kode ini menggunakan framework web Flask untuk merespons permintaan web dengan konten template. File template tersebut berada di templates/index.html, dan hanya berisi HTML biasa untuk langkah ini. File template kedua berisi contoh demo kebijakan privasi di templates/privacy.html.
Ada dua file lain, yaitu requirements.txt yang mencantumkan semua library Python non-default yang digunakan aplikasi, dan app.yaml yang memberi tahu Google Cloud Platform bahwa aplikasi App Engine ini ditulis menggunakan Python 3.8.
Anda dapat mencantumkan semua file di Cloud Shell menggunakan perintah cat:
cat main.py
Anda juga dapat membuka editor kode Cloud Shell dengan mengklik Edit (
) di kanan atas jendela Cloud Shell, dan memeriksa kode menggunakan editor tersebut.
Anda tidak perlu mengubah file apa pun untuk langkah ini.
Men-deploy aplikasi ke App Engine
Sekarang, deploy aplikasi ke lingkungan Standar App Engine untuk Python 3.8.
- Jalankan perintah berikut:
gcloud app create --project=$(gcloud config get-value project) --region={{{ project_0.startup_script.app_region | REGION }}}
Ketika Anda ditanya apakah ingin melanjutkan, tekan Y.
Jika Anda juga diminta menyetujui panggilan yang dibuat untuk membuat aplikasi App Engine, klik tombol Authorize.
- Di editor kode Cloud Shell, lihat file
app.yaml di folder 1-HelloWorld. Lalu, perbarui versi python runtime.
runtime: python310
- Jalankan perintah berikut setelah perintah create selesai:
gcloud app deploy
Jika diminta melanjutkan, ketik Y, lalu tekan Enter.
Catatan: Jalankan kembali perintah tersebut untuk menghindari error jika muncul.
Setelah beberapa menit, deployment selesai dan pesan muncul untuk memberitahukan bahwa Anda dapat melihat aplikasi dengan perintah berikut:
gcloud app browse
Catatan: Karena baru pertama kali dijalankan, instance cloud perlu waktu beberapa detik setelah dimulai hingga aplikasi muncul, dan Anda akan melihat output seperti gambar berikut. Akses belum dibatasi.

Klik Periksa progres saya untuk memverifikasi tujuan.
Men-deploy aplikasi ke App Engine
Membatasi akses dengan IAP
-
Buka Navigation Menu > View all products > Security > Identity-Aware Proxy, klik tombol Enable API, lalu Go To Identity-Aware Proxy.
-
Untuk mengonfigurasi layar izin OAuth project, buka layar izin OAuth di Navigation menu (
) > APIs & Services > OAuth Consent Screen.
-
Di halaman "OAuth Overview", klik Get Started, lalu untuk App name, masukkan: IAP Example.
-
Berikan alamat email dukungan pengguna:
-
Untuk Audience Type, pilih Internal, lalu klik Next.
-
Di bagian Contact Information, masukkan alamat email yang sama seperti langkah 4, lalu klik Next.
-
Di bagian Finish, centang kotak Accept terms and conditions, lalu klik Create.
-
Kembali ke tab browser pertama dan jalankan perintah berikut di Cloud Shell:
export AUTH_DOMAIN=$(gcloud config get-value project).uc.r.appspot.com
Salin URL karena Anda akan menggunakan output perintah sebagai input untuk formulir di tab OAuth Consent.
- Untuk melihat nilai yang diisikan, jalankan:
echo $AUTH_DOMAIN
-
Di halaman OAuth Overview, klik Create Auth Client, lalu di bagian Application type, pilih Web Application.
-
Di bagian Authorized redirect URIs, klik + ADD URL, masukkan URL yang diterima di output perintah, lalu klik Create.
-
Di tab yang tersisa, buka Navigation Menu > View all products > Security > Identity-Aware Proxy.
Anda mungkin perlu memuat ulang halaman jika perlu.
- Klik tombol di kolom IAP pada baris App Engine app guna mengaktifkan IAP untuk aplikasi yang di-deploy di bagian sebelumnya.

-
Buka aplikasi dengan menekan tombol Ctrl/Command dan memilih URL aplikasi App Engine di konsol IAP.
-
Login dengan detail pengguna peserta yang tercantum di formulir login.

Anda akan melihat layar yang menginformasikan bahwa Anda tidak memiliki akses ke aplikasi.

Anda berhasil melindungi aplikasi dengan IAP, tetapi belum memberi tahu IAP tentang akun yang diberi akses.
Klik Periksa progres saya untuk memverifikasi tujuan.
Membatasi akses dengan IAP
Mengizinkan anggota mengakses aplikasi
-
Kembali ke halaman Identity-Aware Proxy di konsol dengan membuka Navigation Menu > View all products > Security > Identity-Aware Proxy.
-
Pilih kotak centang di samping App Engine app, lalu lihat sidebar di sebelah kanan halaman dan klik Add Principal.

-
Salin Username dari konsol lab di kiri atas lab dan masukkan ke kotak input New principals.
-
Tetapkan perannya ke Cloud IAP > IAP-secured Web App User.

- Klik Save setelah selesai. Pesan "Policy Updated" akan muncul di bagian bawah jendela.
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengizinkan anggota mengakses aplikasi
Memverifikasi pemulihan akses
- Kembali ke aplikasi App Engine dan muat ulang halaman. Anda sekarang akan melihat aplikasi web tersebut karena Anda login sebagai pengguna yang diberi otorisasi.
Namun, Anda mungkin masih melihat halaman "You don't have access" karena IAP mungkin tidak memeriksa ulang otorisasi Anda akibat cookie login yang sudah tersimpan.
Dalam hal ini, lakukan langkah-langkah berikut:
- Buka browser web dan kunjungi alamat halaman beranda dengan menambahkan
/_gcp_iap/clear_login_cookie ke bagian akhir URL, seperti berikut https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie.
Catatan: Gunakan URL dari aplikasi App Engine yang Anda deploy sebelumnya di lab. URL di atas hanyalah contoh.
Anda akan melihat layar "Login dengan Google" yang baru, yang menampilkan akun Anda.
Catatan: Jangan klik akun tersebut.
- Klik Use another account, lalu masukkan kembali kredensial Anda.
Melalui langkah-langkah ini, IAP akan memeriksa ulang akses, dan sekarang Anda akan melihat layar utama aplikasi.
Tugas 2. Mengakses informasi identitas pengguna
Setelah dilindungi dengan IAP, aplikasi dapat menggunakan informasi identitas yang disediakan IAP dalam header permintaan web yang dilaluinya. Pada langkah ini, aplikasi akan mendapatkan alamat email pengguna yang login dan ID pengguna unik persisten yang ditetapkan Google Identity Service untuk pengguna tersebut. Data tersebut akan ditampilkan kepada pengguna di halaman sambutan.
- Di Cloud Shell, masukkan perintah berikut:
cd ~/user-authentication-with-iap/2-HelloUser
- Di editor kode Cloud Shell, lihat file
app.yaml di folder 2-HelloUser, lalu perbarui versi runtime python:
runtime: python310
- Deploy ke App Engine menggunakan perintah berikut:
gcloud app deploy
Catatan: Jika Anda diminta menyetujui panggilan untuk men-deploy aplikasi, tekan Authorize.
-
Masukkan Y jika diminta melanjutkan.
-
Setelah deployment siap, masukkan perintah berikut:
gcloud app browse
Jika tab baru tidak terbuka di browser, salin link yang ditampilkan dan buka link tersebut di tab baru. Anda akan melihat halaman seperti berikut:

Catatan: Penggantian versi aplikasi mungkin perlu waktu beberapa menit. Muat ulang halaman jika perlu untuk melihat halaman seperti di atas.
Klik Periksa progres saya untuk memverifikasi tujuan.
Mengakses Informasi Identitas Pengguna
Memeriksa file aplikasi
Folder 2-HelloUser berisi kumpulan file yang sama seperti di folder 1-HelloWorld, tetapi dua file telah diubah, yaitu main.py dan templates/index.html. Program telah diubah untuk mengambil informasi pengguna yang disediakan IAP dalam header permintaan, dan sekarang, template menampilkan data tersebut.
- Jalankan
cat main.py untuk melihat konten file main.py.
Ada dua baris di main.py yang berfungsi memanggil data identitas yang disediakan IAP:
user_email = request.headers.get('X-Goog-Authenticated-User-Email')
user_id = request.headers.get('X-Goog-Authenticated-User-ID')
Header X-Goog-Authenticated-User- disediakan IAP. Nama-namanya tidak peka huruf besar/kecil, sehingga dapat dituliskan dalam huruf kecil atau huruf besar. Pernyataan render_template sekarang menyertakan nilai-nilai tersebut sehingga dapat ditampilkan:
page = render_template('index.html', email=user_email, id=user_id)
Template index.html dapat menampilkan nilai-nilai tersebut dengan menggunakan tanda kurung kurawal ganda pada namanya:
Hello, {{ email }}! Your persistent ID is {{ id }}.
Data yang disediakan berawalan accounts.google.com:, yang menunjukkan asal informasi. Aplikasi Anda dapat menghapus apa pun hingga dan termasuk tanda titik dua untuk mendapatkan nilai mentah jika diinginkan.
Selamat!
Anda telah mempelajari cara menggunakan Identity-Aware Proxy (IAP) untuk mengamankan aplikasi HTTP(s) yang di-deploy ke Google Cloud.
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual terakhir diperbarui: 12 November 2025
Lab terakhir diuji: 12 November 2025
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.