Contoh migrasi jaringan VPC ke perimeter terpisah

Contoh ini menunjukkan cara memigrasikan jaringan VPC dari project host yang ada, yang sudah berada dalam perimeter layanan, ke perimeter terpisah.

Dalam contoh ini, project host terdiri dari dua jaringan VPC. Dua project layanan menghosting resource Cloud Storage.

Diagram berikut menunjukkan konfigurasi perimeter project host sebelum migrasi:

Project host sebelum migrasi

Diagram arsitektur menampilkan komponen berikut:

  • Project host. Project host berisi dua jaringan VPC VPC1 dan VPC2.
  • Project layanan. Project layanan service-project-1 dan service-project-2 berisi bucket Cloud Storage dan dilindungi oleh perimeter layanan.
  • Keliling alas. Perimeter layanan perimeter-1 melindungi seluruh project host dan project layanan. VM VM1 dalam jaringan VPC VPC1 dan VM VM2 dalam jaringan VPC VPC2 dapat mengakses resource di service-project-1 dan service-project-2.

Diagram berikut menunjukkan konfigurasi perimeter project host setelah migrasi.

Project host setelah migrasi

Diagram arsitektur menampilkan komponen berikut:

  • Perimeter-1. Perimeter ini melindungi jaringan VPC VPC1 dan project layanan service-project-1. VM VM1 dapat mengakses bucket Cloud Storage di service-project-1, tetapi tidak dapat mengakses bucket Cloud Storage di service-project-2.
  • Perimeter-2. Perimeter ini melindungi jaringan VPC VPC2 dan project layanan service-project-2. VM VM2 dapat mengakses bucket Cloud Storage di service-project-2, tetapi tidak dapat mengakses bucket Cloud Storage di service-project-1.

Dalam contoh migrasi ini, perubahan konfigurasi dibuat dalam mode uji coba, lalu diverifikasi sebelum menerapkan konfigurasi uji coba. Proses ini memastikan bahwa jaringan dan resource VPC terlindungi 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 detail perimeter dan jaringan VPC.

Membuat daftar jaringan VPC dalam project host

Perintah berikut mencantumkan jaringan VPC dalam project network-host-:

    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 akan 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 mengupdate perimeter-1 perimeter guna menghapus network-host-project, service-project-2, dan menambahkan VPC1. Kemudian, jalankan perintah uji coba untuk membuat perimeter baru perimeter-2 dan menambahkan service-project-2 dan VPC2.

Memperbarui konfigurasi uji coba

Perintah berikut mengupdate perimeter perimeter-1 untuk menghapus network-host-project, service-project-2, dan 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 membuat perimeter perimeter-2 dan menambahkan service-project-2, serta VPC1:

    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 bahwa tidak ada error uji coba dari VPC1 ke service-project-1, dan dari VPC2 ke service-project-2:

Untuk menampilkan daftar bucket Cloud Storage di service-project-1, login ke VM1 yang ada di VPC1, lalu jalankan perintah berikut:

    gsutil ls -p service-project-1
  

Untuk menampilkan daftar bucket Cloud Storage di service-project-2, jalankan perintah berikut:

    gsutil ls -p 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 untuk 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 atom.

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 mendeskripsikan perimeter-1:

    gcloud access-context-manager perimeters describe perimeter-1 --policy=<access policy number>
  

Contoh ini menghasilkan output berikut tempat network-host-project dan service-project-2 dihapus, dan VPC1 ditambahkan 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 mendeskripsikan perimeter-2:

    gcloud access-context-manager perimeters describe perimeter-2 --policy=<access policy number>
  

Contoh ini menghasilkan output berikut tempat service-project-2 dan VPC2 ditambahkan 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