Menganalisis pemindahan project

Cloud Asset Inventory Analyze Move API memungkinkan Anda membuat laporan mendetail tentang peringatan dan pemblokir di seluruh sistem kebijakan penting sebelum memindahkan project. Laporan ini membantu Anda mengidentifikasi potensi konflik kebijakan dan menyelesaikan masalah sebelum memulai migrasi.

Mengaktifkan API

Pilih atau buat project sebagai project konsumen API Anda, aktifkan Cloud Asset API

Project konsumen ini dapat berbeda dengan project yang ingin 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 ingin 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. Anda dapat memberikan peran ini pada project, atau pada resource folder atau organisasi induknya.

Untuk menerima analisis tentang suatu layanan, Anda juga memerlukan peran yang terkait dengan layanan tersebut. Izin ini mencakup hal berikut:

  • Jika Anda ingin melihat kebijakan izin yang diwarisi dari resource organisasi induk project sumber, Anda memerlukan izin resourcemanager.organizations.getIamPolicy pada resource organisasi induk project sumber.

  • Jika ingin melihat kebijakan izin yang diwarisi dari folder induk project sumber, Anda memerlukan izin resourcemanager.folders.getIamPolicy pada folder induk project sumber.

  • Jika ingin melihat kebijakan izin pada project, Anda memerlukan izin resourcemanager.projects.getIamPolicy pada 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 diwarisi pada project ini, Anda memerlukan izin orgpolicy.policy.get pada project sumber.

  • Jika ingin melihat kebijakan firewall Compute Engine yang diwarisi pada project ini, Anda memerlukan izin compute.organizations.setSecurityPolicy pada folder sumber atau resource organisasi. Meskipun izin ini berisi "set", izin ini diperlukan untuk mengambil dan melihat kebijakan keamanan yang diwariskan.

  • Jika ingin melihat tag yang diwarisi di project ini, Anda memerlukan izin resourcemanager.hierarchyNodes.listEffectiveTags di project sumber atau node ancestor-nya.

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 posisinya 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 dari organisasi tujuan tempat analisis akan dilakukan. Contoh, 78901123456.

API

Untuk menganalisis dampak migrasi project dari posisinya 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, sehingga harus berupa Project ID atau Nomor Project. Misalnya, projects/my-project-id atau projects/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 atau organizations/123.

Memindahkan respons analisis

Respons yang Anda terima dari Move Analysis API dikelompokkan menurut nama layanan. Di bawah setiap layanan, terdapat daftar peringatan dan pemblokir yang berlaku untuk migrasi project ini. Setiap pemblokir yang ditampilkan oleh analisis ini berarti bahwa migrasi project akan diblokir pada waktu proses 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 pada project dengan argumen yang 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 dapat dilakukan, dan Anda dapat mencoba kembali analisis setelah memeriksa apakah ada pemadaman layanan.
Tidak tersedia 14 Ditampilkan jika sistem internal tidak sinkron. Hal ini tidak menunjukkan bahwa migrasi tidak mungkin dilakukan, dan Anda dapat mencoba kembali 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 mengetahui informasi selengkapnya tentang cara memigrasikan project di antara resource organisasi, lihat Memigrasikan project di antara resource organisasi.