Mengelola akses ke gambar kustom

Agar pengguna dapat membuat, menghapus, menggunakan, atau membagikan image kustom Anda, Anda harus memberi mereka peran Identity and Access Management (IAM) yang sesuai. Dokumen ini menjelaskan izin IAM yang diperlukan untuk membuat dan mengelola gambar kustom serta cara memberikannya kepada pengguna.

Untuk mengetahui informasi umum tentang cara memberikan akses ke resource Compute Engine, lihat Mengelola akses ke resource Compute Engine. Untuk mengetahui informasi tentang IAM, baca dokumentasi IAM.

Sebelum memulai

  • Baca dokumentasi IAM.
  • Baca tentang peran IAM Compute Engine, khususnya peran Pengguna Image Compute (roles/compute.imageUser).
  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi memverifikasi identitas Anda untuk mengakses Google Cloud layanan dan API. Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi 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

    1. Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    2. Set a default region and zone.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI.

      Menginstal Google Cloud CLI. Setelah penginstalan, lakukan inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init

      Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola akses ke image kustom, minta administrator Anda untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola akses ke image kustom. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola akses ke image kustom:

  • Untuk memberikan izin yang diperlukan kepada pengguna atau akun layanan untuk membuat dan membagikan image kustom:
    • resourcemanager.projects.getIamPolicy pada project
    • resourcemanager.projects.setIamPolicy pada project
  • Untuk memberi pengguna atau akun layanan izin yang diperlukan untuk menghapus image kustom:
    • resourcemanager.projects.getIamPolicy pada project
    • resourcemanager.projects.setIamPolicy pada project
    • compute.images.getIamPolicypada gambar
    • compute.images.setIamPolicy pada gambar
  • Untuk mencabut akses pengguna atau akun layanan ke image kustom:
    • resourcemanager.projects.getIamPolicy pada project
    • resourcemanager.projects.setIamPolicy pada project
  • Untuk membuat instance menggunakan image bersama:
    • compute.instances.create pada project
    • Untuk menggunakan image kustom guna membuat VM: compute.images.useReadOnly pada image
    • Untuk menggunakan snapshot untuk membuat VM: compute.snapshots.useReadOnly pada snapshot
    • Untuk menggunakan template instance guna membuat VM: compute.instanceTemplates.useReadOnly di template instance
    • Untuk menetapkan jaringan lama ke VM: compute.networks.use pada project
    • Untuk menentukan alamat IP statis untuk VM: compute.addresses.use di project
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan lama: compute.networks.useExternalIp di project
    • Untuk menentukan subnet bagi VM: compute.subnetworks.use pada project atau pada subnet yang dipilih
    • Untuk menetapkan alamat IP eksternal ke VM saat menggunakan jaringan VPC: compute.subnetworks.useExternalIp di project atau di subnet yang dipilih
    • Untuk menetapkan metadata instance VM untuk VM: compute.instances.setMetadata di project
    • Untuk menyetel tag untuk VM: compute.instances.setTags di VM
    • Untuk menyetel label VM: compute.instances.setLabels di VM
    • Untuk menyetel akun layanan yang akan digunakan VM: compute.instances.setServiceAccount di VM
    • Untuk membuat disk baru untuk VM: compute.disks.create di project
    • Untuk memasang disk yang ada dalam mode hanya baca atau baca-tulis: compute.disks.use pada disk
    • Untuk memasang disk yang ada dalam mode hanya baca: compute.disks.useReadOnly pada disk

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Batasan

Pada gambar, Anda tidak dapat memberikan peran ke jenis anggota khusus allUsers.

Memberi izin untuk membuat gambar kustom

Anda dapat memberi pengguna kemampuan untuk membuat image kustom di organisasi atau project Anda.

Compute Engine menawarkan peran Compute Storage Admin (roles/compute.storageAdmin) yang telah ditentukan sebelumnya yang dapat Anda tetapkan kepada pengguna agar mereka dapat membuat, menghapus, dan mengelola resource terkait penyimpanan, termasuk image, disk, dan snapshot. Jika Anda memerlukan peran yang hanya mengizinkan pembuatan gambar, Anda harus membuat peran khusus. Dalam peran kustom, sertakan izin berikut:

  • compute.images.create untuk membuat gambar baru
  • compute.images.list untuk mencantumkan image dalam project
  • compute.disks.use jika image dibuat dari disk
  • compute.disks.list jika pengguna perlu mencantumkan semua disk dalam project

