Menggunakan Kontrol Layanan VPC (VPC SC) (original) (raw)
Kontrol Layanan VPC adalah Google Cloud fitur yang memungkinkan Anda menyiapkan perimeter yang aman untuk mencegah pemindahan data yang tidak sah. URL run.app
default dan domain kustom tunduk pada Kontrol Layanan VPC. Panduan ini menunjukkan cara menggunakan Kontrol Layanan VPC dengan Cloud Run untuk memberikan keamanan tambahan pada layanan Anda.
Batasan dan saran
- Untuk Artifact Registry atau Container Registry:
- Registry tempat Anda menyimpan container harus berada di perimeter layanan Kontrol Layanan VPC yang sama dengan project yang di-deploy.
- Kode yang dibuat harus berada dalam perimeter yang sama dengan registry tempat container dikirim.
- Fitur deployment berkelanjutantidak tersedia untuk project di dalam perimeter Kontrol Layanan VPC.
- Saat layanan Cloud Run dipanggil, penegakan kebijakan Kontrol Layanan VPC tidak menggunakan informasi autentikasi IAM klien. Permintaan tersebut memiliki batasan berikut:
- Aturan kebijakan ingress Kontrol Layanan VPC yang menggunakan akun utama IAM tidak didukung.
- Tingkat akses perimeter Kontrol Layanan VPC yang menggunakan akun utama IAM tidak didukung.
Menyiapkan organisasi Anda untuk mendukung Kontrol Layanan VPC
Untuk menggunakan Kontrol Layanan VPC dengan Cloud Run, Anda dapat mengonfigurasi perimeter layanan di tingkat organisasi. Dengan mengonfigurasi kebijakan organisasi yang sesuai, Anda dapat memastikan bahwa pemeriksaan Kontrol Layanan VPC diterapkan saat menggunakan Cloud Run dan bahwa developer hanya dapat men-deploy layanan yang mematuhi Kontrol Layanan VPC. Pelajaripewarisandan pelanggaranlebih lanjut saat menetapkan kebijakan organisasi.
Jika men-deploy fungsi Cloud Run dengan gcloud functions
, Anda atau administrator harus memberikan akses akun layanan Cloud Build di perimeter Kontrol Layanan VPC. Lihat Ringkasan proses builduntuk mengetahui informasi selengkapnya.
Menyiapkan perimeter Kontrol Layanan VPC
Langkah-langkah berikut menunjukkan caramenyiapkan perimeter Kontrol Layanan VPC.
- Pastikan Anda memilikiperan yang diperlukan untuk mengelola Kontrol Layanan VPC.
- Di konsol Google Cloud , buka halaman VPC Service Controls.
Buka halaman Kontrol Layanan VPC - Jika diminta, pilih Organisasi Anda.
- Klik Kelola Kebijakan Akses. Pilih kebijakan akses ataubuat kebijakan. Kebijakan akses harus menyertakan semua project yang ingin Anda tambahkan ke perimeter.
- Klik Perimeter Baru. Ketik nama untuk perimeter.
- Pilih project yang ingin Anda amankan di dalam perimeter.
- Klik Project.
- Di jendela Tambahkan Project, pilih project yang ingin ditambahkan.
Jika menggunakan VPC Bersama, pastikan untuk menambahkan project host dan project layanan. - Klik tombol Tambahkan Project.
- Pilih Cloud Run sebagai layanan yang ingin Anda amankan di dalam perimeter.
- Klik Layanan yang Dibatasi.
- Klik Tambahkan Layanan.
- Telusuri "Cloud Run". Kemudian pilihCloud Run Admin API. (Pilih Cloud Functions V2 API jika Anda menggunakan
gcloud functions
.) - Klik Tambahkan Cloud Run Admin API (atauCloud Functions V2 API jika Anda menggunakan
gcloud functions
).
- Aktifkan akses untuk developer.
Mengaktifkan Kontrol Layanan VPC untuk Cloud Run akan mencegah semua akses dari luar perimeter, termasuk melihat dan men-deploy layanan dari mesin yang tidak berada di dalam perimeter, seperti laptop perusahaan. Agar developer dan operator aplikasi dapat melihat dan men-deploy resource dalam perimeter, Anda harus mengonfigurasikebijakan ingress perimeter:- Klik Kebijakan Ingress.
- Tentukan Sumber, Identitas, Project, dan Layanan.
- Klik Add Rule.
Jika organisasi Anda menggunakan Access Context Manager, Anda juga dapat mengaktifkan akses untuk developer dengan menetapkan tingkat akses.
- Klik Buat Perimeter.
Setelah Anda menyelesaikan langkah-langkah ini, semua panggilan ke Cloud Run Admin API akan diperiksa untuk memastikan bahwa panggilan berasal dari dalam perimeter yang sama.
Menyiapkan kebijakan organisasi
Untuk mengelola kebijakan organisasi, Anda memerlukan peran Administrator Kebijakan Organisasi (roles/orgpolicy.policyAdmin
).
Untuk mematuhi Kontrol Layanan VPC dan melindungi dari pemindahan data yang tidak sah, siapkan kebijakan organisasi berikut yang mengontrol setelaningress dan egressyang diizinkan untuk Cloud Run di perimeter layanan.
Batasi setelan ingress yang diizinkan
Kebijakan organisasi run.allowedIngress
mengontrolsetelan ingressyang boleh digunakan developer untuk Cloud Run. Tetapkan kebijakan organisasi ini untuk mewajibkan developer menggunakan nilaiinternal jika Anda hanya ingin mengizinkan permintaan internal, atauinternal-and-cloud-load-balancing jika Anda ingin mengizinkan permintaan melalui Load Balancer Aplikasi eksternal, dengan kontrol akses yang dikelola oleh Cloud Load Balancing.
Untuk informasi lebih lanjut tentang setelan ini, lihat Membatasi ingress untuk Cloud Run
Konsol
- Buka halaman kebijakan Setelan ingress yang diizinkan (Cloud Run) di konsolGoogle Cloud :
Buka kebijakan organisasi - Klik Edit.
- Pada halaman Edit, pilih Sesuaikan.
- Di bagian Penegakan kebijakan, pilih Ganti.
- Di bagian Policy values, pilih Custom.
- Di bagian Policy values, pilih Allow.
- Di bagian Nilai kustom, masukkan
internal
. Jika Anda juga ingin mengizinkan traffic Cloud Load Balancing, klik Nilai kebijakan baru dan masukkaninternal-and-cloud-load-balancing
. - Klik Simpan.
gcloud
Gunakan perintah gcloud resource-manager org-policies allow.
gcloud resource-manager org-policies allow
run.allowedIngress internal
--organization ORGANIZATION_ID
dengan ORGANIZATION_ID
sebagai ID organisasi Anda. Jika Anda juga ingin mengizinkan traffic Cloud Load Balancing, gantirun.allowedIngress internal
dengan run.allowedIngress internal-and-cloud-load-balancing
.
Setelah kebijakan organisasi ini diterapkan, semua layanan harus menggunakan nilai yang diizinkan untuk setelan ingress mereka. Artinya, layanan Cloud Run hanya dapat menerima traffic yang berasal dari jaringan VPC dalam perimeter layanan. Percobaan untuk menetapkan ingress ke nilai yang berbeda akan diblokir oleh kebijakan organisasi.
Membatasi setelan traffic keluar VPC yang diizinkan
Kebijakan organisasi run.allowedVPCEgress
mengontrol setelan egressyang boleh digunakan developer untuk Cloud Run. Tetapkan kebijakan organisasi ini untuk hanya mengizinkan nilai all-traffic:
Konsol
- Buka halaman kebijakan Setelan egress VPC yang diizinkan (Cloud Run) di konsolGoogle Cloud :
Buka kebijakan organisasi - Klik Edit.
- Pada halaman Edit, pilih Sesuaikan.
- Di bagian Penegakan kebijakan, pilih Ganti.
- Di bagian Policy values, pilih Custom.
- Di bagian Policy values, pilih Allow.
- Di bagian Nilai kustom, masukkan
all-traffic
. - Klik Simpan.
gcloud
Gunakan perintah gcloud resource-manager org-policies allow.
gcloud resource-manager org-policies allow
run.allowedVPCEgress all-traffic
--organization ORGANIZATION_ID
dengan ORGANIZATION_ID
sebagai ID organisasi Anda.
Perilaku setelah kebijakan organisasi ditetapkan
Setelah kebijakan organisasi diterapkan, semua revisi baru harus menggunakan traffic keluar VPC Langsung atau konektor Akses VPC Serverless dan harus menggunakan nilai all-traffic
untuk setelan egress. Kombinasi ini merutekan semua traffic keluar dari revisi ini melalui jaringan VPC, sehingga traffic ini tunduk pada aturan firewall jaringan VPC dan setelan lainnya. Deployment revisi baru yang menentukan nilai yang berbeda diblokir oleh kebijakan organisasi.
Kebijakan organisasi dan migrasi traffic
Untuk layanan yang ada sebelum kebijakan organisasi ditetapkan, Anda dapat terus memigrasikan traffic ke revisi yang tidak mematuhi kebijakan hingga semua traffic yang menayangkan revisi telah mematuhi kebijakan.
Perilaku ini memungkinkan Anda menguji dan meluncurkan revisi baru secara bertahap yang mematuhi kebijakan. Setelah semua revisi yang menayangkan traffic mematuhi kebijakan, setiap upaya memindahkan traffic ke revisi yang tidak mematuhi kebijakan akan diblokir oleh kebijakan organisasi.
Menyiapkan project untuk mendukung Kontrol Layanan VPC
Untuk project individu dalam perimeter layanan, Anda harus melakukan konfigurasi tambahan agar dapat menggunakan Kontrol Layanan VPC.
Mengonfigurasi jaringan VPC
Bagian ini menunjukkan cara mengonfigurasi jaringan VPC Anda agar permintaan yang dikirim ke domain googleapis.com
reguler secara otomatis dirutekan ke rentang IP virtual (VIP) yang dibatasi terbatas,199.36.153.4/30
(restricted.googleapis.com
) tempat layanan Cloud Run Anda ditayangkan. Perubahan kode tidak diperlukan.
Untuk setiap jaringan VPC dalam sebuah project, ikuti langkah-langkah berikut untuk memblokir traffic keluar kecuali untuk traffic ke rentang VIP yang dibatasi:
- Aktifkan Akses Google Pribadidi subnet yang menghosting resource jaringan VPC Anda.
- Konfigurasi aturan firewallagar data tidak keluar dari jaringan VPC:
- Buat penolakan akan egress yang memblokir semua traffic keluar.
- Buat perizinan aturan egress yang mengizinkan traffic ke
199.36.153.4/30
di port TCP 443. Pastikan aturan tersebut memiliki prioritas sebelum penolakan aturan egress yang baru saja Anda buat—aturan ini hanya mengizinkan egress rentang VIP yang dibatasi.
- Buat kebijakan respons Cloud DNS.
gcloud dns response-policies create RESPONSE_POLICY \
--networks=NETWORK \
--description=DESCRIPTION
Ganti kode berikut:RESPONSE_POLICY
: nama untuk kebijakan respons Anda.NETWORK
: nama jaringan yang dikaitkan dengan kebijakan ini. Untuk menentukan beberapa jaringan, pisahkan nama tiap jaringan dengan koma, misalnya:network1,network2
.DESCRIPTION
: deskripsi kebijakan respons, sepertiCloud Run VPC Service Controls response policy
- Tambahkan aturan ke kebijakan respons untuk me-resolve
*.googleapis.com
kerestricted.googleapis.com
. Rentang alamat IP untukrestricted.googleapis.com
adalah199.36.153.4/30
.
gcloud dns response-policies rules create RESPONSE_POLICY_RULE \
--response-policy=RESPONSE_POLICY \
--dns-name="*.googleapis.com." \
--local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
Ganti kode berikut:RESPONSE_POLICY_RULE
: nama untuk aturan kebijakan respons Anda.RESPONSE_POLICY
: nama kebijakan respons yang Anda buat di langkah sebelumnya, dalam tanda kutip.
- Tambahkan aturan ke kebijakan respons untuk me-resolve
*.run.app
(atau*.cloudfunctions.net
jika Anda membuat fungsi menggunakangcloud functions deploy
) kerestricted.googleapis.com
. Rentang alamat IP untukrestricted.googleapis.com
adalah199.36.153.4/30
.
gcloud dns response-policies rules create RESPONSE_POLICY_RULE \
--response-policy=RESPONSE_POLICY \
--dns-name="*.run.app." \
--local-data=name="restricted.googleapis.com.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
Ganti kode berikut:RESPONSE_POLICY_RULE
: nama untuk aturan kebijakan respons Anda.RESPONSE_POLICY
: nama kebijakan respons yang Anda tentukan pada langkah sebelumnya, dalam tanda kutip.
Pada tahap ini, permintaan yang berasal dari dalam jaringan VPC:
- Tidak dapat keluar dari jaringan VPC, sehingga mencegah egress di luar perimeter layanan.
- Hanya dapat menjangkau Google API dan layanan yang memeriksa Kontrol Layanan VPC, sehingga mencegah pemindahan yang tidak sah melalui Google API.
Men-deploy layanan dan tugas Cloud Run yang mematuhi Kontrol Layanan VPC
Setelah Kontrol Layanan VPC dikonfigurasi untuk Cloud Run, pastikan semua layanan dan tugas Cloud Run yang di-deploy dalam perimeter layanan mengaktifkan Kontrol Layanan VPC. Hal ini memerlukan hal berikut:
- **Layanan dan tugas Cloud Run harus menggunakan traffic keluar VPC Langsung atau konektor Akses VPC Serverless.**Lihat Menghubungkan ke jaringan VPC untuk mengetahui informasi lebih lanjut.
- **Layanan dan tugas Cloud Run harus merutekan semua traffic keluar melalui jaringan VPC.**Lihat Setelan egressuntuk mengetahui informasi selengkapnya.
- Layanan Cloud Run hanya boleh mengizinkan traffic dari sumber internal. LihatSetelan ingressuntuk mengetahui informasi lebih lanjut. Menyetel ingress ke "all" akan menonaktifkan penegakan Kontrol Layanan VPC.
Mengaudit layanan yang ada untuk kepatuhan Kontrol Layanan VPC
Setelah menyiapkan Kontrol Layanan VPC, layanan baru yang dibuat di project dalam perimeter layanan akan otomatis diperiksa kepatuhannya. Namun, untuk menghindari gangguan workload yang ada, layanan yang ada akan terus berfungsi dan mungkin tidak mematuhi kebijakan organisasi.
Google merekomendasikan agar Anda mengaudit layanan secara berkala untuk memastikan setelan ingress dan egress Anda sesuai dengan persyaratan, serta mengupdate atau men-deploy ulang layanan jika diperlukan. Misalnya, Anda dapat membuat skrip yang menggunakan Cloud Run Admin API untuk mencantumkan dan menandai layanan Anda yang tidak menetapkan setelan jaringan yang tepat.