Halaman ini menjelaskan cara menggunakan setelan traffic masuk untuk membatasi akses jaringan ke layanan dan instanceCloud Run Anda.
Di tingkat jaringan, endpointatau instance layanan Cloud Run dapat dijangkau dari jalur masuk jaringan berikut:
- URL
run.appdefault, yang dapat Anda nonaktifkan - Pemetaan domain yang dikonfigurasi
- Load Balancer Aplikasi Eksternal atau Load Balancer Aplikasi Internal yang dikonfigurasi
Semua jalur traffic masuk jaringan tunduk pada setelan traffic masuk resource. Jalur traffic masuk default dan setelan traffic masuk memungkinkan resource apa pun di internet menjangkau resource Cloud Run Anda. Anda dapat menggunakan batasan kustom untuk membatasi setelan ingress bagi organisasi Anda atau untuk sekumpulan project. Autentikasi IAM masih berlaku untuk permintaan yang mencapai endpoint layanan atau instance dari jalur masuk jaringan sebelumnya. Untuk pendekatan berlapis guna mengelola akses, gunakan setelan traffic masuk jaringan dan autentikasi IAM.
Gunakan tag jaringan untuk membatasi akses VM konektor ke resource VPC.
Setelan traffic masuk jaringan yang tersedia
Berikut adalah setelan yang tersedia:
| Setelan | Deskripsi |
|---|---|
| Internal |
Batasan maksimum. Mengizinkan permintaan dari sumber berikut:
run.app.
Permintaan dari sumber lain, termasuk internet, tidak dapat menjangkau
layanan atau instance Anda di
URL run.app,
URL kustom, atau domain kustom. |
| Load Balancer Internal dan Cloud | Setelan ini mengizinkan permintaan dari resource berikut:
Catatan: Untuk mengaktifkan setelan ini di gcloud CLI, gunakan internal-and-cloud-load-balancing.
Untuk mengaktifkan setelan ini di konsol Google Cloud , pilih
Internal > Izinkan traffic dari Load Balancer Aplikasi eksternal.
|
| Semua |
Batasan minimum. Mengizinkan semua permintaan, termasuk permintaan langsung dari
internet ke URL run.app.
|
Mengakses layanan internal
Pertimbangan tambahan berikut berlaku:
Saat mengakses layanan internal, panggil layanan seperti yang biasa Anda lakukan menggunakan URL-nya, baik URL
run.appdefault, URL kustom, atau domain kustom yang disiapkan di Cloud Run.Untuk permintaan dari instance VM Compute Engine, tidak diperlukan penyiapan lebih lanjut untuk mesin yang memiliki alamat IP eksternal atau yang menggunakan Cloud NAT. Jika tidak, lihat bagian Menerima permintaan dari jaringan VPC.
Saat memanggil dari Cloud Run atau App Engine ke layanan Cloud Run yang disetel ke "Internal" atau "Internal dan Cloud Load Balancer", traffic harus dirutekan melalui jaringan VPC yang dianggap internal. Lihat Menerima permintaan dari layanan Cloud Run atau App Engine lainnya.
Permintaan dari resource dalam jaringan VPC pada project yang sama adalah "internal" meskipun resource asalnya memiliki alamat IP eksternal.
Permintaan dari resource lokal yang terhubung ke jaringan VPC menggunakan Cloud VPN dan Cloud Interconnect adalah "internal".
Menetapkan ingress
Bagian berikut menunjukkan cara menetapkan ingress untuk layanan Cloud Run dan instance.
Menetapkan traffic masuk untuk layanan Cloud Run
Anda dapat menetapkan traffic masuk untuk layanan Cloud Run menggunakan Google Cloud konsol, Google Cloud CLI, YAML, atau Terraform.
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container untuk menampilkan formulir Buat layanan. Isi halaman setelan layanan awal.
Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik tab Networking.
Pilih traffic masuk yang ingin Anda izinkan.
Klik Buat untuk layanan baru. Klik View diff & redeploy, lalu Deploy changes untuk layanan yang ada.
gcloud
Jika Anda men-deploy layanan baru, deploy layanan dengan flag
--ingress:gcloud run deploy SERVICE \ --image IMAGE_URL \ --ingress INGRESS
Ganti kode berikut:
SERVICE: nama layanan Anda.IMAGE_URL: referensi ke image container, misalnya,us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.INGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
Jika Anda mengubah layanan masuk yang sudah ada:
gcloud run services update SERVICE \ --ingress INGRESS
Ganti kode berikut:
SERVICE: nama layanan AndaINGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Update anotasi
run.googleapis.com/ingress::apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/ingress: INGRESS spec: template: metadata: name: REVISION
Ganti kode berikut:
SERVICE: nama layanan Cloud Run Anda.INGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
REVISION: nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:- Dimulai dengan
SERVICE- - Hanya berisi huruf kecil, angka, dan
- - Tidak diakhiri dengan
- - Tidak melebihi 63 karakter
- Dimulai dengan
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda:Menetapkan traffic masuk untuk instance Cloud Run
Anda dapat menetapkan ingress untuk instance Cloud Run menggunakan Google Cloud CLI atau YAML:
gcloud
Jika Anda membuat instance baru, deploy instance dengan flag
--ingress:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --ingress INGRESS
Ganti kode berikut:
INSTANCE: nama instance Anda.IMAGE_URL: referensi ke image container, sepertius-docker.pkg.dev/cloudrun/container/hello:latest.INGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
Jika Anda mengubah ingress instance yang ada:
gcloud beta run instances update INSTANCE \ --ingress INGRESS
Ganti kode berikut:
INSTANCE: nama instance Anda.INGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
YAML
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Update anotasi
run.googleapis.com/ingress::apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/ingress: INGRESS run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Ganti kode berikut:
INSTANCE: nama instance Cloud Run Anda.INGRESS: salah satu setelan masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
CONTAINER_NAME: nama container.IMAGE_URL: referensi ke image container, sepertius-docker.pkg.dev/cloudrun/container/hello:latest.
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Menonaktifkan URL default
Sebelum Anda menonaktifkan URL default, perhatikan bahwaGoogle Cloud layanan atau
instance berikut menggunakan URL
run.app default untuk memanggil
Cloud Run. Menonaktifkan URL
run.app default akan mencegah
layanan atau instance berfungsi seperti yang diharapkan:
- URL
cloudfunctions.netdari Cloud Functions v2 API berdasarkan layanan Cloud Run. - Cloud Scheduler
- Cloud Service Mesh
- Cloud Tasks
- Dialogflow CX
- Eventarc
- Firebase App Hosting
- Firebase Hosting
- Pub/Sub
- Monitor sintetis dan cek uptime
- Workflows
Untuk menggunakan pemetaan domain kustom,
petakan domain kustom sebelum Anda menonaktifkan URL run.app.
Lihat bagian berikut untuk mempelajari cara menonaktifkan URL default untuk layanan dan instanceCloud Run.
Menonaktifkan URL default untuk layanan Cloud Run
Nonaktifkan URL run.app
default layanan Cloud Run atau
instance agar hanya mengizinkan traffic dari jalur ingress
lain layanan: Cloud Load Balancing dan pemetaan domain yang dikonfigurasi.
Untuk menonaktifkan URL default, lakukan langkah-langkah berikut menggunakan konsol Google Cloud , Google Cloud CLI, YAML, atau Terraform.
Konsol
Di konsol Google Cloud , buka halaman Services Cloud Run:
Klik layanan yang ada.
Pilih tab Networking.
Di kartu Endpoints, hapus Enable di bagian Default HTTPS endpoint URL.
Klik View diff & redeploy, lalu Deploy changes.
Untuk memulihkan URL default, pilih Aktifkan.
gcloud
Untuk layanan yang sudah ada, jalankan perintah
gcloud run services updatedengan flag--no-default-url, misalnya:gcloud run services update SERVICE_NAME --no-default-url
Untuk layanan baru, jalankan perintah
gcloud run deploydengan flag--no-default-url, misalnya:gcloud run deploy SERVICE_NAME --no-default-url
Ganti
SERVICE_NAMEdengan nama layanan Cloud Run AndaDalam output, URL ditampilkan sebagai
None.
Untuk memulihkan URL default, gunakan flag --default-url.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Untuk menonaktifkan URL
run.app, gunakan anotasirun.googleapis.com/default-url-disabled:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/default-url-disabled: true name: SERVICE spec: template: metadata: name: REVISION
Ganti kode berikut:
SERVICE: nama layanan Cloud Run Anda.REVISION: nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:- Dimulai dengan
SERVICE- - Hanya berisi huruf kecil, angka, dan
- - Tidak diakhiri dengan
- - Tidak melebihi 63 karakter
- Dimulai dengan
Buat atau update layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Perintah
gcloud run services replacesecara default menggunakan fileservice.yamljika ada.
Untuk memulihkan URL default, hapus anotasi
run.googleapis.com/default-url-disabled.
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan kode berikut ke resourcegoogle_cloud_run_v2_service
di konfigurasi Terraform Anda: resource "google_cloud_run_v2_service" "disable_default_url_service" {
name = "cloudrun-service"
location = "europe-west1"
default_uri_disabled = true
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/hello"
}
annotations = {
"run.googleapis.com/ingress" = "all" # "all" or "internal-only"
}
}
}
Verifikasi bahwa baris launch_stage dan default_uri_disabled ada di file main.tf Anda. Resource google_cloud_run_v2_service sebelumnya
menentukan layanan Cloud Run dengan URL default yang dinonaktifkan di
Pratinjau.
Untuk memulihkan URL default, hapus argumen default_uri_disabled dan
launch_stage.
Menonaktifkan URL default untuk instance Cloud Run
Nonaktifkan URL run.app
default instance Cloud Run agar hanya mengizinkan traffic
dari jalur ingress instance lainnya: Cloud Load Balancing dan pemetaan domain yang dikonfigurasi.
gcloud
Untuk instance yang sudah ada, jalankan perintah
gcloud beta run instances updatedengan flag--no-default-url, misalnya:gcloud beta run instances update INSTANCE --no-default-url
Untuk instance baru, jalankan perintah
gcloud beta run instances deploydengan flag--no-default-url, misalnya:gcloud beta run instances deploy INSTANCE \ --image IMAGE_URL \ --no-default-url
Ganti
INSTANCEdengan nama instance Cloud Run Anda.Dalam output, URL ditampilkan sebagai
None.
Untuk memulihkan URL default, gunakan flag --default-url.
YAML
Jika Anda membuat instance baru, lewati langkah ini. Jika Anda mengupdate instance yang ada, download konfigurasi YAML-nya:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
Untuk menonaktifkan URL default, tetapkan anotasi
run.googleapis.com/default-url-disabledke'true':apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/default-url-disabled: 'true' run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL
Ganti kode berikut:
INSTANCE: nama instance Cloud Run Anda.CONTAINER_NAME: nama container.IMAGE_URL: referensi ke image container, sepertius-docker.pkg.dev/cloudrun/container/hello:latest.
Buat atau perbarui instance menggunakan perintah berikut:
gcloud beta run instances replace instance.yaml
Untuk memulihkan URL default, tetapkan anotasi run.googleapis.com/default-url-disabled
ke false atau hapus.
Langkah berikutnya
- Pelajari setelan keluar.
- Siapkan Load Balancer Aplikasi internal untuk Cloud Run.
- Siapkan Load Balancer Aplikasi eksternal dengan Cloud Run.
- Mengonfigurasi metode autentikasi IAM untuk mengakses layanan atau instance.