Melakukan migrasi

Halaman ini memberikan langkah-langkah untuk memigrasikan Google Cloud project dari satu resource organisasi ke resource organisasi lain, atau dari tanpa resource organisasi ke resource organisasi.

Untuk memigrasikan project, Anda harus memastikan bahwa Anda memiliki izin (Identity and Access Management (IAM)) yang benar dan kebijakan organisasi tertentu dikonfigurasi di resource sumber dan tujuan.

Sebelum memulai

Migrasi project adalah operasi lintas organisasi. Untuk mencegah pergerakan resource yang tidak sah, Anda harus memenuhi persyaratan berikut.

Peran yang diperlukan

Guna mendapatkan izin yang diperlukan untuk memigrasikan project antar-resource organisasi, minta administrator Anda untuk memberi Anda peran IAM berikut:

  • Admin IAM Project (roles/resourcemanager.projectIamAdmin) di project yang ingin Anda migrasikan antar-resource organisasi
  • Pemindah Project (roles/resourcemanager.projectMover) di resource induk project (folder atau resource organisasi)
  • Jika resource tujuan adalah folder: Pemindah Project (roles/resourcemanager.projectMover) di resource tujuan
  • Jika resource tujuan adalah organisasi: Pembuat Project (roles/resourcemanager.projectCreator) di resource tujuan

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Peran ini harus diberikan ke akun pengguna yang sama di organisasi sumber dan tujuan. Peran bawaan ini berisi izin yang diperlukan untuk memigrasikan project. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan.

Izin yang diperlukan

Izin berikut diperlukan untuk memigrasikan project:

  • resourcemanager.projects.getIamPolicy di project yang ingin Anda migrasikan antar-resource organisasi
  • resourcemanager.projects.update di project yang ingin Anda migrasikan antar-resource organisasi
  • resourcemanager.projects.move di resource induk project (folder atau resource organisasi)
  • Jika resource tujuan adalah folder: resourcemanager.projects.move di resource tujuan
  • Jika resource tujuan adalah resource organisasi: resourcemanager.projects.create di resource tujuan
  • Jika Anda ingin memigrasikan project yang tidak terkait dengan organisasi: resourcemanager.projects.setIamPolicy di project yang ingin Anda migrasikan

Anda juga dapat memperoleh izin ini dengan peran khusus, atau peran bawaan lainnya.

Kebijakan organisasi yang diperlukan

Secara default, migrasi project dibatasi. Anda harus secara eksplisit mengizinkan ekspor dan impor dengan menetapkan kebijakan organisasi di root kedua organisasi. Untuk mengonfigurasi kebijakan organisasi yang diperlukan untuk migrasi, Anda harus memiliki peran roles/orgPolicy.policyAdmin di organisasi induk dan tujuan.

  • Di resource organisasi sumber: Tetapkan kebijakan constraints/resourcemanager.allowedExportDestinations. Tambahkan ID organisasi tujuan sebagai nilai yang diizinkan.

  • Di resource organisasi tujuan: Tetapkan kebijakan constraints/resourcemanager.allowedImportSources. Tambahkan ID organisasi sumber sebagai nilai yang diizinkan.

Melakukan migrasi

Setelah izin diberikan dan kebijakan diterapkan, Anda dapat memigrasikan project menggunakan Google Cloud CLI atau Resource Manager API.

gcloud

Untuk memigrasikan project ke resource organisasi lain, jalankan perintah berikut:

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

Anda juga dapat menentukan folder sebagai resource target, dengan perintah berikut:

gcloud beta projects move PROJECT_ID \
    --folder FOLDER_ID

Ganti kolom berikut:

  • PROJECT_ID: ID atau nomor project yang ingin Anda migrasikan.
  • ORGANIZATION_ID: ID resource organisasi yang menjadi tujuan pemindahan project.
  • FOLDER_ID: ID folder yang menjadi tujuan pemindahan project.

Anda hanya dapat menentukan satu target, baik folder maupun resource organisasi.

API

Dengan menggunakan Resource Manager API v1, Anda dapat memigrasikan project antar-resource organisasi dengan menetapkan kolom parent ke ID resource tujuan.

Untuk memigrasikan project, lakukan langkah-langkah berikut:

  • Dapatkan objek project menggunakan metode projects.get().
  • Perbarui kolom parent ke ID resource tujuan.
  • Jalankan metode projects.update().

