Halaman ini menjelaskan cara mengonfigurasi project Anda sehingga Deployment Manager dapat membuat instance virtual machine Compute Engine menggunakan image sistem operasi yang dimiliki project lain.
Misalnya, anggaplah Anda memiliki project bernama Project Keren tempat Deployment Manager membuat dan mengelola instance VM. Sekarang, anggaplah Anda perlu menggunakan image pribadi yang dimiliki project lain bernama Image Database.
Untuk memberikan akses ke image ini, pemilik Image Database harus memberikan
peran IAM roles/compute.imageUser ke
akun layanan Google API
Project Keren, dan Project Keren kemudian dapat menggunakan image dari project Image
Database.
Anda juga dapat menggunakan proses ini untuk memberikan akses grup instance terkelola ke image dari project lain.
Sebelum memulai
- Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line `gcloud`.
- Jika Anda ingin menggunakan contoh API dalam panduan ini, siapkan akses API.
- Baca tentang konfigurasi Deployment Manager konfigurasi.
- Baca tentang image pribadi Compute Engine .
- Baca tentang dokumentasi Identity and Access Management (IAM).
- Baca tentang peran IAM Deployment Manager,
khususnya peran
roles/compute.imageUser.
Batasan
Berikut adalah batasan untuk menggunakan fitur ini:
- Anda harus memberikan peran
compute.imageUserdi tingkat project ke akun layanan Google API project Anda. - Memberikan peran
compute.imageUserakan memberikan izin ke semua image dalam project tertentu. Anda tidak dapat membagikan image tertentu. - Anda harus memberikan peran ini kepada pengguna tertentu, bukan ke
allAuthenticatedUsersatauallUsers.
Memberikan akses ke image
Untuk memberikan akses ke image yang dimiliki project lain, pemilik project yang memiliki image harus memberikan akses ke akun layanan Google API project yang ingin menggunakan image tersebut.
- Buka halaman IAM di Google Cloud konsol project yang memerlukan akses ke image pribadi yang dimiliki project lain.
- Jika diminta, pilih project Anda dari daftar. Ingatlah untuk memilih project yang memerlukan akses ke image yang disimpan di project lain.
Cari akun layanan Google API, yang memiliki alamat email dalam format berikut:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.comCatat alamat email di atas. Selanjutnya, pemilik project tempat image yang diinginkan berada dapat memberikan peran
roles/compute.imageUserke akun layanan Google API.Konsol
- Saat masih berada di Google Cloud konsol, buka halaman IAM project yang berisi image yang ingin Anda akses.
- Pilih project dari daftar project.
- Klik tombol Add untuk menambahkan anggota baru.
- Di kotak Members, masukkan alamat email akun layanan.
- Luaskan dropdown Roles , lalu pilih Compute Engine > Compute Image User.
- Klik Add untuk menambahkan akun.
gcloud
Dengan Google Cloud CLI, tambahkan binding ke kebijakan IAM untuk project:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/compute.imageUserdengan:
[PROJECT_ID]adalah ID project yang berisi image yang ingin Anda bagikan.[SERVICE_ACCOUNT_EMAIL]adalah email akun layanan.
Contoh:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/compute.imageUserAPI
Di API, buat permintaan
POSTke URL berikut, dengan[PROJECT_ID]adalah ID project yang berisi image yang ingin Anda bagikan.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicyIsi permintaan harus berisi daftar binding yang ingin Anda terapkan ke project ini. Peran
roles/compute.imageUserharus menjadi bagian dari binding. Contoh:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com" ] }, { "role": "roles/compute.imageUser", "members": [ "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] }}
Menggunakan image dari project lain dalam konfigurasi Anda
Setelah project diberi akses ke image dari project lain, pengguna project dapat menggunakan image dengan menentukan project ID project yang memiliki image dalam template atau konfigurasi Anda:
image: projects/[PROJECT_ID]/global/images/[IMAGE_NAME]
Misalnya, jika project ID image adalah database-images, Anda dapat memberikan URI image berikut dalam konfigurasi Anda:
resources:
- name: a-special-vm
type: compute.v1.instances
properties:
machineType: zones/us-central1-a/machineTypes/f1-micro
image: projects/database-images/global/images/example-database-image
...Setelah menambahkan image, selesaikan pembuatan konfigurasi, lalu deploy.
Apa langkah selanjutnya?
- Pelajari lebih lanjut cara membagikan image.
- Pelajari lebih lanjut image Compute Engine images.
- Baca tentang peran IAM lain yang dapat Anda berikan.
- Pelajari selengkapnya tentang akun layanan.