Saat Anda memigrasikan Google Cloud project di seluruh organisasi, beberapa resource dan konfigurasi memerlukan langkah tambahan untuk menjaga kontinuitas layanan dan mencegah konflik konfigurasi. Kasus khusus ini mencakup project tanpa resource organisasi, resource VPC Bersama, peran khusus, dan akun layanan lintas project. Sebelum memigrasikan project, pastikan Anda memiliki 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 dibuat tanpa resource organisasi terkait ke dalam hierarki resource organisasi. Namun, Anda tidak dapat membalikkan proses ini. Untuk mengembalikan project ke No organization, hubungi Cloud Customer Care untuk mendapatkan bantuan.
Untuk memigrasikan project yang tidak terkait dengan resource organisasi, Anda harus memiliki peran roles/resourcemanager.projectIamAdmin di project tersebut. Anda
juga harus memiliki peran roles/resourcemanager.projectCreator di resource organisasi tujuan.
Jika Anda tidak memiliki izin resourcemanager.organizations.get pada resource organisasi induk, project Anda mungkin tidak muncul seperti yang diharapkan di bagian organisasi di konsol Google Cloud . Hal ini dapat membuat project tampak seperti tidak terkait dengan resource organisasi. 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 terkait dengan resource organisasi.
Jika resource induk (resource folder atau organisasi) ditampilkan dalam output, hal ini mengonfirmasi bahwa project terkait dengan resource organisasi.
Proses migrasi project yang tidak terkait dengan resource organisasi mirip dengan proses migrasi project antar-resource organisasi, tetapi tidak memerlukan semua langkah dalam rencana migrasi. Untuk memigrasikan project ke resource organisasi, ikuti langkah-langkah berikut:
Verifikasi dampak kebijakan yang akan diwarisi pada project ini.
Buat folder impor khusus di resource organisasi tujuan, jika diperlukan.
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 menggunakan salah satu metode berikut:
Konsol
Buka halaman IAM & Admin > Settings di konsol Google Cloud .
Pilih project Anda (yang memiliki No organization) menggunakan pemilih project.
Di bagian atas halaman Setelan, klik Migrasikan.
Pada dialog yang muncul, pilih resource organisasi yang ingin Anda migrasikan project Anda, lalu klik Migrate.
gcloud
Untuk memigrasikan project ke resource organisasi, jalankan perintah berikut:
gcloud beta projects move PROJECT_ID \
--organization ORGANIZATION_ID
Ganti kode berikut:
- PROJECT_ID: ID project yang akan dimigrasikan
- ORGANIZATION_ID: ID resource organisasi tujuan
API
Dengan menggunakan Resource Manager API, Anda dapat memigrasikan project ke resource organisasi dengan menetapkan kolom parent ke ID resource organisasi dari resource organisasi.
Untuk memigrasikan project ke resource organisasi:
- Dapatkan objek
projectmenggunakan metodeprojects.get(). - Tetapkan kolom
parentke ID resource organisasi dari resource organisasi. - Perbarui objek
projectmenggunakan metodeprojects.update().
Anda tidak dapat mengubah kolom parent setelah menetapkannya.
Cuplikan kode berikut menunjukkan langkah-langkah ini:
project = crm.projects().get(projectId=flags.projectId).execute()
project['parent'] = {
'type': 'organization',
'id': flags.organizationId
}
Jika Cloud OS Login API diaktifkan di project sumber, tetapkan peran roles/compute.osLoginExternalUser ke akun utama mana pun yang memiliki akses ke project tersebut.
VPC Bersama
Anda dapat memigrasikan project VPC Bersama dalam 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, Anda harus memigrasikan project host VPC Bersama terlebih dahulu, diikuti dengan semua project layanannya. Sebaiknya cocokkan aturan firewall antara resource organisasi sumber dan target untuk meminimalkan potensi masalah dan menghindari periode nonaktif. Kami tidak menjamin kondisi jaringan Anda jika Anda membiarkan project layanan tetap berada di resource organisasi sumber saat memigrasikan project layanan lainnya.
Jika memigrasikan project host, Anda dapat memindahkannya kembali ke resource organisasi sumber. Tidak ada batas waktu pasti berapa lama project host dan layanan dapat berada di organisasi yang berbeda. Namun, setelah mulai memigrasikan project layanan, Anda harus memigrasikan semuanya sebelum dapat memigrasikan project host lagi.
Peran IAM kustom
Peran Identity and Access Management khusus memberikan kontrol terperinci atas akses ke resource di level resource organisasi, tetapi peran tersebut hanya valid di resource organisasi tempat peran tersebut dibuat. Jika Anda memigrasikan project yang berisi binding kebijakan izin ke peran IAM kustom level organisasi, migrasi akan gagal. Error tersebut menjelaskan bahwa peran tidak ada di resource organisasi tujuan.
Untuk mencantumkan semua peran IAM khusus di resource organisasi Anda, jalankan perintah berikut:
gcloud iam roles list --organization ORGANIZATION_ID
Ganti ORGANIZATION_ID dengan ID resource organisasi. Untuk mengetahui informasi selengkapnya, lihat Mendapatkan ID resource organisasi.
Untuk mendapatkan informasi tentang peran Identity and Access Management kustom di resource organisasi Anda, jalankan perintah berikut:
gcloud iam roles describe --organization ORGANIZATION_ID \
ROLE_ID
Ganti kode berikut:
- ORGANIZATION_ID: ID resource organisasi
- ROLE_ID: nama peran yang akan dideskripsikan
Untuk mengatasi error ini, buat peran khusus level project yang setara untuk setiap peran khusus level organisasi yang diwariskan. Kemudian, hapus binding peran IAM yang merujuk ke peran khusus level organisasi.
Setelah memigrasikan project, Anda dapat memperbarui kebijakan izin untuk menggunakan peran khusus level organisasi di resource organisasi tujuan.
Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola peran khusus.
Kunci Bucket
Kunci Bucket Cloud Storage memungkinkan Anda mengonfigurasi kebijakan retensi data di bucket Cloud Storage. Kebijakan ini mengatur berapa lama objek harus dipertahankan. Kunci bucket dilindungi menggunakan lien untuk mencegah penghapusan project secara tidak sengaja.
Kebijakan retensi dan lien disimpan bersama project selama migrasi. Lien tidak mencegah Anda memigrasikan project.
Perimeter keamanan Kontrol Layanan VPC
Kontrol Layanan VPC mengurangi risiko pemindahan data yang tidak sah dengan menyiapkan perimeter keamanan berbasis project di sekitar layananGoogle Cloud . Anda tidak dapat memigrasikan project yang dilindungi oleh perimeter keamanan Kontrol Layanan VPC.
Untuk menghapus project dari perimeter keamanan, lihat Mengelola perimeter layanan. Mungkin perlu waktu beberapa jam atau hingga satu hari bagi Anda untuk memigrasikan project setelah menghapusnya dari perimeter layanan.
Kebijakan Akses Kontekstual untuk akun layanan
Akses Kontekstual memungkinkan pengguna menentukan kebijakan akses pada resource Google Cloud untuk akun layanan berdasarkan atribut konteks seperti jaringan, lokasi, dan waktu. Anda tidak dapat memigrasikan project yang memiliki setidaknya satu kebijakan Akses Kontekstual untuk akun layanan.
Untuk menghapus kebijakan Akses Kontekstual untuk akun layanan, lihat Mengelola binding akses.
Perhatikan pertimbangan waktu berikut saat membuat atau menghapus kebijakan:
- Pembuatan kebijakan: Kebijakan Akses Kontekstual yang baru dibuat mungkin tidak langsung memblokir migrasi. Penundaan penerapan ini dapat berlangsung hingga 24 jam setelah kebijakan dibuat.
- Penghapusan kebijakan: Setelah semua kebijakan Akses Kontekstual dihapus dari project, mungkin perlu waktu beberapa jam sebelum Anda dapat memigrasikan project.
Dedicated Interconnect
Sebaiknya migrasikan project dengan objek Dedicated Interconnect dan project dengan lampiran VLAN secara bersamaan. Project dengan objek ini terus berfungsi setelah migrasi antar-resource organisasi. Namun, Anda tidak dapat membuat lampiran VLAN baru di antara resource organisasi saat resource tersebut dipisahkan.
Perubahan konfigurasi yang dilakukan pada project terpisah mungkin tidak diterapkan di seluruh resource organisasi. Sebaiknya jangan biarkan project terpisah dalam waktu lama.
Partner Interconnect
Tidak ada pertimbangan khusus untuk memigrasikan project dengan Partner Interconnect. Tidak ada pertimbangan khusus yang diperlukan saat memigrasikan project dengan Partner Interconnect.
Project Pengelolaan
Project pengelolaan adalah project Google Cloud di folder khusus aplikasi yang berfungsi sebagai repositori pusat untuk semua metadata yang berfokus pada aplikasi. Setiap folder khusus 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
Saat Anda memigrasikan akun layanan lintas project, kasus berikut berlaku:
- Jika Anda memigrasikan project dengan akun layanan lintas project yang terpasang, akun layanan akan terus berfungsi di resource organisasi tujuan. Hal ini berlaku meskipun kebijakan organisasi membatasi domain.
- Jika Anda memigrasikan project yang memiliki akun layanan lintas project yang digunakan oleh project lain, akun layanan tersebut akan terus berfungsi. Namun, Anda tidak dapat menggunakannya pada resource yang menerapkan kebijakan organisasi pembatasan domain yang membatasinya ke domain resource organisasi sumber.
Misalnya, asumsikan project-A di organizations/12345678901 memiliki
serviceAccount-1 yang terpasang. project-B dan project-C di organisasi yang sama juga menggunakan serviceAccount-1.
project-C memiliki kebijakan organisasi yang hanya mengizinkan domain organizations/12345678901.
Jika Anda menambahkan serviceAccount-1 ke binding IAM untuk project-C
sebelum 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 dengan kasus dukungan terbuka, beri tahu Cloud Customer Care setelah migrasi. Anda tidak dapat melihat kasus dukungan tersebut hingga Cloud Customer Care memperbarui metadata ke resource organisasi baru.
Layar persetujuan OAuth
Jika project Anda menggunakan Layar izin OAuth Internal, hanya anggota resource organisasi tujuan yang dapat mengizinkan permintaan setelah migrasi. Perubahan ini mungkin memerlukan waktu sampai 24 jam sebelum diterapkan. Sebelumnya, anggota resource organisasi sumber masih dapat mengizinkan permintaan.
Untuk memastikan anggota sumber tidak kehilangan akses, pertimbangkan untuk membuat pengguna baru di resource organisasi tujuan atau memperbarui konfigurasi layar izin OAuth:
Perbarui layar izin OAuth menjadi eksternal, bukan internal.
Jika aplikasi menggunakan data sensitif, ajukan permohonan verifikasi aplikasi untuk cakupan sensitif atau yang dibatasi. Jika tidak, pengguna akan melihat layar aplikasi yang belum diverifikasi.
Cloud OS Login API
Jika Cloud OS Login API diaktifkan di project sumber, tetapkan peran roles/compute.osLoginExternalUser ke akun utama mana pun 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 dengannya (project konsumen) dapat menggunakan pemesanan dengan membuat instance VM. Anda hanya dapat membagikan pemesanan ke project yang berada dalam organisasi yang sama dengan project pemilik.
Saat Anda memigrasikan project pemilik atau konsumen, hal berikut akan terjadi:
- Jika Anda memigrasikan project pemilik, Compute Engine akan menghapus semua pemesanan yang dibuat oleh project tersebut. Instance VM yang berjalan tidak akan terpengaruh.
- Jika Anda memigrasikan project konsumen, project tersebut 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 layanan Google Cloud , Anda memerlukan izin iam.serviceAccounts.actAs
untuk melampirkan akun layanan ke resource. Namun, beberapa layanan
sebelumnya mengizinkan hal ini tanpa izin peniruan identitas yang eksplisit. Hal ini
didokumentasikan dalam Mewajibkan izin untuk melampirkan akun layanan ke resource.
Jika resource organisasi sumber Anda memiliki perilaku lama ini, tetapi
tujuannya tidak, berikan peran roles/iam.serviceAccountUser kepada pengguna yang
melampirkan akun layanan ini. Untuk mengetahui informasi selengkapnya tentang izin, lihat
Peran untuk autentikasi akun layanan.
Untuk memeriksa apakah resource organisasi Anda memiliki perilaku lama:
Di konsol Google Cloud , buka halaman Organization policies:
Di pemilih resource, pilih resource organisasi yang ingin Anda periksa.
Di kotak filter, masukkan
constraints/appengine.enforceServiceAccountActAsCheck.Jika kebijakan muncul, resource organisasi memiliki perilaku lama.
Ulangi langkah 3 dan 4 untuk setiap batasan berikut:
appengine.enforceServiceAccountActAsCheckdataflow.enforceComputeDefaultServiceAccountCheckdataproc.enforceComputeDefaultServiceAccountCheckcomposer.enforceServiceAccountActAsCheck
Jika salah satu batasan ini muncul, resource organisasi Anda menggunakan perilaku lama. Jika kedua resource organisasi menggunakan perilaku lama, Anda tidak perlu melakukan tindakan apa pun, tetapi pertimbangkan untuk menerapkan kebijakan guna mencegah peniruan identitas yang tidak diinginkan.
Memigrasikan project dengan BigQuery sharing
Jika Anda memigrasikan project yang menggunakan BigQuery sharing ke resource organisasi lain, Anda mungkin mengalami error. Untuk menyelesaikannya, hubungi Cloud Customer Care.
Jika resource pertukaran data dari organisasi sebelumnya tidak terlihat di halaman Sharing administrator organisasi baru, gunakan BigQuery sharing API untuk memperbarui kolom (misalnya, description) guna memicu pemuatan ulang cache.
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: ID unik project
- LOCATION: lokasi pertukaran data
- DATA_EXCHANGE_ID: ID pertukaran data
- UPDATE_DX_FIELD: kolom yang akan diupdate, seperti
description - UPDATE_DX_VALUE: nilai yang diperbarui
Backup and DR Service
Nonaktifkan Backup and DR sebelum Anda memigrasikan project ke resource organisasi yang berbeda. Pertimbangkan risiko pemadaman layanan saat layanan dinonaktifkan. Aktifkan kembali Backup and DR setelah migrasi selesai.
Workload Identity Federation
Workload Identity Federation memungkinkan Anda memberikan akses workload lokal atau multi-cloud ke resource Google Cloud . Workload Identity Federation pool adalah resource yang tercakup dalam project.
Saat Anda memigrasikan project, workload identity pool dan penyedianya yang dikonfigurasi dalam project tersebut akan dimigrasikan bersama project. Anda tidak perlu melakukan tindakan tambahan apa pun untuk mempertahankan akses bagi workload yang menggunakan pool ini.
Tag
Tag adalah key-value pair yang dilampirkan ke resource. Tag yang dibuat di level organisasi tidak dimigrasikan.
Jika project Anda menggunakan tag tingkat organisasi untuk binding atau batasan kebijakan, Anda harus membuat ulang kunci dan nilai tag di resource organisasi tujuan dan memasangnya kembali ke project yang dimigrasikan.
Memigrasikan project dengan pemberian Privileged Access Manager yang diwariskan
Sebelum memigrasikan project, sebaiknya Anda mencabut semua pemberian akses tercakup yang aktif pada project tersebut. Pemberian peran tercakup dibuat pada hak yang diwarisi dari folder atau organisasi, lalu dicakupkan ke project turunan.
Saat Anda memigrasikan project dengan pemberian cakupan aktif, kebijakan IAM akan berpindah ke organisasi baru, tetapi pemberian yang mengelolanya tetap berada di organisasi sebelumnya. Agen layanan Privileged Access Manager kehilangan izin untuk mengubah kebijakan IAM di organisasi baru. Akibatnya, setiap operasi pencabutan atau penarikan pada pemberian akses tersebut akan gagal, dan pemohon akan tetap memiliki akses hingga masa berlaku pemberian akses berakhir.