Cuplikan kode berikut menunjukkan langkah-langkah tersebut:

    project = crm.projects().get(projectId=flags.projectId).execute()
    project['parent'] = {
        'type': 'organization',
        'id': flags.organizationId
    }

    project = crm.projects().update(
    projectId=flags.projectId, body=project).execute()

Tugas pascamigrasi

Setelah berhasil memigrasikan project, Anda harus melakukan beberapa tugas pascamigrasi untuk memastikan kelangsungan operasi, kepatuhan keamanan, dan penagihan yang tepat. Memigrasikan project akan mengubah hierarki resource-nya, yang memengaruhi izin yang diwarisi dan kebijakan tingkat organisasi.

Berikut beberapa langkah yang dapat Anda selesaikan pascamigrasi:

  1. Verifikasi kebijakan: Pastikan project mewarisi kebijakan organisasi yang diharapkan dari induk barunya.

  2. Kontrol akses: Audit peran IAM untuk memastikan pengguna di organisasi baru memiliki akses yang diperlukan.

  3. Penagihan: Perbarui akun penagihan jika project perlu ditagih ke organisasi tujuan. Ini langkah opsional. Untuk mengetahui detailnya, lihat Mengubah akun penagihan untuk project dan Memigrasikan akun penagihan antar-resource organisasi.

  4. Pembersihan: Cabut peran Pemindah Project sementara dan hapus batasan allowedExportDestinations dan allowedImportSources.

Mengubah akun penagihan untuk project

Akun Penagihan Cloud dapat digunakan di seluruh resource organisasi. Memindahkan project dari satu resource organisasi ke resource organisasi lain tidak akan memengaruhi penagihan, dan biaya akan terus ditagih ke akun penagihan lama. Namun, migrasi project antar-resource organisasi sering kali juga mencakup persyaratan untuk bermigrasi ke akun penagihan baru.

Untuk mengubah akun penagihan, lakukan langkah-langkah berikut:

  1. Buka halaman Penagihan di Google Cloud konsol.
    Buka halaman Penagihan
  2. Klik nama akun penagihan yang ingin Anda ubah.
  3. Di bagian Project yang ditautkan ke akun penagihan ini, temukan nama Project yang akan dimigrasikan, lalu klik tombol menu di sebelah kanan.
  4. Klik Ubah penagihan, lalu pilih akun penagihan baru.
  5. Klik Setel akun.

Biaya yang sudah terjadi dan belum dilaporkan dalam histori transaksi akan ditagih ke akun penagihan sebelumnya. Hal ini dapat mencakup biaya hingga dua hari sebelum project dimigrasikan.

Memigrasikan akun penagihan antar-resource organisasi

Akun penagihan dapat dimigrasikan dari satu resource organisasi ke resource organisasi lain, meskipun langkah ini tidak sering diperlukan. Sebagian besar resource organisasi yang ada akan memiliki akun penagihan yang harus digunakan.

Jika akun penagihan baru tidak memiliki resource organisasi yang terkait dengannya, Anda harus mendapatkan peran roles/billing.admin di akun penagihan dan peran roles/billing.admin dan roles/billing.creator di resource organisasi yang ingin Anda kaitkan dengan akun penagihan.

Jika Anda perlu memigrasikan akun penagihan yang ada:

  1. Di Google Cloud konsol, buka halaman Penagihan.
    Buka halaman Penagihan
  2. Klik nama akun penagihan yang ingin Anda migrasikan.
  3. Di bagian atas halaman Pengelolaan Akun, klik Ubah organisasi.
  4. Pilih resource organisasi tujuan, lalu klik Oke.

Akun penagihan kini dikaitkan dengan resource organisasi yang ditentukan.

Me-roll back migrasi

Jika Anda salah memigrasikan project, Anda dapat me-roll back operasi dengan melakukan migrasi lagi, dengan sumber lama sebagai tujuan baru, dan tujuan lama sebagai sumber baru. Anda harus memiliki izin IAM dan kebijakan organisasi yang diperlukan untuk mengizinkan hal ini seolah-olah ini adalah migrasi yang benar-benar baru.

Untuk membalikkan migrasi, lakukan langkah-langkah berikut:

  1. Tukar ID sumber dan tujuan di Kebijakan Organisasi Anda (allowedExportDestinations dan allowedImportSources).
  2. Ulangi perintah migrasi, pindahkan project kembali ke ID sumber asli.

Langkah berikutnya