Jika Anda memberi pengguna kemampuan untuk membuat image kustom di tingkat organisasi, pengguna tersebut dapat membuat image kustom untuk project apa pun dalam organisasi.

Konsol

  1. Di konsol Google Cloud , buka halaman IAM untuk project atau organisasi.

    Buka IAM

  2. Untuk menambahkan anggota baru, klik Berikan akses.

  3. Di kolom New principals, masukkan alamat email identitas yang ingin Anda beri akses.

    Contoh:

  4. Dalam daftar Select a role, pilih Compute Engine > Compute Storage Admin, atau pilih peran khusus jika Anda membuatnya.

  5. Opsional: Untuk mengontrol lebih lanjut akses pengguna ke resource Google Cloud , tambahkan binding peran kondisional.

  6. Simpan perubahan.

gcloud

Untuk memberikan peran roles/compute.storageAdmin di tingkat organisasi, gunakan perintah gcloud organizations add-iam-policy-binding:

gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member='MEMBER' \
    --role='roles/compute.storageAdmin'

Untuk memberikan peran roles/compute.storageAdmin di level project, gunakan perintah gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='MEMBER' \
    --role='roles/compute.storageAdmin'

Ganti kode berikut:

  • ORGANIZATION_ID atau PROJECT_ID: ID organisasi atau project ID—misalnya, my-organization-1 atau my-project-1
  • MEMBER: identitas valid yang ingin Anda berikan peran

    Contoh:

REST

  1. Baca kebijakan yang ada dengan metode getIamPolicy resource. Untuk project, gunakan metode projects.getIamPolicy.

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Ganti PROJECT_ID dengan project ID, misalnya, my-project-1.

    Untuk organisasi, gunakan metode organizations.getIamPolicy.

    POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
    

    Ganti ORGANIZATION_ID dengan ID organisasi, misalnya, 123456578920.

    Compute Engine menampilkan kebijakan saat ini dalam respons.

  2. Untuk menambahkan atau menghapus anggota dan peran terkait, edit kebijakan dengan editor teks. Gunakan format berikut untuk menambahkan anggota:

    Misalnya, untuk memberikan peran roles/compute.storageAdmin ke group:[email protected], tambahkan binding berikut ke kebijakan:

    {
     "members": [
       "group:[email protected]"
     ],
     "role":"roles/compute.storageAdmin"
    }
    
  3. Tulis kebijakan yang telah diperbarui menggunakan 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
    

    Ganti PROJECT_ID dengan project ID.

Memberikan izin untuk menghapus gambar kustom

Bergantung pada kebutuhan Anda, Anda dapat memberi pengguna izin untuk melakukan hal berikut:

  • Menghapus gambar tertentu
  • Menghapus gambar yang dimiliki oleh project tertentu
  • Menghapus gambar untuk project apa pun dalam organisasi

Memberikan izin di tingkat project memungkinkan pengguna menghapus semua gambar yang dimiliki oleh project tersebut. Memberikan izin di tingkat organisasi memungkinkan pengguna menghapus gambar apa pun yang dimiliki oleh organisasi tersebut, terlepas dari projectnya.

Compute Engine menawarkan peran Compute Storage Admin yang telah ditentukan sebelumnya (roles/compute.storageAdmin) yang dapat Anda tetapkan kepada pengguna agar mereka dapat membuat, menghapus, dan mengelola resource terkait penyimpanan, termasuk image, disk, dan snapshot. Jika Anda memerlukan peran yang hanya mengizinkan penghapusan gambar, Anda harus membuat peran khusus. Dalam peran khusus Anda, sertakan izin berikut:

  • compute.images.delete untuk menghapus gambar
  • compute.images.list jika pengguna perlu mencantumkan gambar dalam project atau organisasi
  • compute.images.get untuk mendapatkan gambar

Konsol

