Panduan ini menjelaskan cara menggunakan Cloud Asset Inventory Analyze Move API untuk mendapatkan laporan mendetail tentang peringatan dan pemblokir dari daftar sistem kebijakan penting sebelum benar-benar memindahkan project Anda.
Mengaktifkan API
Pilih atau buat project sebagai project konsumen API Anda, aktifkan Cloud Asset API
Project konsumen ini dapat berbeda dengan project yang akan Anda analisis dan migrasikan. Project konsumen akan digunakan untuk membuat kredensial guna membuat permintaan API.
Bagian berikutnya menjelaskan peran dan izin yang diperlukan yang harus diberikan pada project sumber yang akan Anda analisis.
Izin yang diperlukan
Untuk melakukan analisis pemindahan project, Anda memerlukan peran yang memberikan izin cloudasset.assets.analyzeMove
, seperti Cloud Asset Viewer atau Viewer.
Untuk menerima analisis pada layanan, Anda juga memerlukan peran yang terkait dengan layanan tersebut. Izin ini mencakup hal berikut:
Jika ingin melihat kebijakan izin yang diwariskan dari resource organisasi induk project sumber, Anda memerlukan izin
resourcemanager.organizations.getIamPolicy
di resource organisasi induk project sumber.Jika Anda ingin melihat kebijakan izinkan yang diwarisi dari folder induk project sumber, Anda memerlukan izin
resourcemanager.folders.getIamPolicy
pada folder induk project sumber.Jika ingin melihat kebijakan izin di project, Anda memerlukan izin
resourcemanager.projects.getIamPolicy
di project sumber.Jika Anda ingin melihat kebijakan penolakan yang diwarisi dari resource organisasi induk project sumber, Anda memerlukan izin
iam.denypolicies.get
pada resource organisasi induk project sumber.Jika ingin melihat kebijakan organisasi yang diwariskan di project ini, Anda memerlukan izin
orgpolicy.policy.get
di project sumber.Jika ingin melihat kebijakan firewall Compute Engine yang diwariskan di project ini, Anda memerlukan izin
compute.organizations.setSecurityPolicy
pada resource folder atau organisasi sumber.Jika ingin melihat tag yang diwariskan di project ini, Anda memerlukan izin
resourcemanager.hierarchyNodes.listEffectiveTags
di project sumber atau node induknya.
Melakukan analisis
Anda dapat menggunakan Google Cloud CLI atau API untuk menganalisis migrasi resource dari tempatnya saat ini dalam hierarki resource.
gcloud
Untuk menganalisis dampak migrasi project dari posisi saat ini dalam hierarki resource, gunakan perintah gcloud asset analyze-move
:
gcloud asset analyze-move --project=PROJECT_ID \ (--destination-folder=FOLDER_ID \ | --destination-organization=ORGANIZATION_ID)
Untuk menganalisis dampak pemindahan project ke folder lain, jalankan perintah dengan --destination-folder
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-folder=FOLDER_ID
Untuk menganalisis dampak pemindahan project ke organisasi lain,
jalankan perintah dengan --destination-organization
:
gcloud asset analyze-move --project=PROJECT_ID \ --destination-organization=ORGANIZATION_ID
Dengan:
PROJECT_ID
adalah project ID unik dari project yang Anda migrasikan. Contoh,--myProject123
.FOLDER_ID
adalah ID folder numerik dari folder tujuan tempat analisis akan dilakukan. Contoh,45678901123
.ORGANIZATION_ID
adalah ID organisasi numerik organisasi tujuan tempat analisis akan dilakukan. Contoh,78901123456
.
API
Untuk menganalisis dampak migrasi project dari posisi saat ini dalam hierarki resource tanpa melakukan pemindahan, gunakan metode cloudasset.analyzeMove:
GET https://cloudasset.googleapis.com/v1/{resource=*/*}: \ analyzeMove?destinationParent=DESTINATION_NAME
Dengan:
resource
adalah nama resource yang akan dianalisis. Hanya resource project yang didukung, jadi ini harus berupa ID Project atau Nomor Project. Misalnya,projects/my-project-id
atauprojects/12345
.DESTINATION_NAME
adalah nama resource folder atau organisasiGoogle Cloud untuk mengubah induk resource target. Analisis akan dilakukan pada dampak pemindahan resource ke induk tujuan yang ditentukan. Tujuan harus berupa nomor folder atau nomor resource organisasi. Misalnya,folders/123
atauorganizations/123
.
Memindahkan respons analisis
Respons yang Anda terima dari Move Analysis API dikelompokkan berdasarkan nama layanan. Di bawah setiap layanan terdapat daftar peringatan dan penghambat yang berlaku untuk migrasi project ini. Setiap pemblokir yang ditampilkan oleh analisis ini berarti migrasi project akan diblokir saat runtime jika Anda melanjutkan pemindahan sebelum menyelesaikannya.
Pemecahan masalah terkait error
Jika ada error yang ditampilkan oleh Move Analysis API, error tersebut akan menyertakan kode gRPC standar, serta pesan yang menjelaskan alasan kegagalan Move Analysis API dalam menganalisis project.
Tabel berikut menjelaskan kode error yang berpotensi ditampilkan oleh Move Analysis API:
Nama error | Kode error | Deskripsi |
---|---|---|
Argumen tidak valid | 3 | Ditampilkan jika Anda memanggil API di project dengan argumen tidak valid, seperti nama resource yang salah. |
Izin ditolak | 7 | Ditampilkan jika Anda tidak memiliki izin yang diperlukan untuk melakukan analisis atau project sumber tidak ada. |
Internal | 13 | Ditampilkan jika ada masalah dengan panggilan ke sistem kebijakan seperti Identity and Access Management atau kebijakan organisasi. Hal ini tidak menunjukkan bahwa migrasi tidak mungkin dilakukan, dan Anda dapat mencoba lagi analisis setelah memeriksa apakah layanan mengalami gangguan. |
Tidak tersedia | 14 | Ditampilkan jika sistem internal tidak sinkron. Hal ini tidak menunjukkan bahwa migrasi tidak mungkin dilakukan, dan Anda dapat mencoba lagi analisis. |
Tidak diautentikasi | 16 | Ditampilkan jika Anda belum memberikan kredensial yang benar untuk melakukan analisis ini. |
Contoh pesan error
Contoh berikut menunjukkan kode error yang ditampilkan untuk pengguna yang tidak memiliki izin cloudasset.assets.analyzeMove
pada project yang akan dimigrasikan:
{
"error": {
"code": 403,
"message": "Failed to fetch Project: projects/test-project-service-3 to perform
move analysis.",
"status": "PERMISSION_DENIED"}
}
Beberapa sistem kebijakan mungkin gagal menganalisis pemindahan resource. Contoh berikut menunjukkan error yang ditampilkan dari layanan Firewall Hierarkis saat pengguna tidak memiliki izin compute.organizations.setSecurityPolicy
pada project yang akan dimigrasikan:
{
"moveAnalysis": [{
"displayName": "name hidden",
"analysis": {
"warnings": [{
"detail": "details hidden"
}]
}
}, {
"displayName": "name hidden",
"analysis": {
"warnings": [{
"detail": "details hidden"
}]
}
}, {
"displayName": "Hierarchical Firewall",
"error": {
"code": 7,
"message": "Failed to retrieve inherited security policies to perform
analysis. Required 'compute.organizations.setSecurityPolicy'
permission for {resource ID}"
}}]
}
Langkah berikutnya
Move Analysis API memberikan detail yang membantu mengurangi pemblokir dan masalah lainnya saat memindahkan project dari satu resource organisasi ke resource organisasi lainnya. Untuk informasi selengkapnya tentang memigrasikan project di antara resource organisasi, lihat Memigrasikan project.