Dokumen ini menjelaskan prasyarat untuk mengimpor dan mengekspor image di Compute Engine.
Anda dapat berbagi instance virtual machine (VM), file disk virtual, dan image mesin dari lingkungan cloud lain atau dari lingkungan lokal dengan mengimpor dan mengekspor image dari Cloud Storage. Checklist berikut merangkum persyaratan yang harus Anda penuhi sebelum mengimpor dan mengekspor image:
- Menyiapkan akses ke bucket Cloud Storage
- Memberikan peran yang diperlukan ke akun pengguna Anda
- Memberikan peran yang diperlukan ke akun layanan Cloud Build
- Memberikan peran yang diperlukan ke akun layanan Compute Engine
Sebelum memulai
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Jika Anda mengekspor image, alat ekspor akan mengupload image tersebut ke bucket Cloud Storage.
Jika Anda hendak mengimpor image, Anda harus mengupload image tersebut ke bucket Cloud Storage terlebih dahulu. Alat impor akan mendownload file dari bucket Cloud Storage ke Compute Engine, lalu alat ini akan membuat image di Compute Engine dari file disk tersebut.
- Akun pengguna. Akun tempat Anda menjalankan perintah impor dan ekspor.
- Akun layanan Cloud Build. Akun layanan Cloud Build default yang dibuat saat alat impor atau ekspor mengaktifkan Cloud Build API.
- Akun layanan Compute Engine Akun layanan Compute Engine default atau khusus kyang diperlukan untuk alur kerja impor dan ekspor.
- Peran Storage Admin (
roles/storage.admin
) - Peran Viewer (
roles/viewer
) - Peran Admin IAM Project (
roles/resourcemanager.projectIamAdmin
) - Peran Editor Cloud Build (
roles/cloudbuild.builds.editor
) Buka halaman IAM & Admin untuk project atau organisasi.
Cari akun Anda dan klik
Edit.Di daftar Select a role, pilih peran berikut:
- Cloud Storage > Storage Admin
- Project > Viewer
- Resource Manager > Project IAM Admin
- Cloud Build > Cloud Build Editor
Simpan perubahan Anda.
Berikan peran
roles/storage.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/storage.admin'
Ganti kode berikut:
PROJECT_ID
: project ID Google Cloud untuk project AndaMEMBER
: akun yang menjalankan perintah impor dan ekspor—misalnya,user:export-user@gmail.com
Berikan peran
roles/viewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/viewer'
Berikan peran
roles/resourcemanager.projectIamAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/resourcemanager.projectIamAdmin'
Berikan peran
roles/cloudbuild.builds.editor
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='MEMBER' \ --role='roles/cloudbuild.builds.editor'
Baca kebijakan yang ada dengan metode
getIamPolicy
resource. Untuk project, gunakan metodeprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ganti
PROJECT_ID
dengan project ID, misalnya,my-project-1
.Untuk memberikan peran yang diperlukan ke akun Anda, edit kebijakan dengan editor teks.
Misalnya, untuk memberikan peran yang diperlukan ke akun
user:export-user@gmail.com
Anda, tambahkan binding berikut ke kebijakan:{ { "role":"roles/storage.admin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/viewer", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/resourcemanager.projectIamAdmin", "member":[ "user:export-user@gmail.com" ] } { "roles":"roles/cloudbuild.builds.editor", "member":[ "user:export-user@gmail.com" ] } }
Untuk menulis kebijakan yang telah diperbarui, gunakan metode
setIamPolicy
.Misalnya, untuk menetapkan kebijakan di level project, gunakan metode
project.setIamPolicy
. Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Peran Service Account Token Creator
(
roles/iam.serviceAccountTokenCreator
) - Peran Service Account User
(
roles/iam.serviceAccountUser
) - Peran Compute Admin(
roles/compute.admin
)Agar tidak memberikan peran Compute Admin, Anda dapat membuat peran khusus dengan izin IAM Compute Engine berikut dan memberikannya ke akun layanan Cloud Build.
- Peran Compute Network User (
roles/compute.networkUser
)Peran ini hanya diperlukan saat Anda mengimpor atau mengekspor image yang menggunakan VPC Bersama.
Di project VPC Bersama, berikan peran Compute Network User kepada akun layanan Cloud Build yang berada di project tempat Anda mengimpor atau mengekspor image.
Setelah mengaktifkan Cloud Build API, buka halaman IAM & Admin untuk project atau organisasi.
Temukan akun layanan Cloud Build, lalu klik
Edit.Jika peran yang diperlukan tidak tercantum, lakukan hal berikut:
- Klik Add another role.
Di daftar Select a role, pilih peran wajib yang ingin Anda tambahkan:
- Service Account > Service Account Token Creator
- Service Account > Service Account User
Compute Engine > Compute Admin
Atau, Anda dapat memilih peran Custom. Lihat bagian awal Izin yang diperlukan untuk peran khusus dalam dokumen ini.
Klik Save untuk menyimpan perubahan.
Opsional: Jika Anda mengimpor atau mengekspor image yang menggunakan VPC Bersama, pilih peran Compute Network User di project VPC Bersama:
- Dari pemilih project di bagian atas konsol, pilih project host VPC Bersama.
- Di halaman IAM & Admin, klik Grant access.
- Pada kolom New principals, masukkan alamat email
akun layanan Cloud Build:
GantiPROJECT_NUMBER@cloudbuild.gserviceaccount.com'
PROJECT_NUMBER
dengan nomor unik project tempat Anda mengimpor atau mengekspor gambar. - Dalam daftar Select a role, pilih Compute Engine > peran Compute Network User.
- Klik Save untuk menyimpan perubahan.
Berikan peran
roles/compute.admin
ke akun layanan Cloud Build. Agar tidak memberikan peranroles/compute.admin
, Anda dapat membuat peran khusus dengan izin yang diperlukan, lalu berikan peran tersebut ke akun layanan Cloud Build. Lihat bagian awal Izin yang diperlukan untuk peran khusus dalam dokumen ini.gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.admin'
Ganti kode berikut:
PROJECT_ID
: project ID Google Cloud untuk project AndaPROJECT_NUMBER
: nomor project Google Cloud untuk project Anda
Berikan peran
roles/iam.serviceAccountUser
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountUser'
Berikan peran
roles/iam.serviceAccountTokenCreator
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
Opsional: Jika Anda mengekspor atau mengimpor image yang menggunakan VPC Bersama, berikan peran
roles/compute.networkUser
:gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER@cloudbuild.gserviceaccount.com' \ --role='roles/compute.networkUser'
Ganti kode berikut:
HOST_PROJECT_ID
: ID project host tempat VPC Bersama beradaPROJECT_NUMBER
: nomor unik project tempat Anda mengimpor atau mengekspor image
Baca kebijakan yang ada dengan metode
getIamPolicy
resource. Untuk project, gunakan metodeprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ganti
PROJECT_ID
dengan project ID, misalnya,my-project-1
.Untuk memberikan peran yang diperlukan ke akun Anda, edit kebijakan dengan editor teks.
Misalnya, untuk memberikan peran yang diperlukan ke
serviceAccount:12345@cloudbuild.gserviceaccount.com
, tambahkan binding berikut ke kebijakan:{ { "role":"roles/compute.admin", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } { "roles":"roles/iam.serviceAccountTokenCreator", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Untuk menghindari pemberian peran
roles/compute.admin
, Anda dapat membuat peran khusus dengan izin yang diperlukan, lalu berikan peran tersebut ke akun layanan Cloud Build. Lihat bagian awal Izin yang diperlukan untuk peran khusus dalam dokumen ini.Opsional: Jika Anda mengekspor atau mengimpor image yang menggunakan VPC Bersama, berikan peran
roles/compute.networkUser
pada project VPC Bersama.POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:getIamPolicy
Ganti
HOST_PROJECT_ID
dengan ID project VPC Bersama.Tambahkan binding IAM berikut ke akun layanan Cloud Build:
{ { "roles":"roles/compute.networkUser", "member":[ "serviceAccount:12345@cloudbuild.gserviceaccount.com" ] } }
Untuk menulis kebijakan yang telah diperbarui, gunakan metode
setIamPolicy
.Misalnya, untuk menetapkan kebijakan di level project, gunakan metode
project.setIamPolicy
. Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Peran Compute Storage Admin
(
roles/compute.storageAdmin
): diperlukan untuk mengekspor dan mengimpor image VM - Peran Storage Object Viewer
(
roles/storage.objectViewer
): diperlukan untuk mengimpor image VM - Peran Storage Object Admin
(
roles/storage.objectAdmin
): diperlukan untuk mengekspor image VM Buka halaman IAM & Admin untuk project atau organisasi.
Temukan akun layanan Compute Engine, lalu klik
Edit.Di daftar Select a role, pilih peran berikut:
- Compute Engine > Compute Storage Admin
- Cloud Storage > Storage Object Viewer
- Cloud Storage > Storage Object Admin
Simpan perubahan Anda.
Berikan peran
roles/compute.storageAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/compute.storageAdmin'
Jika Anda mengimpor image, berikan peran
roles/storage.objectViewer
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectViewer'
Jika Anda mengekspor image, berikan peran
roles/storage.objectAdmin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com' \ --role='roles/storage.objectAdmin'
Baca kebijakan yang ada dengan metode
getIamPolicy
resource. Untuk project, gunakan metodeprojects.getIamPolicy
.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
Ganti
PROJECT_ID
dengan project ID, misalnya,my-project-1
.Untuk memberikan peran yang diperlukan ke akun Anda, edit kebijakan dengan editor teks.
Misalnya, untuk memberikan peran yang diperlukan kepada
serviceAccount:12345-compute@developer.gserviceaccount.com
untuk mengimpor image, tambahkan binding berikut ke kebijakan:{ { "role":"roles/compute.storageAdmin", "member":[ "serviceAccount:12345-compute@developer.gserviceaccount.com" ] } { "roles":"roles/storage.objectViewer", "member":[ "serviceAccount:12345-compute@developer.gserviceaccount.com" ] } }
Untuk menulis kebijakan yang telah diperbarui, gunakan metode
setIamPolicy
.Misalnya, untuk menetapkan kebijakan di level project, gunakan metode
project.setIamPolicy
. Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya.POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
- Mengimpor disk virtual dengan akun layanan khusus
- Mengimpor peralatan virtual dengan akun layanan khusus
- Mengimpor image mesin dari peralatan virtual dengan akun layanan khusus
- Mengekspor image khusus dengan akun layanan khusus
- Mengekspor image khusus ke Cloud Storage.
- Membagikan image Anda ke seluruh project.
- Memilih metode impor.
- Mengimpor disk virtual
- Mengimpor perangkat virtual
- Mengimpor image mesin dari perangkat virtual
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Menyiapkan akses ke bucket Cloud Storage
Anda harus memiliki akses ke bucket Cloud Storage yang dapat digunakan oleh alat impor atau ekspor. Jika Anda tidak memiliki bucket Cloud Storage, lihat artikel Membuat bucket Cloud Storage.
Untuk menyiapkan akses ke bucket Cloud Storage, lihat artikel Memberikan peran yang diperlukan ke akun Anda dan akun layanan Compute Engine.
Memberikan peran IAM yang diperlukan
Alat impor dan ekspor image VM memerlukan akun berikut untuk menjalankan operasi atas namanya:
Memberikan peran yang diperlukan ke akun pengguna Anda
Untuk mengimpor atau mengekspor image, akun pengguna Anda memerlukan peran berikut:
Konsol
gcloud
Pada langkah-langkah berikut, Anda akan menggunakan perintah
gcloud projects add-iam-policy-binding
untuk memberikan peran yang diperlukan di level project.REST
Memberikan peran yang diperlukan ke akun layanan Cloud Build
Saat Anda menggunakan konsol Google Cloud atau gcloud CLI guna mengimpor atau mengekspor image untuk pertama kalinya, alat ini akan mencoba mengaktifkan Cloud Build API dan memberikan peran yang diperlukan ke akun layanan Cloud Build.
Namun, Anda dapat memberikan peran ini secara manual untuk memastikan bahwa izin yang diperlukan berlaku:
Konsol
gcloud
Pada langkah-langkah berikut, Anda akan menggunakan perintah
gcloud projects add-iam-policy-binding
untuk memberikan peran yang diperlukan di level project.REST
Untuk mengetahui informasi selengkapnya tentang cara mengelola akses ke resource, lihat Memberikan, mengubah, dan mencabut akses ke resource.
Memberikan peran yang diperlukan ke akun layanan Compute Engine
Saat Anda menggunakan konsol Google Cloud atau gcloud CLI guna mengimpor atau mengekspor image untuk pertama kalinya, alat ini akan mencoba memberikan peran yang diperlukan ke akun layanan Compute Engine default.
Bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin secara otomatis diberi peran Editor di project Anda. Sebaiknya Anda menonaktifkan pemberian peran otomatis dengan menerapkan batasan kebijakan organisasi
iam.automaticIamGrantsForDefaultServiceAccounts
. Jika Anda membuat organisasi setelah 3 Mei 2024, batasan ini akan diterapkan secara default.Jika Anda menonaktifkan pemberian peran otomatis, Anda harus menentukan peran mana yang akan diberikan ke akun layanan default, lalu memberikan peran tersebut secara manual.
Jika akun layanan default sudah memiliki peran Editor, sebaiknya ganti peran Editor dengan peran yang kurang permisif.Untuk mengubah peran akun layanan dengan aman, gunakan Policy Simulator untuk melihat dampak perubahan, lalu berikan dan cabut peran yang sesuai.
Akun layanan Compute Engine Anda harus memiliki peran berikut:
Konsol
gcloud
Pada langkah-langkah berikut, Anda akan menggunakan perintah
gcloud projects add-iam-policy-binding
untuk memberikan peran yang diperlukan di level project.REST
Jika tidak ingin menggunakan akun layanan Compute Engine default, Anda dapat menentukan akun layanan yang dikelola pengguna menggunakan flag
--compute-service-account
dalamgcloud
perintah impor dan ekspor. Untuk mengetahui informasi lebih lanjut tentang penggunaan akun layanan Compute Engine khusus, lihat referensi berikut:Langkah berikutnya
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-22 UTC.
-