Untuk memberikan izin menghapus gambar tertentu, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Images.

    Buka Images

  2. Pilih gambar yang ingin Anda beri izin.

  3. Untuk meluaskan kolom izin, klik Tampilkan panel info.

  4. Untuk menambahkan satu atau beberapa anggota, klik Tambahkan akun utama.

  5. Di kolom New principals, masukkan alamat email identitas yang ingin Anda ajak berbagi gambar.

    Contoh:

  6. Di daftar Peran, tahan kursor ke Compute Engine dan pilih Storage Admin, atau pilih peran khusus dari daftar Khusus.

  7. Opsional: Untuk mengontrol lebih lanjut akses pengguna ke resource Google Cloud , tambahkan binding peran kondisional.

  8. Simpan perubahan.

Untuk memberikan izin menghapus gambar untuk project atau organisasi, lakukan hal berikut:

  1. Buka halaman IAM untuk project atau organisasi.

    Buka IAM

  2. Klik Grant access.

  3. Di kolom New principals, masukkan alamat email identitas yang ingin Anda beri akses. Contoh:

  4. Di daftar Peran, tahan kursor ke Compute Engine dan pilih Storage Admin, atau pilih peran khusus dari daftar Khusus.

  5. Opsional: Untuk mengontrol lebih lanjut akses pengguna ke resource Google Cloud , tambahkan binding peran kondisional.

  6. Simpan perubahan.

gcloud

Untuk memberikan izin menghapus image di tingkat organisasi, gunakan perintah gcloud organizations add-iam-policy-binding:

gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member='MEMBER' \
    --role='ROLE'

Untuk memberikan izin menghapus gambar di tingkat project, gunakan perintah gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='MEMBER' \
    --role='ROLE'

Untuk memberikan izin menghapus image tertentu, gunakan perintah gcloud compute images add-iam-policy-binding:

gcloud compute images add-iam-policy-binding IMAGE_NAME \
    --member='MEMBER' \
    --role='ROLE'

Ganti kode berikut:

  • ORGANIZATION_ID atau PROJECT_ID atau IMAGE_NAME: ID organisasi numerik 12 digit, project ID, atau nama gambar—misalnya, 123456578920, my-project-1, atau my-custom-image
  • MEMBER: identitas valid yang ingin Anda berikan peran

    Contoh:

  • ROLE: peran yang akan ditetapkan ke identitas ini, misalnya, peran roles/compute.storageAdmin, atau peran kustom seperti roles/customImageDeletionRole

REST

  1. Baca kebijakan yang ada dengan metode getIamPolicy masing-masing resource. Untuk project, gunakan metode projects.getIamPolicy:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    Ganti PROJECT_ID dengan project ID.

    Untuk organisasi, gunakan metode organizations.getIamPolicy:

    POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:getIamPolicy
    

    Ganti ORGANIZATION_ID dengan ID organisasi numerik 12 digit.

    Untuk gambar tertentu, gunakan metode images.getIamPolicy:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
    

    Ganti kode berikut:

    • PROJECT_ID: the project ID
    • IMAGE_NAME: nama image

    Compute Engine menampilkan kebijakan saat ini dalam respons.

  2. Untuk menambahkan atau menghapus anggota dan peran terkait, Anda dapat mengedit kebijakan dengan editor teks. Gunakan format berikut untuk menambahkan anggota:

    Misalnya, untuk memberikan peran roles/compute.storageAdmin kepada user:[email protected], tambahkan binding berikut ke kebijakan:

    {
     "members": [
       "user:[email protected]"
     ],
     "role":"roles/compute.storageAdmin"
    }
    
  3. Tulis kebijakan yang telah diperbarui menggunakan 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
    

    Ganti PROJECT_ID dengan project ID.

Memberikan izin untuk membagikan gambar kustom dalam organisasi

Jika project Anda termasuk dalam organisasi, organisasi tersebut dapat memiliki beberapa project lain dengan tingkat akses yang bervariasi ke project lain. Saat membuat gambar kustom, Anda dapat membagikan gambar ini kepada pengguna lain dari project lain dalam organisasi.

Compute Engine menawarkan peran IAM bawaan berikut yang dapat Anda gunakan untuk pengelolaan image:

  • Compute Image User (roles/compute.imageUser): izin untuk mencantumkan, membaca, dan menggunakan gambar dalam permintaan Anda, tanpa memiliki izin lain pada gambar tersebut
  • Compute Storage Admin (roles/compute.storageAdmin): izin untuk membuat, memodifikasi, dan menghapus disk, image, dan snapshot

