Menangani kasus khusus

Dokumen ini memberikan informasi tentang cara menangani kasus khusus saat memigrasikan project. Saat memigrasikan project, pastikan Anda telah diberi izin Identity and Access Management (IAM) yang diperlukan pada project, resource induknya, dan resource tujuan.

Memigrasikan project yang tidak terkait dengan resource organisasi

Anda dapat memigrasikan project yang tidak terkait dengan resource organisasi ke dalam resource organisasi. Namun, Anda tidak dapat mengubahnya kembali ke Tidak ada organisasi menggunakan proses ini. Jika Anda memiliki project yang terkait dengan resource organisasi dan ingin mengembalikannya ke Tidak ada organisasi, hubungi perwakilan Dukungan Anda untuk mendapatkan bantuan.

Anda harus memiliki peran roles/resourcemanager.projectCreator yang ditetapkan pada resource organisasi tujuan.

Jika Anda tidak memiliki izin resourcemanager.organizations.get pada resource organisasi induk project, kemungkinan project Anda tidak akan ditampilkan seperti yang diharapkan di organisasi sebenarnya di Google Cloud konsol. Hal ini dapat membuat project tampak tidak terkait dengan resource organisasi mana pun. Untuk mengetahui informasi selengkapnya, lihat Membatasi visibilitas project untuk pengguna.

Untuk menentukan apakah project terkait dengan resource organisasi, lakukan hal berikut:

gcloud

Jalankan perintah berikut:

gcloud projects describe PROJECT_ID

Ganti PROJECT_ID dengan ID project yang ingin Anda migrasikan.

Jika resource induk tidak ditampilkan dalam output, hal ini mengonfirmasi bahwa project tidak terkait dengan resource organisasi.

Jika resource induk (folder atau resource organisasi) ditampilkan dalam output, hal ini mengonfirmasi bahwa project terkait dengan resource organisasi.

Proses memigrasikan project yang tidak terkait dengan resource organisasi mirip dengan proses memigrasikan project di antara resource organisasi, tetapi tidak memerlukan semua langkah yang terlibat dalam rencana migrasi. Untuk memigrasikan project ke dalam resource organisasi, Anda harus mengikuti langkah-langkah berikut:

  1. Verifikasi dampak kebijakan yang akan diwarisi pada project ini .

  2. Buat folder impor khusus di resource organisasi tujuan, jika diinginkan.

  3. Tetapkan izin IAM untuk project dan resource induk tujuan seperti yang dijelaskan dalam Menetapkan izin.

  4. Tentukan apakah Anda perlu mengubah akun penagihan.

Kemudian, Anda dapat melakukan migrasi.

Konsol

Untuk memigrasikan project ke dalam resource organisasi:

  1. Buka halaman IAM & admin > Setelan di Google Cloud konsol.

    Buka halaman Setelan

  2. Pilih pemilih project di bagian atas halaman.

  3. Dari Organization picker, pilih No Organization. Jika Anda tidak terkait dengan resource organisasi mana pun, Organization picker tidak akan muncul, dan Anda dapat melewati langkah ini.

  4. Pilih project yang ingin Anda migrasikan.

    Screenshot pemilih project

  5. Di bagian atas halaman, klik Migrasi.

  6. Di daftar drop-down Organisasi, pilih resource organisasi yang ingin Anda migrasikan project-nya.

gcloud

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

gcloud beta projects move PROJECT_ID \
    --organization ORGANIZATION_ID

Dengan:

  • PROJECT_ID adalah ID project yang ingin Anda migrasikan ke resource organisasi.
  • ORGANIZATION_ID adalah ID resource organisasi yang ingin Anda migrasikan project-nya.

API

Dengan Resource Manager API, Anda dapat memigrasikan project ke dalam resource organisasi dengan menetapkan kolom parent ke ID resource organisasi dari resource organisasi.

Untuk memigrasikan project ke dalam resource organisasi:

  • Dapatkan objek project menggunakan metode projects.get().
  • Tetapkan kolom parent ke ID resource organisasi dari resource organisasi.
  • Perbarui objek project menggunakan metode projects.update().

