1. Pengantar
Ringkasan
Codelab ini memandu Anda cara mengaktifkan Identity-Aware Proxy dari Cloud Run dan mengamankan traffic yang ditujukan untuk layanan Cloud Run dengan merutekan ke IAP untuk autentikasi. Dengan mengaktifkan IAP dari Cloud Run, Anda dapat merutekan traffic dengan sekali klik dari semua jalur traffic masuk, termasuk URL run.app default dan load balancer.
Dalam codelab ini, Anda akan men-deploy layanan hello container. Hanya pengguna yang telah dimasukkan dalam daftar yang diizinkan menggunakan IAP yang memiliki akses ke layanan.
Untuk batasan umum lainnya, lihat dokumentasi IAP di Cloud Run.
Yang akan Anda pelajari
- Cara mengaktifkan IAP sekali klik untuk Cloud Run
- Cara memberikan akses identitas pengguna ke layanan Cloud Run melalui IAP
2. Sebelum memulai
Mengaktifkan API
Sebelum Anda dapat mulai menggunakan codelab ini, aktifkan API berikut dengan menjalankan:
gcloud services enable \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
iap.googleapis.com \
run.googleapis.com \
cloudresourcemanager.googleapis.com
3. Buat variabel lingkungan
Tetapkan variabel lingkungan yang akan digunakan di seluruh codelab ini
export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>
export SERVICE_NAME=iap-example
export SERVICE_ACCOUNT_NAME=iap-example-sa
export PROJECT_NUMBER=$(gcloud projects describe "${PROJECT_ID}" --format="value(projectNumber)")
4. Men-deploy layanan dengan IAP diaktifkan
Buat akun layanan (digunakan sebagai identitas layanan Cloud Run) dengan menjalankan perintah ini:
gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME \
--display-name="IAP codelab CR identity"
Deploy image container hello dengan IAP diaktifkan.
gcloud beta run deploy ${SERVICE_NAME} \
--image=us-docker.pkg.dev/cloudrun/container/hello \
--region=${REGION} \
--service-account $SERVICE_ACCOUNT_NAME@${PROJECT_ID}.iam.gserviceaccount.com \
--no-allow-unauthenticated \
--iap
Catatan: Jika Anda mencoba mengakses aplikasi sekarang, Anda akan melihat halaman error You don't have access. Pada langkah berikutnya, Anda akan memberikan akses pengguna melalui IAP.
5. Mengonfigurasi Kontrol Akses IAP
Buat agen layanan IAP.
gcloud beta services identity create --service=iap.googleapis.com --project=${PROJECT_ID}
Tetapkan peran Cloud Run Invoker ke akun layanan IAP
gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member="serviceAccount:service-${PROJECT_NUMBER}@gcp-sa-iap.iam.gserviceaccount.com" \
--role="roles/run.invoker"
Memberikan akses pengguna dengan mengizinkan pengguna atau grup tertentu melalui IAP
EMAIL_ADDRESS=<YOUR_EMAIL>
gcloud beta iap web add-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor \
--condition=None
Catatan: Anda juga dapat menggunakan group:grup-anda@example.com di parameter anggota jika mau.
6. Menguji aplikasi
Memverifikasi akses ke aplikasi
Dapatkan URL untuk contoh layanan Cloud Run.
gcloud run services describe ${SERVICE_NAME} --region ${REGION} --format 'value(status.url)'
Buka URL di browser Anda dan Anda akan melihat "It's Running! Selamat, Anda berhasil men-deploy image container ke Cloud Run"
Memverifikasi penghapusan akses ke aplikasi
Anda dapat menghapus akses Anda ke aplikasi dengan menjalankan perintah berikut.
gcloud beta iap web remove-iam-policy-binding \
--resource-type=cloud-run \
--service=${SERVICE_NAME} \
--region=${REGION} \
--member=user:${EMAIL_ADDRESS} \
--role=roles/iap.httpsResourceAccessor
Tunggu beberapa menit hingga kebijakan IAM diterapkan. Sekarang coba buka URL di browser Anda dan Anda akan melihat halaman error You don't have access.
7. Selamat!
Selamat, Anda telah menyelesaikan codelab.
Sebaiknya tinjau dokumentasi Cloud Run IAP.
Yang telah kita bahas
- Cara mengaktifkan IAP sekali klik untuk Cloud Run
- Cara memberikan akses identitas pengguna ke layanan Cloud Run melalui IAP
8. Pembersihan
Untuk menghindari tagihan yang tidak disengaja, misalnya, jika layanan Cloud Run dipanggil secara tidak sengaja lebih banyak daripada alokasi pemanggilan Cloud Run bulanan Anda di tingkat gratis, Anda dapat menghapus layanan Cloud Run iap-example yang Anda buat di Langkah 6.
Untuk menghapus layanan Cloud Run, buka Konsol Cloud Run di https://console.cloud.google.com/run, lalu hapus layanan iap-example.
Untuk menghapus seluruh project, buka Kelola Resource, pilih project Anda, lalu pilih Hapus. Jika menghapus project, Anda harus mengubah project di Cloud SDK. Anda dapat melihat daftar semua project yang tersedia dengan menjalankan gcloud projects list.