Halaman ini menjelaskan cara mengonfigurasi project Anda agar Deployment Manager dapat membuat instance virtual machine Compute Engine menggunakan image sistem operasi yang termasuk dalam project lain.
Misalnya, Anda memiliki project bernama Project Keren tempat Deployment Manager membuat dan mengelola instance VM. Sekarang, misalkan Anda perlu
menggunakan image pribadi yang termasuk dalam project lain bernama Image Database.
Untuk memberikan akses ke image ini, pemilik Database Images harus memberikan
peran IAM roles/compute.imageUser
ke
akun layanan Google API
Project Keren, dan Project Keren kemudian dapat menggunakan image dari project
Database Images.
Anda juga dapat menggunakan proses ini untuk memberikan akses ke gambar dari project lain kepada grup instance terkelola.
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.
- Baca tentang image pribadi Compute Engine.
- Baca dokumentasi Identity and Access Management (IAM).
- Baca tentang peran IAM Deployment Manager,
terutama peran
roles/compute.imageUser
.
Batasan
Berikut adalah batasan untuk menggunakan fitur ini:
- Anda harus memberikan peran
compute.imageUser
di tingkat project ke akun layanan Google API project Anda. - Memberikan peran
compute.imageUser
akan memberikan izin ke semua gambar dalam project tertentu. Anda tidak dapat membagikan gambar tertentu. - Anda harus memberikan peran ini kepada pengguna tertentu, dan bukan kepada
allAuthenticatedUsers
atauallUsers
.
Memberikan akses ke gambar
Untuk memberikan akses ke image yang dimiliki project lain, pemilik project yang memiliki image tersebut harus memberikan akses ke akun layanan Google API project yang ingin menggunakan image tersebut.
- Buka halaman IAM di konsol Google Cloud project yang memerlukan akses ke image pribadi yang dimiliki oleh project lain.
- Jika diminta, pilih project Anda dari daftar. Jangan lupa 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.com
Catat alamat email di atas. Selanjutnya, pemilik project tempat image yang diinginkan berada dapat memberikan peran
roles/compute.imageUser
kepada akun layanan Google API.Konsol
- Saat masih berada di konsol Google Cloud, buka halaman IAM project yang berisi image yang ingin Anda akses.
- Pilih project dari daftar project.
- Klik tombol Tambahkan untuk menambahkan anggota baru.
- Di kotak Anggota, masukkan alamat email akun layanan.
- Luaskan dropdown Roles dan pilih Compute Engine > Compute Image User.
- Klik Tambahkan 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.imageUser
dengan:
[PROJECT_ID]
adalah ID project yang berisi gambar 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.imageUser
API
Di API, buat permintaan
POST
ke URL berikut, dengan[PROJECT_ID]
adalah ID project yang berisi gambar yang ingin Anda bagikan.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
Isi permintaan harus berisi daftar binding yang ingin Anda terapkan ke project ini. Peran
roles/compute.imageUser
harus 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.gservbiceaccount.com" ] } ] }
}
Menggunakan gambar dari project lain dalam konfigurasi Anda
Setelah project diberi akses ke image dari project lain, pengguna project tersebut dapat menggunakan image dengan menentukan project ID project yang memiliki image tersebut dalam template atau konfigurasi Anda:
image: projects/[PROJECT_ID]/global/images/[IMAGE_NAME]
Misalnya, jika project ID image adalah database-images
, Anda dapat menyediakan URI image berikut dalam konfigurasi:
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 gambar, selesaikan pembuatan konfigurasi, lalu deploy.
Apa langkah selanjutnya?
- Pelajari lebih lanjut cara membagikan gambar.
- Pelajari image Compute Engine lebih lanjut.
- Baca tentang peran IAM lain yang dapat Anda berikan.
- Pelajari selengkapnya tentang akun layanan.