Atau, Anda juga dapat membuat peran IAM kustom sendiri.

Sebagai praktik terbaik, sebaiknya simpan semua gambar kustom Anda dalam satu project yang dikhususkan untuk menghosting gambar ini. Praktik ini meningkatkan pengelolaan gambar tersebut, dan memungkinkan Anda memberikan akses ke tim tertentu hanya untuk gambar yang mereka butuhkan. Anda juga dapat memberikan akses tim ke seluruh project gambar, tetapi karena akses tim ke seluruh project gambar melanggar prinsip hak istimewa terendah, kami tidak merekomendasikannya.

Contoh di bawah menunjukkan cara menambahkan grup sehingga pengguna grup tersebut memiliki akses ke gambar.

Konsol

  1. Di konsol Google Cloud , buka halaman Images.

    Buka Images

  2. Pilih gambar yang ingin Anda bagikan kepada pengguna lain.

  3. Untuk meluaskan kolom izin, klik Tampilkan panel info.

  4. Untuk menambahkan satu atau beberapa anggota, klik Tambahkan akun utama.

  5. Di kolom New principals, masukkan alamat email identitas yang ingin Anda ajak berbagi gambar.

    Contoh:

  6. Di daftar Peran, tahan kursor ke Compute Engine dan pilih Image User atau Storage Admin, atau pilih peran khusus.

  7. Opsional: Untuk mengontrol lebih lanjut akses pengguna ke resource Google Cloud, tambahkan binding peran kondisional.

  8. Simpan perubahan.

Agar pengguna dapat meluncurkan image kustom bersama dari konsol Google Cloud , beri pengguna peran IAM Pelihat (roles/viewer) untuk project image. Pemberian peran ini membantu memastikan bahwa gambar yang dibagikan muncul dalam daftar pilihan gambar.

  1. Di konsol Google Cloud , buka halaman IAM.

    Buka IAM

  2. Klik Grant access.

  3. Di kolom New principals, masukkan alamat email identitas yang ingin Anda ajak berbagi gambar. Contoh:

  4. Di daftar Peran, tahan kursor ke Project dan pilih Pelihat.

  5. Opsional: Untuk mengontrol lebih lanjut akses pengguna ke resource Google Cloud, tambahkan binding peran kondisional.

  6. Simpan perubahan.

gcloud

Untuk memperbarui kebijakan IAM untuk image tertentu, gunakan perintah gcloud compute images add-iam-policy-binding:

gcloud compute images add-iam-policy-binding IMAGE_NAME \
    --member='MEMBER' \
    --role='ROLE'

Ganti kode berikut:

  • IMAGE_NAME: nama gambar—misalnya, custom-centos-8
  • MEMBER: identitas valid yang ingin Anda berikan peran

    Contoh:

  • ROLE: peran yang akan ditetapkan ke identitas ini, seperti roles/compute.imageUser, roles/compute.storageAdmin, atau peran kustom

Secara opsional, untuk mengizinkan pengguna melihat image bersama ini dalam permintaan images.list mereka, beri pengguna peran IAM Pelihat (roles/viewer) untuk project image menggunakan perintah gcloud projects add-iam-policy-binding. Jika Anda tidak memerlukan pengguna Anda untuk dapat melihat daftar gambar yang dibagikan, Anda dapat melewati langkah ini.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='MEMBER' \
    --role='roles/viewer'

REST

  1. Baca kebijakan yang ada dengan metode getIamPolicy resource. Misalnya, untuk mendapatkan kebijakan pada gambar tertentu, gunakan metode images.getIamPolicy:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/IMAGE_NAME:getIamPolicy
    

    Ganti kode berikut:

    • PROJECT_ID: project ID project tempat image ini berada
    • IMAGE_NAME: nama image

    Compute Engine menampilkan kebijakan saat ini dalam respons.

  2. Untuk menambahkan atau menghapus anggota dan peran terkait, edit kebijakan dengan editor teks. Gunakan format berikut untuk menambahkan anggota:

    • user: