Mengamankan cron job dengan Kontrol Layanan VPC

Kontrol Layanan VPC adalah Google Cloud fitur yang memungkinkan Anda menyiapkan perimeter yang aman untuk mencegah pemindahan data yang tidak sah. Panduan ini menunjukkan cara menyertakan tugas Cloud Scheduler dalam perimeter Kontrol Layanan VPC.

Batasan

Batasan berikut berlaku untuk dukungan Kontrol Layanan VPC untuk Cloud Scheduler.

Tindakan yang diterapkan

Kontrol Layanan VPC hanya diterapkan pada tindakan berikut:

  • Pembuatan tugas Cloud Scheduler
  • Pembaruan tugas Cloud Scheduler

Mengapa hal ini penting?

Karena Kontrol Layanan VPC hanya diterapkan pada pembuatan tugas dan pembaruan tugas, Kontrol Layanan VPC tidak diterapkan secara otomatis untuk tugas yang dibuat sebelum Anda menambahkan Cloud Scheduler ke perimeter Kontrol Layanan VPC. Tugas akan terus dijalankan meskipun target tugas bukan bagian dari perimeter Kontrol Layanan VPC atau bukan target yang didukung. Untuk menerapkan Kontrol Layanan VPC untuk semua tugas Cloud Scheduler:

Target yang didukung

Integrasi Cloud Scheduler dengan Kontrol Layanan VPC mendukung target berikut. Endpoint HTTP didukung jika tercantum; namun, endpoint HTTP arbitrer tidak didukung.

  • Layanan Cloud Run—di URL run.app.
  • Cloud Run Functions—di URL functions.net.
  • Google Cloud API yang mematuhi Kontrol Layanan VPC (baik yang berstatus Pratinjau maupun GA)—dapat berada di Google Cloud project yang berbeda dengan tugas Cloud Scheduler Anda.

    • Untuk tugas Cloud Run, format URI yang didukung adalah sebagai berikut: https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

      Untuk mempelajari perbedaan antara resource layanan dan tugas Cloud Run, lihat Layanan dan tugas: dua cara untuk menjalankan kode Anda.

  • Pub/Sub

Target yang tidak didukung

Jika Cloud Scheduler adalah layanan yang dibatasi di perimeter Kontrol Layanan VPC, setiap upaya untuk membuat atau memperbarui tugas dengan target yang tidak didukung akan gagal dengan kode error TARGET_TYPE_NOT_PERMITTED_FOR_VPC. Tindakan ini tidak menghasilkan log pelanggaran saat menggunakan mode uji coba.

Untuk menghindari pemblokiran workload secara tidak terduga, hapus tugas apa pun dengan target yang tidak didukung atau dengan target di luar perimeter Kontrol Layanan VPC yang ingin Anda gunakan, sebelum memindahkan perimeter ke mode yang diterapkan.

Menghapus tugas yang tidak sesuai

Direkomendasikan. Hapus tugas Cloud Scheduler dengan target yang:

  • Tidak didukung (lihat Target yang didukung)
  • Berada di luar perimeter Kontrol Layanan VPC yang ingin Anda gunakan

Untuk mengetahui petunjuk cara menghapus tugas, lihat Menghapus tugas.

Jika Anda tidak menghapus tugas ini sebelum menambahkan Cloud Scheduler ke perimeter Kontrol Layanan VPC, tugas akan terus berjalan, tetapi Kontrol Layanan VPC tidak diterapkan pada tugas tersebut. Dalam dokumen ini, lihat Tindakan yang diterapkan.

Misalnya, jika Anda memiliki tugas Cloud Scheduler yang menargetkan target yang tidak didukung (seperti domain kustom Cloud Run), tugas akan terus berjalan setelah Anda menambahkan Cloud Scheduler ke perimeter Kontrol Layanan VPC, tetapi tidak dilindungi oleh Kontrol Layanan VPC. Hal yang sama berlaku untuk tugas yang sudah ada dengan target di luar perimeter Kontrol Layanan VPC.

Menambahkan peran IAM yang diperlukan

Wajib diisi. Untuk menggunakan Kontrol Layanan VPC, akun layanan Cloud Scheduler harus memiliki peran IAM Agen Layanan Cloud Scheduler. Akun layanan Cloud Scheduler dibuat untuk project Anda secara otomatis. Untuk memverifikasi bahwa akun layanan memiliki peran IAM Agen Layanan Cloud Scheduler, atau untuk memberikan peran ini, lakukan langkah-langkah berikut:

  1. Di Google Cloud konsol, buka IAM.

    Buka IAM

  2. Centang kotak Include Google-provided role grants.

  3. Di filter, ketik Cloud Scheduler Service Account, lalu pilih principal ini.

  4. Lihat kolom Role untuk principal Cloud Scheduler Service Account. Anda dapat melanjutkan jika peran berikut tercantum:

    • Cloud Scheduler Service Agent

    Jika peran Akun Layanan Cloud Scheduler tidak tercantum, klik ikon Edit dan berikan peran Agen Layanan Cloud Scheduler ke principal Akun Layanan Cloud Scheduler.

Menentukan perimeter Kontrol Layanan VPC

Wajib diisi. Anda dapat menggunakan perimeter yang ada atau membuat perimeter baru untuk melindungi tugas Cloud Scheduler yang memiliki target yang didukung. Kedua pendekatan ini memberi Anda kesempatan untuk menentukan layanan yang akan dibatasi. Tentukan Cloud Scheduler API.

  • Perimeter yang ada: Untuk memperbarui perimeter Kontrol Layanan VPC yang ada agar menyertakan Cloud Scheduler, ikuti langkah-langkah untuk memperbarui perimeter layanan.

  • Perimeter baru: Untuk membuat perimeter baru untuk Cloud Scheduler, ikuti langkah-langkah untuk membuat perimeter layanan.

Menerapkan Kontrol Layanan VPC pada tugas yang sudah ada

Direkomendasikan. Untuk menerapkan Kontrol Layanan VPC pada tugas Cloud Scheduler yang Anda buat sebelum menambahkan Cloud Scheduler ke perimeter Kontrol Layanan VPC, jalankan update pada tugas tersebut. Anda tidak perlu mengubah tugas, tetapi harus menjalankan pembaruan agar Kontrol Layanan VPC dapat diterapkan ke tugas dan eksekusi mendatang.

Anda dapat menjalankan pembaruan untuk tugas dari konsol (pilih tugas dan gunakan tombol Edit), menggunakan API, atau dengan gcloud CLI. Google Cloud

Untuk menerapkan Kontrol Layanan VPC pada tugas yang sudah ada menggunakan gcloud CLI, jalankan perintah berikut:

Target HTTP

gcloud scheduler jobs update http JOB_ID

Ganti JOB_ID dengan ID tugas Anda.

Target Pub/Sub

gcloud scheduler jobs update pubsub JOB_ID

Ganti JOB_ID dengan ID tugas Anda.