Anda tidak dapat mengubah kolom parent setelah menetapkannya.

Cuplikan kode berikut menunjukkan langkah-langkah di atas:

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

Jika Login OS diaktifkan di project sumber, Anda harus menetapkan roles/compute.osLoginExternalUser peran ke semua akun utama yang memiliki akses ke project tersebut.

VPC Bersama

Project VPC Bersama dapat dimigrasikan dengan mengikuti kondisi tertentu. Pertama, pengguna dengan peran roles/orgpolicy.policyAdmin di resource organisasi sumber harus menetapkan kebijakan organisasi yang berisi batasan constraints/resourcemanager.allowEnabledServicesForExport pada induk project yang akan diekspor. Batasan ini harus mencantumkan SHARED_VPC sebagai allowed_value.

Anda tidak perlu menonaktifkan VPC Bersama sebelum migrasi. Namun, project host VPC Bersama harus dimigrasikan terlebih dahulu, diikuti oleh semua project layanannya. Sebaiknya cocokkan aturan firewall antara resource organisasi di lokasi sumber dan target, yang akan meminimalkan potensi masalah dan menghindari waktu nonaktif untuk project dan jaringan selama migrasi. Kami tidak menawarkan jaminan tentang kesehatan jaringan Anda jika Anda membiarkan beberapa project layanan di resource organisasi sumber tanpa batas waktu saat memigrasikan project lainnya.

Jika memigrasikan project host, Anda dapat memindahkannya kembali ke resource organisasi sumber. Tidak ada batas waktu yang pasti tentang berapa lama project host dan project layanan dapat berada di organisasi yang berbeda. Namun, saat mulai memigrasikan project layanan, Anda harus memigrasikan semuanya sebelum dapat memigrasikan project host lagi.

Peran khusus IAM

Peran khusus IAM dapat dibuat di tingkat resource organisasi untuk memberikan kontrol akses yang mendetail ke resource, tetapi hanya berlaku di resource organisasi tempat peran tersebut dibuat. Jika Anda mencoba memigrasikan project yang berisi binding kebijakan izinkan pengguna ke peran khusus IAM tingkat organisasi, migrasi akan gagal dengan error prasyarat yang gagal, yang menjelaskan bahwa peran yang dimaksud tidak ada di resource organisasi tujuan.

Untuk mencantumkan semua peran khusus IAM di tingkat resource organisasi, jalankan perintah Google Cloud CLI berikut:

gcloud iam roles list --organization ORGANIZATION_ID

Dengan ORGANIZATION_ID adalah ID resource organisasi yang ingin Anda cantumkan perannya. Untuk mengetahui informasi tentang cara menemukan ID resource organisasi, lihat Mendapatkan ID resource organisasi.

Untuk mendapatkan informasi tentang peran khusus IAM di resource organisasi, jalankan perintah gcloud CLI berikut:

gcloud iam roles describe --organization ORGANIZATION_ID \
    ROLE_ID

Dengan:

  • ORGANIZATION_ID adalah ID resource organisasi dari resource organisasi induk peran.

  • ROLE_ID adalah nama peran yang ingin Anda jelaskan.

Untuk mengatasi error prasyarat yang gagal, Anda harus membuat peran khusus IAM tingkat project yang setara untuk setiap peran khusus IAM tingkat organisasi yang diwarisi project. Kemudian, hapus binding peran IAM yang mereferensikan peran khusus IAM tingkat organisasi.

Setelah project dimigrasikan, Anda dapat memperbarui kebijakan izinkan untuk menggunakan peran khusus IAM tingkat organisasi di resource organisasi tujuan.

Untuk mengetahui informasi selengkapnya tentang peran khusus, lihat Membuat dan mengelola peran khusus.

Kunci Bucket

Kunci Bucket Cloud Storage memungkinkan Anda mengonfigurasi kebijakan retensi data di bucket Cloud Storage yang mengatur berapa lama objek dalam bucket harus dipertahankan. Kunci bucket dilindungi menggunakan a lien untuk mencegah penghapusan project secara tidak sengaja.

Kebijakan retensi dan lien disimpan bersama project selama migrasi, tetapi Anda harus mengetahui apakah Anda memigrasikan project dengan kunci bucket yang diterapkan, dan mencegah pemindahan yang tidak disengaja.

Perimeter keamanan Kontrol Layanan VPC

Kontrol Layanan VPC memungkinkan pengguna menyiapkan perimeter keamanan berbasis project di sekitar Google Cloud layanan mereka untuk mengurangi risiko pemindahan data yang tidak sah. Anda tidak dapat memigrasikan project yang dilindungi oleh perimeter keamanan Kontrol Layanan VPC.

Untuk menghapus project dari perimeter keamanan, lihat Mengelola perimeter layanan. Project di perimeter Kontrol Layanan VPC mungkin tidak diblokir untuk dimigrasikan di antara resource organisasi. Panduan ini berlaku hingga satu hari setelah perimeter dibuat atau diperbarui. Mungkin perlu waktu beberapa jam agar Anda dapat memigrasikan project setelah dihapus dari perimeter layanan.

Dedicated Interconnect

Sebaiknya migrasikan project dengan objek Dedicated Interconnect dan project dengan lampiran VLAN secara bersamaan. Project dengan objek Dedicated Interconnect atau lampiran VLAN yang terhubung ke objek ini akan terus berfungsi setelah migrasi di antara resource organisasi. Satu-satunya batasan adalah Anda tidak akan dapat membuat lampiran VLAN baru di antara pemisahan resource organisasi.

Perubahan konfigurasi yang dilakukan pada project di satu resource organisasi yang memiliki objek Dedicated Interconnect terlampir atau lampiran VLAN ke objek ini mungkin tidak dipropagasi ke resource organisasi lainnya. Sebaiknya jangan biarkan project tersebut dipisahkan di antara resource organisasi terlalu lama jika memungkinkan.

Partner Interconnect

Tidak ada pertimbangan khusus yang diperlukan saat memigrasikan project dengan Partner Interconnect.

Project Pengelolaan

Project pengelolaan adalah Google Cloud project di folder yang mendukung aplikasi yang bertindak sebagai repositori pusat untuk semua metadata yang berpusat pada aplikasi Anda. Setiap folder yang mendukung aplikasi hanya berisi satu project pengelolaan. Project pengelolaan menyediakan infrastruktur untuk library dan API aplikasi, termasuk penagihan, kuota, dan kontrol akses. Anda tidak dapat memigrasikan Project Pengelolaan.

Akun layanan lintas project

Dalam konteks memigrasikan akun layanan lintas project, kasus berikut berlaku:

Misalnya, asumsikan Anda memiliki project-A, di organizations/12345678901. Project ini memiliki serviceAccount-1 terlampir, yang disiapkan sebagai akun layanan lintas project. project-B dan project-C, juga di organizations/12345678901, juga menggunakan serviceAccount-1.

Anda telah menerapkan kebijakan organisasi dengan batasan domain ke project-C, yang hanya mengizinkannya mengakses domain organizations/12345678901.

Jika Anda menambahkan serviceAccount-1 ke binding IAM untuk project-C, lalu memigrasikan project-A ke organizations/45678901234, akun layanan akan berfungsi.

Jika Anda memigrasikan project-A ke organizations/45678901234, lalu mencoba menambahkan serviceAccount-1 ke binding IAM untuk project-C, binding akan gagal karena melanggar batasan domain.

Kasus dukungan

Jika Anda memigrasikan project yang memiliki kasus dukungan terbuka, Anda harus menghubungi kontak Dukungan Google untuk memberi tahu bahwa migrasi telah terjadi. Project apa pun yang memiliki kasus dukungan terbuka dengan Google tidak akan dapat melihat kasus dukungan tersebut hingga Dukungan Google memperbarui metadata kasus untuk mengarah ke resource organisasi baru.

Jika project Anda dikonfigurasi untuk menggunakan layar izin OAuth Internal dan Anda memigrasikannya ke resource organisasi lain, hanya anggota resource organisasi tujuan yang dapat mengotorisasi permintaan. Mungkin perlu waktu hingga 24 jam agar perilaku ini berlaku. Hingga saat itu, anggota resource organisasi sumber dapat mengotorisasi permintaan.

