Halaman ini menjelaskan cara menggunakan setelan traffic masuk untuk membatasi akses jaringan ke layanan Cloud Run Anda.
Di tingkat jaringan, endpoint layanan Cloud Run dapat dijangkau dari jalur traffic 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 layanan. Jalur traffic masuk dan setelan traffic masuk default memungkinkan resource apa pun di internet menjangkau layanan Cloud Run Anda. Anda dapat menggunakan batasan kustom untuk membatasi setelan traffic masuk bagi organisasi Anda atau untuk sekumpulan project. Autentikasi IAM tetap berlaku untuk permintaan yang menjangkau endpoint layanan dari salah satu jalur traffic 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 URL. Permintaan
dari sumber lain, termasuk internet, tidak dapat menjangkau layanan Anda di
URL run.app atau domain kustom. |
| Cloud Load Balancing dan Internal | 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 Google Cloud konsol, pilih
Internal > Allow traffic from external Application Load Balancers.
|
| 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 tersebut seperti biasa menggunakan URL-nya, baik URL
run.appdefault maupun 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, baca bagian Menerima permintaan dari jaringan VPC.
Saat memanggil dari Cloud Run atau App Engine ke layanan Cloud Run yang disetel ke "Internal" atau "Internal and Cloud Load Balancing", 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 bersifat "internal" meskipun resource asalnya memiliki alamat IP eksternal.
Permintaan dari resource lokal yang terhubung ke jaringan VPC menggunakan Cloud VPN dan Cloud Interconnect bersifat "internal".
Menetapkan traffic masuk untuk layanan Cloud Run
Anda dapat menetapkan traffic masuk menggunakan Google Cloud konsol, Google Cloud CLI, YAML, atau Terraform.
Konsol
Di Google Cloud konsol, buka halaman Services Cloud Run:
Jika Anda mengonfigurasi layanan baru, klik Deploy container untuk menampilkan formulir Create service. Isi halaman setelan layanan awal.
Jika Anda mengonfigurasi layanan yang ada, klik layanan, lalu klik tab Networking.
Pilih traffic masuk yang ingin Anda izinkan:
Klik Create atau Save.
gcloud
Jika Anda men-deploy layanan baru, deploy layanan dengan flag
--ingress:gcloud run deploy SERVICE --image IMAGE_URL --ingress INGRESS
Ganti kode berikut:
INGRESS: salah satu setelan traffic masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
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.
Jika Anda mengubah traffic masuk layanan yang ada:
gcloud run services update SERVICE --ingress INGRESS
Ganti kode berikut:
INGRESS: salah satu setelan traffic masuk yang tersedia:allinternalinternal-and-cloud-load-balancing
SERVICE: nama layanan Anda
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui anotasi
run.googleapis.com/ingress::apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/ingress: INGRESS name: SERVICE spec: template: metadata: name: REVISION
Ganti kode berikut:
- SERVICE: nama Cloud Run Anda
- INGRESS: salah satu
setelan traffic masuk yang tersedia:
allinternalinternal-and-cloud-load-balancing
- REVISION dengan 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:Menonaktifkan URL default
Nonaktifkan URL run.app default layanan Cloud Run
untuk hanya mengizinkan traffic dari jalur traffic masuk layanan lainnya:
Cloud Load Balancing dan pemetaan domain yang dikonfigurasi.
Untuk menonaktifkan URL default, lakukan langkah-langkah berikut menggunakan Google Cloud konsol, Google Cloud CLI, YAML, atau Terraform.
Konsol
Di Google Cloud konsol, buka halaman Services Cloud Run:
Klik layanan yang ada.
Pilih tab Networking.
Di kartu Endpoints, hapus centang Enable di bagian Default HTTPS endpoint URL.
Klik Save.
Untuk memulihkan URL default, pilih Enable dan klik Save.
gcloud
Untuk layanan yang 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
dengan SERVICE_NAME adalah nama layanan Cloud Run Anda.
Dalam output, URL akan ditampilkan sebagai
None.
Untuk memulihkan URL default, gunakan flag --default-url.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Untuk menonaktifkan URL
run.app, gunakanrun.googleapis.com/default-url-disabledanotasi: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 dengan nama layanan Cloud Run Anda.
- REVISION dengan 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 perbarui layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
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"
}
}
}
Pastikan 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 dalam Pratinjau.
Untuk memulihkan URL default, hapus argumen default_uri_disabled dan launch_stage.
Layanan berikut Google Cloud menggunakan URL run.app default
untuk memanggil Cloud Run. Menonaktifkan URL run.app default akan mencegah
layanan ini berfungsi seperti yang diharapkan:
- URL
cloudfunctions.netCloud 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 pemeriksaan uptime
- Workflows
Langkah berikutnya
- Pelajari setelan traffic keluar.
- Siapkan Load Balancer Aplikasi Internal untuk Cloud Run.
- Siapkan Load Balancer Aplikasi Eksternal dengan Cloud Run.
- Konfigurasikan metode autentikasi IAM untuk mengakses layanan.