Contoh ini menunjukkan cara memigrasikan Jaringan VPC dari project host lama, yang sudah berada dalam perimeter layanan, ke perimeter terpisah.
Pada contoh ini, project host terdiri dari dua Jaringan VPC. Dua project layanan menghosting resource Cloud Storage-nya.
Diagram berikut menunjukkan konfigurasi perimeter contoh project host sebelum migrasi:

Diagram arsitektur tersebut menampilkan komponen berikut:
- Project post. Project host berisi dua Jaringan VPC, yaitu
VPC1danVPC2. - Project layanan. Project layanan
service-project-1danservice-project-2berisi bucket Cloud Storage dan dilindungi oleh perimeter layanan. - Perimeter. Perimeter layanan
perimeter-1melindungi seluruh project host dan project layanan. VMVM1di Jaringan VPCVPC1dan VMVM2di Jaringan VPCVPC2dapat mengakses resource diservice-project-1maupunservice-project-2.
Diagram berikut menunjukkan konfigurasi perimeter project host setelah migrasi.

Diagram arsitektur tersebut menampilkan komponen berikut:
- Perimeter-1. Perimeter ini melindungi Jaringan VPC
VPC1dan project layananservice-project-1. VMVM1dapat mengakses bucket Cloud Storage diservice-project-1, tetapi tidak dapat mengakses bucket Cloud Storage diservice-project-2. - Perimeter-2. Perimeter ini melindungi Jaringan VPC
VPC2dan project layananservice-project-2. VMVM2dapat mengakses bucket Cloud Storage diservice-project-2, tetapi tidak dapat mengakses bucket Cloud Storage diservice-project-1.
Dalam contoh migrasi ini, perubahan konfigurasi dilakukan dalam mode uji coba, lalu
diverifikasi sebelum menerapkan konfigurasi uji coba. Proses ini memastikan bahwa
resource dan Jaringan VPC dilindungi dan traffic produksi
dari VPC1 ke service-project-1 dan dari VPC2 ke service-project-2 tidak
terganggu selama migrasi.
Proses migrasi terdiri dari langkah-langkah berikut:
- Mendapatkan detail perimeter dan Jaringan VPC
- Menyiapkan konfigurasi perimeter uji coba
- Memverifikasi penyiapan uji coba
- Menerapkan konfigurasi uji coba
Mendapatkan detail perimeter dan Jaringan VPC
Dalam contoh ini, sebelum memulai migrasi, Anda harus mendapatkan daftar Jaringan VPC dan detail perimeter.
Mencantumkan Jaringan VPC di project host
Perintah berikut mencantumkan Jaringan VPC di network-host-project:
gcloud compute networks list --project=network-host-project
Contoh ini menghasilkan output berikut:
NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4
vpc1 AUTO REGIONAL
vpc2 AUTO REGIONAL
Mendapatkan detail perimeter
Perintah berikut mendapatkan detail perimeter:
gcloud access-context-manager perimeters describe perimeter-1
Contoh ini menghasilkan output berikut:
name: accessPolicies/<access policy number>/servicePerimeters/perimeter-1
status:
…
resources:
- projects/<network-host-project number>
- projects/<service-project-1 number>
- projects/<service-project-2 number>
<access policy number> digunakan dalam contoh perintah mode uji coba. Anda juga dapat menyiapkan kebijakan akses default dengan perintah berikut:
gcloud alpha config set access_context_manager/policy<access policy number>
Menyiapkan konfigurasi uji coba
Dalam contoh ini, Anda menggunakan perintah uji coba untuk memperbarui perimeter perimeter-1
guna menghapus network-host-project dan service-project-2, serta menambahkan VPC1. Kemudian, Anda
menjalankan perintah uji coba untuk membuat perimeter baru perimeter-2 serta menambahkan service-project-2
dan VPC2.
Jika Anda menambahkan project ke perimeter dalam kebijakan akses yang berbeda, Anda harus terlebih dahulu menghapus project tersebut dari perimeter dalam kebijakan akses yang ada. Untuk mengetahui informasi tentang cara menghapus project dari perimeter, lihat Memperbarui perimeter layanan.
Memperbarui konfigurasi uji coba
Perintah berikut memperbarui perimeter perimeter-1 untuk menghapus network-host-project dan service-project-2, serta menambahkan VPC1:
gcloud access-context-manager perimeters dry-run update perimeter-1
--remove-resources="projects/<network-host-project number>,projects/<service-project-2 number>"
--add-resources="//compute.googleapis.com/projects/network-host-project/global/networks/vpc1"
--policy=<access policy number>
Membuat perimeter baru dalam mode uji coba
Perintah berikut akan membuat perimeter perimeter-2, serta menambahkan service-project-2 dan VPC2:
gcloud access-context-manager perimeters dry-run create perimeter-2
--title=perimeter-2 --type="regular"
--resources="projects/<service-project-2 number>,//compute.googleapis.com/projects/network-host-project/global/networks/vpc2"
--restricted-services="storage.googleapis.com"
--policy=<access policy number>
Memverifikasi konfigurasi uji coba
Dalam contoh ini, jalankan perintah berikut untuk memastikan tidak ada error uji coba
dari VPC1 ke service-project-1, dan dari VPC2 ke service-project-2:
Untuk mencantumkan bucket Cloud Storage di service-project-1, login ke VM1 yang ada di VPC1, lalu jalankan perintah berikut:
gcloud storage ls --project=service-project-1
Untuk mencantumkan bucket Cloud Storage di service-project-2, jalankan perintah berikut:
gcloud storage ls --project=service-project-2
Perintah berhasil dijalankan karena konfigurasi uji coba tidak memengaruhi traffic
produksi. Namun, error uji coba berikut muncul di log audit untuk network-host-project
saat mengakses service-project-2 dari VM1:
egressViolations: [
0: {
servicePerimeter: "accessPolicies/<access policy number>/servicePerimeters/perimeter-1"
source: "//compute.googleapis.com/projects/network-host-project/global/networks/VPC1"
sourceType: "Network"
targetResource: "projects/<service-project-2 number>"
}
]
Demikian pula, permintaan Cloud Storage dari VM2 ke service-project-2 tidak memiliki error uji coba, dan permintaan dari VM2 ke service-project-1 memiliki error uji coba berikut dalam log audit untuk network-host-project:
egressViolations: [
0: {
servicePerimeter: "accessPolicies/<access policy number>/servicePerimeters/perimeter-2"
source: "//compute.googleapis.com/projects/network-host-project/global/networks/VPC2"
sourceType: "Network"
targetResource: "projects/<service-project-1 number>"
}
]
Menerapkan konfigurasi uji coba
Anda harus menerapkan semua konfigurasi uji coba sekaligus dalam satu transaksi atomik.
Untuk menerapkan konfigurasi uji coba, jalankan perintah berikut:
gcloud access-context-manager perimeters dry-run enforce-all --policy=<access policy number>
Setelah Anda menerapkan konfigurasi uji coba, jalankan perintah berikut untuk menjelaskan
perimeter-1:
gcloud access-context-manager perimeters describe perimeter-1 --policy=<access policy number>
Contoh ini menghasilkan output berikut yang menghapus network-host-project dan service-project-2,
serta menambahkan VPC1 ke perimeter-1.
name: accessPolicies/<access policy number>/servicePerimeters/perimeter-1
status:
…
resources:
- projects/<service-project-1 number>
- //compute.googleapis.com/projects/<network-host-project>/global/networks/VPC1
Jalankan perintah berikut untuk menjelaskan perimeter-2:
gcloud access-context-manager perimeters describe perimeter-2 --policy=<access policy number>
Contoh ini menghasilkan output berikut, yang menambahkan service-project-2 dan VPC2
ke perimeter-2.
name: accessPolicies/<access policy number>/servicePerimeters/perimeter-2
status:
…
resources:
- projects/<service-project-2 number>
- //compute.googleapis.com/projects/<network-host-project>/global/networks/VPC2
title: perimeter-2