Langkah-langkah di bawah menjelaskan cara memastikan anggota resource organisasi sumber tidak kehilangan akses selama migrasi. Pertimbangkan untuk membuat pengguna baru di resource organisasi tujuan untuk anggota resource organisasi sehingga Anda tidak perlu mengubah konfigurasi layar izin OAuth.

Untuk menghindari hilangnya akses bagi anggota resource organisasi sumber:

  1. Perbarui layar izin OAuth agar menjadi eksternal, bukan internal.

  2. Aplikasi yang ditandai sebagai internal dan menggunakan data sensitif tidak perlu mengajukan verifikasi aplikasi. Jika aplikasi menggunakan data sensitif, saat layar izin diperbarui menjadi eksternal, pengguna resource organisasi sumber akan melihat layar aplikasi yang belum diverifikasi sebelum layar otorisasi. Untuk menghindarinya, ajukan verifikasi aplikasi untuk penggunaan cakupan sensitif atau dibatasi.

Login OS

Jika Login OS diaktifkan di project sumber, Anda harus menetapkan peran roles/compute.osLoginExternalUser ke semua akun utama yang memiliki akses ke project tersebut. Hal ini memastikan bahwa akun utama ini tidak kehilangan akses di resource organisasi tujuan.

Pemesanan bersama instance virtual machine (VM)

Dalam pemesanan bersama, project yang membuat pemesanan (project pemilik) atau project mana pun yang pemesanannya dibagikan (project konsumen) dapat menggunakan pemesanan dengan membuat instance VM. Anda hanya dapat membagikan pemesanan ke project dalam organisasi yang sama dengan project pemilik.

Saat Anda memigrasikan project pemilik atau konsumen ke organisasi lain, hal berikut akan terjadi:

  • Jika Anda memigrasikan project pemilik ke organisasi lain, Compute Engine akan menghapus pemesanan apa pun yang dibuat oleh project pemilik. Instance VM yang berjalan tidak akan terpengaruh.
  • Jika Anda memigrasikan project konsumen ke organisasi lain, project konsumen akan berhenti menggunakan resource dari pemesanan bersama mana pun di organisasi sebelumnya.

Untuk mengetahui informasi selengkapnya, lihat Cara kerja pemesanan bersama.

Melampirkan akun layanan ke resource

Untuk sebagian besar Google Cloud layanan, pengguna memerlukan iam.serviceAccounts.actAs izin di akun layanan untuk melampirkan akun layanan tersebut ke resource. Namun, sebelumnya, untuk mempermudah orientasi, layanan tertentu mengizinkan pengguna melampirkan akun layanan ke resource meskipun pengguna tidak memiliki izin untuk meniru identitas akun layanan tersebut. Hal ini didokumentasikan dalam Mewajibkan izin untuk melampirkan akun layanan ke resource.

Jika resource organisasi sumber pelanggan memiliki perilaku lama (lampiran akun layanan dapat dilakukan tanpa pemberian peran normal) dan resource organisasi tujuan tidak, berikan peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) kepada pengguna yang melampirkan akun layanan ini ke resource. Untuk mengetahui informasi tentang izin yang Anda perlukan untuk melampirkan akun layanan ke resource, lihat Peran untuk autentikasi akun layanan.

Untuk melihat apakah resource organisasi Anda memiliki perilaku lama, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman Kebijakan organisasi.

    Buka halaman Kebijakan organisasi

  2. Dari pemilih project di bagian atas halaman, pilih resource organisasi yang ingin Anda periksa status lamanya.

  3. Di kotak filter di bagian atas daftar kebijakan organisasi, masukkan constraints/appengine.enforceServiceAccountActAsCheck.

  4. Jika kebijakan organisasi appengine.enforceServiceAccountActAsCheck muncul dalam daftar, resource organisasi memiliki perilaku lama.

  5. Ulangi langkah 3 dan 4 untuk setiap batasan kebijakan organisasi berikut:

    • appengine.enforceServiceAccountActAsCheck
    • dataflow.enforceComputeDefaultServiceAccountCheck
    • dataproc.enforceComputeDefaultServiceAccountCheck
    • composer.enforceServiceAccountActAsCheck
  6. Jika salah satu batasan kebijakan organisasi ini muncul, resource organisasi Anda menggunakan perilaku lama.

