Dokumen ini memberikan informasi tentang cara menangani kasus khusus saat memigrasikan project. Saat memigrasikan project, pastikan Anda memiliki izin IAM yang diperlukan yang diberikan pada project, resource induk, 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 dikaitkan dengan resource organisasi dan Anda ingin mengembalikannya ke Tidak ada organisasi, hubungi perwakilan Dukungan Anda untuk mendapatkan bantuan.
Anda harus memiliki peran roles/resourcemanager.projectCreator
yang ditetapkan di resource organisasi tujuan.
Jika Anda tidak memiliki izin resourcemanager.organizations.get
pada
resource organisasi induk project, kemungkinan project Anda
tidak tercermin seperti yang diharapkan di organisasi sebenarnya di
Google Cloud console. 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 parent tidak ditampilkan dalam output, hal ini mengonfirmasi bahwa project tidak dikaitkan dengan resource organisasi.
Jika resource parent (resource folder atau organisasi) ditampilkan di output, hal ini mengonfirmasi bahwa project dikaitkan dengan resource organisasi.
Proses memigrasikan project yang tidak dikaitkan 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 resource organisasi, Anda harus mengikuti langkah-langkah berikut:
Verifikasi dampak pada project ini dari kebijakan yang akan diwarisinya.
Buat folder impor khusus di resource organisasi tujuan, jika diinginkan.
Tetapkan izin Identity and Access Management untuk project dan resource induk tujuan seperti yang dijelaskan dalam Menetapkan izin.
Tentukan apakah Anda perlu mengubah akun penagihan.
Kemudian, Anda dapat melakukan migrasi.
Konsol
Untuk memigrasikan project ke resource organisasi:
Buka halaman IAM & admin > Setelan di Google Cloud console.
Pilih Project picker di bagian atas halaman.
Dari Pemilih organisasi, pilih Tidak Ada Organisasi. Jika Anda tidak dikaitkan dengan resource organisasi mana pun, Pemilih organisasi tidak akan muncul, dan Anda dapat melewati langkah ini.
Pilih project yang ingin Anda migrasikan.
Di bagian atas halaman, klik Migrasikan.
Pada daftar drop-down Organization, pilih resource organisasi tempat Anda ingin memigrasikan project.
gcloud
Untuk memigrasikan project ke 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 tempat Anda ingin memigrasikan project.
API
Dengan menggunakan Resource Manager API, Anda dapat memigrasikan project ke resource organisasi dengan menyetel kolom parent
ke ID resource organisasi.
Untuk memigrasikan project ke resource organisasi:
- Dapatkan objek
project
menggunakan metodeprojects.get()
. - Setel kolom
parent
ke ID resource organisasi dari resource organisasi. - Perbarui objek
project
menggunakan metodeprojects.update()
.
Anda tidak dapat mengubah kolom parent
setelah menyetelnya.
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 peran roles/compute.osLoginExternalUser
ke semua prinsipal 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 Anda mencocokkan aturan firewall antara resource organisasi di lokasi sumber dan target, yang akan meminimalkan potensi masalah dan menghindari periode nonaktif untuk project dan jaringan selama migrasi. Kami tidak menawarkan jaminan tentang kesehatan jaringan Anda jika Anda membiarkan beberapa project layanan dalam resource organisasi sumber tanpa batas waktu saat memigrasikan project lainnya.
Jika Anda memigrasikan project host, Anda dapat memindahkannya kembali ke resource organisasi sumber. Tidak ada batas waktu pasti berapa lama project host dan project layanan dapat berada di organisasi yang berbeda. Namun, saat Anda mulai memigrasikan project layanan, Anda harus memigrasikan semuanya sebelum dapat memigrasikan project host lagi.
Peran Identity and Access Management kustom
Peran Identity and Access Management kustom dapat dibuat di tingkat resource organisasi untuk memberikan kontrol akses yang terperinci ke resource, tetapi hanya valid di resource organisasi tempat peran tersebut dibuat. Jika Anda mencoba memigrasikan project yang berisi binding kebijakan izinkan pengguna ke peran IAM kustom tingkat organisasi, migrasi akan gagal dengan error prasyarat gagal, yang menjelaskan bahwa peran yang dimaksud tidak ada di resource organisasi tujuan.
Untuk mencantumkan semua peran IAM kustom di tingkat resource organisasi Anda, jalankan perintah Google Cloud CLI berikut:
gcloud iam roles list --organization ORGANIZATION_ID
Dengan ORGANIZATION_ID
adalah ID resource organisasi
yang perannya ingin Anda cantumkan. Untuk mengetahui informasi tentang cara menemukan ID resource organisasi Anda, lihat Membuat dan mengelola resource organisasi.
Untuk mendapatkan informasi tentang peran Identity and Access Management kustom di resource organisasi Anda, jalankan perintah Google Cloud 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 deskripsikan.
Untuk mengatasi error prasyarat yang gagal, Anda harus membuat peran khusus level project yang setara untuk setiap peran khusus level organisasi yang diwarisi project. Kemudian, hapus binding peran IAM yang mereferensikan peran khusus tingkat organisasi.
Setelah project dimigrasikan, Anda dapat memperbarui kebijakan izin untuk menggunakan peran kustom level 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 pada bucket Cloud Storage yang mengatur berapa lama objek dalam bucket harus dipertahankan. Penguncian bucket dilindungi menggunakan lien untuk mencegah penghapusan project secara tidak sengaja.
Kebijakan retensi dan lien tetap ada di project selama migrasi, tetapi Anda harus berhati-hati jika memigrasikan project dengan penguncian 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 seputar layananGoogle Cloud 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 dalam perimeter Kontrol Layanan VPC mungkin tidak diblokir agar tidak dimigrasikan antar-resource organisasi. Pedoman ini berlaku hingga satu hari setelah perimeter dibuat atau diperbarui. Mungkin perlu waktu beberapa jam agar Anda dapat memigrasikan project setelah project tersebut 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 antar-resource organisasi. Satu-satunya batasan adalah Anda tidak 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 diteruskan ke resource organisasi lainnya. Sebaiknya jangan biarkan project tersebut dibagi di antara resource organisasi terlalu lama jika memungkinkan.
Partner Interconnect
Tidak ada pertimbangan khusus yang diperlukan saat memigrasikan project dengan Partner Interconnect.
Akun layanan lintas project
Dalam konteks memigrasikan akun layanan lintas project, kasus berikut berlaku:
- Jika Anda memigrasikan project yang memiliki akun layanan lintas project yang terlampir, akun layanan tersebut akan terus berfungsi di resource organisasi tujuan. Project tersebut akan terus berfungsi dengan akun layanan yang terlampir meskipun ada kebijakan organisasi yang membatasi domain project tersebut.
- Jika Anda memigrasikan project yang memiliki akun layanan lintas project yang dilampirkan ke project lain di resource organisasi sumber, akun layanan tersebut akan terus berfungsi di resource organisasi tujuan. Namun, Anda tidak akan dapat menggunakan akun layanan tersebut di resource mana pun yang menerapkan kebijakan organisasi pembatasan domain yang membatasi resource tersebut ke domain resource organisasi sumber.
Misalnya, anggap Anda memiliki project-A
, di organizations/12345678901
. Project ini memiliki serviceAccount-1
yang dilampirkan, yang disiapkan sebagai akun layanan lintas project. project-B
dan project-C
, juga di
organizations/12345678901
, gunakan serviceAccount-1
juga.
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 yang belum selesai, Anda harus menghubungi kontak Dukungan Google Anda untuk memberi tahu mereka bahwa migrasi telah terjadi. Project yang memiliki kasus dukungan yang belum diselesaikan dengan Google tidak akan dapat melihat kasus dukungan tersebut hingga Dukungan Google memperbarui metadata kasus untuk mengarah ke resource organisasi baru.
Layar persetujuan OAuth
Jika project Anda dikonfigurasi untuk menggunakan Layar izin OAuth internal dan Anda memigrasikannya ke resource organisasi lain, hanya anggota resource organisasi tujuan yang dapat mengizinkan permintaan. Mungkin perlu waktu hingga 24 jam agar perilaku ini diterapkan. Sebelumnya, anggota resource organisasi sumber dapat mengizinkan permintaan.
Langkah-langkah di bawah menjelaskan cara memastikan anggota resource organisasi sumber Anda tidak kehilangan akses selama migrasi. Sebaiknya buat pengguna baru di resource organisasi tujuan Anda untuk anggota resource organisasi agar Anda tidak perlu mengubah konfigurasi layar izin OAuth.
Untuk menghindari hilangnya akses bagi anggota resource organisasi sumber:
Perbarui layar izin OAuth agar menjadi eksternal, bukan internal.
Aplikasi yang ditandai sebagai internal dan menggunakan data sensitif tidak perlu mengajukan permohonan verifikasi aplikasi. Jika aplikasi menggunakan data sensitif, maka saat layar izin diperbarui ke eksternal, pengguna resource organisasi sumber akan melihat layar aplikasi yang belum diverifikasi sebelum layar otorisasi. Untuk menghindarinya, ajukan permohonan verifikasi aplikasi untuk penggunaan cakupan sensitif atau terbatas.
Login OS
Jika Login OS diaktifkan di project sumber, Anda harus menetapkan peran roles/compute.osLoginExternalUser
ke semua prinsipal 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 apa pun yang dibagikan dengan pemesanan tersebut (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 semua pemesanan yang dibuat oleh project pemilik. Instance VM yang sedang berjalan tidak akan terpengaruh.
- Jika Anda memigrasikan project konsumen ke organisasi lain, project konsumen akan berhenti menggunakan resource dari pemesanan bersama di organisasi sebelumnya.
Untuk mengetahui informasi selengkapnya, lihat Cara kerja pemesanan bersama.
Melampirkan akun layanan ke resource
Untuk sebagian besar layanan Google Cloud , pengguna memerlukan izin iam.serviceAccounts.actAs
di akun layanan untuk melampirkan akun layanan tersebut ke resource.
Namun, sebelumnya, untuk mempermudah aktivasi, layanan tertentu mengizinkan pengguna
melampirkan akun layanan ke resource meskipun pengguna tidak memiliki izin untuk
meniru identitas akun layanan tersebut. Hal ini didokumentasikan dalam Memerlukan 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 memilikinya, berikan peran Service Account User (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:
Di konsol Google Cloud , buka halaman Kebijakan organisasi.
Dari pemilih project di bagian atas halaman, pilih resource organisasi yang ingin Anda periksa status lamanya.
Di kotak filter di bagian atas daftar kebijakan organisasi, masukkan
constraints/appengine.enforceServiceAccountActAsCheck
.Jika kebijakan organisasi
appengine.enforceServiceAccountActAsCheck
muncul dalam daftar, resource organisasi memiliki perilaku lama.Ulangi langkah 3 dan 4 untuk setiap batasan kebijakan organisasi berikut:
appengine.enforceServiceAccountActAsCheck
dataflow.enforceComputeDefaultServiceAccountCheck
dataproc.enforceComputeDefaultServiceAccountCheck
composer.enforceServiceAccountActAsCheck
Jika salah satu batasan kebijakan organisasi ini muncul, resource organisasi Anda menggunakan perilaku lama.
Jika resource organisasi sumber memiliki perilaku lama dan tujuan tidak memilikinya, 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 BigQuery
Jika Anda memigrasikan project yang menggunakan fitur berbagi BigQuery (sebelumnya Analytics Hub) ke resource organisasi lain, Anda mungkin mengalami beberapa error. Untuk menyelesaikan error, hubungi dukungan.
Jika resource pertukaran data dari organisasi lama tidak terlihat di halaman administrator Berbagi di organisasi baru, gunakan Analytics Hub API untuk memperbarui pertukaran data di organisasi baru.
Gunakan
metode projects.locations.dataExchanges.patch
.
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.
- UPDATE_DX_VALUE adalah nilai kolom yang diperbarui.
Memigrasikan project dengan layanan Pencadangan dan DR
Anda harus menonaktifkan layanan Backup dan DR sebelum memigrasikan project ke resource organisasi yang berbeda. Saat layanan dinonaktifkan, ada risiko gangguan yang perlu Anda perhitungkan. Anda harus mengaktifkan kembali layanan Pencadangan dan DR setelah migrasi ke resource organisasi baru selesai.
Langkah berikutnya
Untuk mempelajari cara melakukan migrasi, lihat Melakukan migrasi.