Jika resource organisasi sumber memiliki perilaku lama dan tujuan tidak, berikan peran seperti yang disebutkan di atas. Jika resource organisasi sumber dan tujuan memiliki perilaku lama, tidak ada tindakan yang diperlukan, tetapi pertimbangkan untuk menerapkan kebijakan guna mencegah peniruan identitas yang tidak diinginkan.

Memigrasikan project dengan berbagi

Jika Anda memigrasikan project yang menggunakan berbagi BigQuery (sebelumnya berbagi) ke resource organisasi lain, Anda mungkin akan mengalami beberapa error. Untuk mengatasi error, hubungi dukungan.

Jika resource pertukaran data dari organisasi sebelumnya tidak terlihat di halaman administrator Berbagi organisasi baru, gunakan sharing API untuk memperbarui kolom apa pun (misalnya, kolom description) pertukaran data di organisasi baru untuk memicu refresh cache.

Gunakan metode projects.locations.dataExchanges.patch method.

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATA_EXCHANGE_ID?update_mask=UPDATE_DX_FIELD -d { UPDATE_DX_FIELD:UPDATE_DX_VALUE }

Ganti kode berikut:

  • PROJECT_ID adalah ID unik project.
  • LOCATION adalah lokasi pertukaran data.
  • DATA_EXCHANGE_ID adalah ID pertukaran data.
  • UPDATE_DX_FIELD adalah kolom yang akan diperbarui. Kolom ini dapat berupa kolom pertukaran apa pun, seperti description.
  • UPDATE_DX_VALUE adalah nilai kolom yang diperbarui. Nilai ini dapat sama dengan nilai asli kolom tersebut.

Memigrasikan project dengan layanan Backup and DR

Anda harus menonaktifkan layanan Backup and DR Service sebelum memigrasikan project ke resource organisasi lain. Saat ini, saat layanan dinonaktifkan, ada risiko gangguan yang perlu Anda perhitungkan. Anda harus mengaktifkan kembali layanan Backup and DR setelah migrasi ke resource organisasi baru selesai.

Memigrasikan project dengan pemberian Privileged Access Manager yang diwarisi

Sebelum memigrasikan project ke organisasi lain, sebaiknya batalkan pemberian tercakup aktif pada project tersebut. Pemberian tercakup adalah pemberian yang dibuat pada hak yang diwarisi dari folder atau organisasi, lalu dicakupkan ke project turunan.

Saat Anda memigrasikan project dengan pemberian tercakup aktif ke organisasi lain, kebijakan IAM yang diubah akan dipindahkan ke organisasi baru, tetapi pemberian yang mengelola kebijakan tersebut tetap berada di organisasi sebelumnya. Artinya, agen layanan Privileged Access Manager, yang digunakan oleh pemberian, akan kehilangan izin untuk mengubah kebijakan IAM resource di organisasi baru. Akibatnya, operasi pembatalan atau penarikan pada pemberian tersebut akan gagal, dan pemohon akan mempertahankan akses hingga pemberian berakhir.

Memigrasikan project dengan taksonomi tag kebijakan

Jika Anda memigrasikan project yang berisi taksonomi tag kebijakan BigQuery, taksonomi tersebut mungkin tidak terlihat di Google Cloud konsol setelah migrasi. Hal ini karena taksonomi tetap terkait dengan resource organisasi sumber.

Untuk mengatasi masalah ini, Anda harus memigrasikan taksonomi secara manual:

  1. Ekspor taksonomi dari project sumber menggunakan Export API.

  2. Impor taksonomi ke project tujuan menggunakan Import API.

  3. Tetapkan kembali tag kebijakan ke kolom tabel BigQuery yang relevan.

  4. Konfigurasi binding kebijakan izinkan secara manual untuk tag kebijakan baru.

Langkah berikutnya

Untuk mempelajari cara melakukan migrasi, lihat Melakukan migrasi.