Halaman ini menjelaskan cara menerapkan prinsip hak istimewa terendah dengan memberikan akses ke resource Compute Engine tertentu, bukan memberikan akses ke resource induk seperti project, folder, atau organisasi.
Anda dapat memberikan akses ke resource dengan menetapkan kebijakan Identity and Access Management (IAM) pada resource tersebut. Kebijakan ini akan mengikat satu atau beberapa anggota, seperti pengguna atau akun layanan, ke satu atau beberapa peran. Setiap peran berisi daftar izin yang memungkinkan anggota berinteraksi dengan resource.
Jika Anda memberikan akses ke resource induk (misalnya, ke sebuah project), Anda secara implisit memberikan akses ke semua resource turunannya (misalnya, ke semua VM di project tersebut). Untuk membatasi akses ke resource, tetapkan kebijakan IAM pada resource level yang lebih rendah jika memungkinkan, bukan di level project atau di atasnya.
Untuk mengetahui informasi umum tentang cara memberikan, mengubah, dan mencabut akses ke resource yang tidak terkait dengan Compute Engine, misalnya untuk memberikan akses ke project Google Cloud, lihat dokumentasi IAM untuk bagian Memberikan , mengubah, dan mencabut akses ke resource.
Sebelum memulai
- Tinjau Ringkasan IAM.
- Baca ringkasan kontrol akses Compute Engine.
- Pelajari peran IAM untuk Compute Engine .
-
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.
-
Untuk memberikan atau mencabut akses ke resource:
-
compute.projects.get
dalam project -
compute.RESOURCE_TYPE.get
pada resource -
compute.RESOURCE_TYPE.getIamPolicy
pada resource -
compute.RESOURCE_TYPE.setIamPolicy
pada resource
-
-
Untuk menguji izin pemanggil:
compute.RESOURCE_TYPE.getIamPolicy
pada resourceGanti RESOURCE_TYPE dengan resource yang aksesnya ingin Anda kelola. Misalnya
instances
,instanceTemplates
, atauimages
. - Di konsol Google Cloud, buka halaman resource masing-masing yang ingin Anda tambahkan izinnya.
- Untuk instance, buka Halaman instance VM.
- Untuk disk zona dan regional, buka Halaman disk.
- Untuk snapshot, buka Halaman snapshot.
- Untuk image, buka Halaman image.
- Untuk template instance, buka Halaman template instance.
- Untuk image mesin, buka halaman Image mesin.
- Untuk melakukan pemesanan, buka halaman Pemesanan.
- Untuk sole-tenant node, buka Halaman sole-tenant node.
- Pilih kotak centang di samping fasilitas yang ingin diupdate.
- Selesaikan langkah-langkah berikut berdasarkan halaman referensi.
- Untuk instance VM, klik Izin.
- Untuk semua resource lainnya, selesaikan langkah-langkah berikut:
- Periksa apakah panel info terlihat. Jika tidak terlihat, klik Tampilkan panel info.
- Pilih tab Izin.
- Klik Add principal.
- Tambahkan identitas untuk akun utama dan pilih peran yang diperlukan.
- Untuk menyimpan perubahan, klik Save.
RESOURCE_TYPE
: jenis resource. Nilai yang valid mencakup:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: nama resource. Contoh,my_instance
.PRINCIPAL
: identitas valid untuk akun utama yang ingin Anda berikan peran. Harus dalam formatuser|group|serviceAccount:EMAIL_ADDRESS
ataudomain:DOMAIN_ADDRESS
. Sebagai contoh:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: peran untuk menetapkan akun utama ini.Baca kebijakan yang ada dengan metode
getIamPolicy
masing-masing resource. Misalnya, permintaan HTTP berikut membaca kebijakan IAM dari VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Ganti kode berikut:
PROJECT_ID
: project ID dari project tempat VM ini berada.ZONE
: zona VM. Untuk resource regional atau global, gantizones/ZONE
denganregions/REGION
atauglobal
.VM_NAME
: nama instance VM.
Compute Engine menampilkan kebijakan saat ini dalam respons.
Edit kebijakan dengan editor teks untuk menambahkan atau menghapus akun utama dan peran yang terkait. Misalnya, untuk memberikan peran
compute.admin
ke email@example.com, tambahkan binding baru berikut ke kebijakan:{ "members": [ "user:email@example.com" ], "role":"roles/compute.admin" }
Tulis kebijakan yang telah diperbarui dengan
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Ganti kode berikut:
PROJECT_ID
: project ID dari project tempat VM ini berada.ZONE
: zona VM. Untuk resource regional atau global, gantizones/ZONE
denganregions/REGION
atauglobal
.VM_NAME
: nama instance VM.
Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya.
- Di konsol Google Cloud, buka halaman resource masing-masing yang ingin Anda tambahkan izinnya.
- Untuk instance, buka Halaman instance VM.
- Untuk disk zona dan regional, buka Halaman disk.
- Untuk snapshot, buka Halaman snapshot.
- Untuk image, buka Halaman image.
- Untuk grup instance, buka Halaman grup instance.
- Untuk template instance, buka Halaman template instance.
- Untuk image mesin, buka halaman Image mesin.
- Untuk melakukan pemesanan, buka halaman Pemesanan.
- Untuk sole-tenant node, buka Halaman sole-tenant node.
- Pilih kotak centang di samping fasilitas yang ingin diupdate.
- Selesaikan langkah-langkah berikut berdasarkan halaman referensi.
- Untuk instance VM, klik Izin.
- Untuk semua resource lainnya, selesaikan langkah-langkah berikut:
- Periksa apakah panel info terlihat. Jika tidak terlihat, klik Tampilkan panel info.
- Pilih tab Izin.
- Klik kartu peran yang akun utamanya ingin Anda hapus. Tindakan ini akan memperluas kartu dan menampilkan pengguna dengan peran tersebut untuk resource tersebut.
- Untuk menghapus akun utama dari peran tersebut, klik Hapus.
RESOURCE_TYPE
: jenis resource. Nilai yang valid mencakup:disks
images
instances
instance-templates
machine-images
reservations
sole-tenancy node-groups
sole-tenancy node-templates
snapshots
RESOURCE_NAME
: nama resource. Contoh,my_instance
.PRINCIPAL
: identitas yang valid untuk akun utama. Harus dalam formatuser|group|serviceAccount:EMAIL_ADDRESS
ataudomain:DOMAIN_ADDRESS
. Sebagai contoh:user:test-user@gmail.com
group:admins@example.com
serviceAccount:test123@example.domain.com
domain:example.domain.com
ROLE
: peran yang akun utamanya ingin Anda hapus.Baca kebijakan yang ada dengan metode
getIamPolicy
masing-masing resource. Misalnya, permintaan HTTP berikut membaca kebijakan IAM dari VM:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:getIamPolicy
Ganti kode berikut:
PROJECT_ID
: project ID dari project tempat VM ini berada.ZONE
: zona VM. Untuk resource regional atau global, gantizones/ZONE
denganregions/REGION
atauglobal
.VM_NAME
: nama instance VM.
Compute Engine menampilkan kebijakan saat ini dalam respons.
Edit kebijakan dengan editor teks untuk menghapus anggota dari peran terkait. Misalnya, hapus email@example.com dari peran
compute.admin
:{ "members": [ "user:owner@example.com" ], "role":"roles/compute.admin" }
Tulis kebijakan yang telah diperbarui dengan
setIamPolicy()
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME:setIamPolicy
Ganti kode berikut:
PROJECT_ID
: project ID dari project tempat VM ini berada.ZONE
: zona VM. Untuk resource regional atau global, gantizones/ZONE
denganregions/REGION
atauglobal
.VM_NAME
: nama instance VM.
Dalam isi permintaan, berikan kebijakan IAM yang telah diperbarui dari langkah sebelumnya.
Kirim permintaan ke resource dan sertakan daftar izin yang harus diperiksa dalam isi permintaan.
Misalnya, pada instance, Anda mungkin memeriksa
compute.instances.start
,compute.instances.stop
, dancompute.instances.delete
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/testIamPermissions { "permissions": [ "compute.instances.start", "compute.instances.stop", "compute.instances.delete" ] }
Permintaan menampilkan izin yang diaktifkan untuk pemanggil.
{ "permissions": [ "compute.instances.start", "compute.instances.stop" ] }
- Pelajari cara mengelola akses ke image kustom dengan IAM.
- Pelajari Akun layanan lebih lanjut.
- Pelajari peran IAM Compute Engine lebih lanjut.
- Pelajari lebih lanjut izin yang disertakan dalam peran IAM Compute Engine yang telah ditentukan.
- Pelajari cara membuat dan mengelola peran khusus.
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.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengelola akses ke resource Compute Engine, minta administrator untuk memberi Anda peran IAM Compute Admin (
roles/compute.admin
) pada resource. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Peran bawaan ini berisi izin yang diperlukan untuk mengelola akses ke resource Compute Engine. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengelola akses ke resource Compute Engine:
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Resource yang didukung
Untuk melihat daftar resource Compute Engine yang mendukung kontrol akses tingkat resource, lihat Jenis resource yang menerima kebijakan IAM dan filter untuk Compute Engine.
Untuk resource Compute Engine lainnya yang tidak mendukung kontrol akses tingkat resource, Anda harus mengelola akses ke resource tersebut pada tingkat project, folder, atau organisasi. Untuk informasi tentang organisasi, folder, atau project, lihat Hierarki resource.
Memberikan akses ke resource Compute Engine
Akun utama, seperti pengguna atau akun layanan, dapat mengakses resource Compute Engine. Identitas adalah properti akun utama. Identitas prinsipal biasanya diwakili oleh alamat email yang terkait dengan akun.
Sebelum memberikan peran IAM kepada akun utama untuk suatu resource, periksa peran mana yang tersedia untuk diberikan pada resource tertentu. Untuk mengetahui informasi selengkapnya, lihat Melihat peran yang dapat diberikan pada resource.
Untuk memberikan izin agar dapat mengakses resource Compute Engine tertentu, tetapkan kebijakan IAM pada resource tersebut.
Konsol
gcloud
Untuk memberikan peran kepada akun utama pada resource, gunakan sub-perintah
add-iam-policy-binding
resource tersebut dengan flag--member
dan--role
.gcloud compute RESOURCE_TYPE add-iam-policy-binding RESOURCE_NAME \ --member='PRINCIPAL' \ --role='ROLE'
Ganti kode berikut:
Jika Anda memberikan akses ke resource yang dalam pratinjau, gunakan perintah
gcloud beta compute
.REST
Untuk mengubah kebijakan IAM melalui API, lakukan hal berikut:
Mencabut akses ke resource
Sebagai praktik terbaik, cabut akses mereka setelah akun utama tidak lagi memerlukan akses ke resource Compute Engine Anda.
Konsol
gcloud
Untuk menghapus peran dari akun utama untuk resource, gunakan subperintah
remove-iam-policy-binding
resource dengan flag--member
dan--role
.gcloud compute RESOURCE_TYPE remove-iam-policy-binding RESOURCE_NAME \ --member='MEMBER' \ --role='ROLE'
Ganti kode berikut:
Jika Anda mencabut akses ke resource yang dalam pratinjau, gunakan perintah
gcloud beta compute
.REST
Untuk mengubah kebijakan IAM secara langsung melalui API, lakukan langkah berikut:
Menguji apakah pemanggil memiliki izin
Jika Anda tidak tahu izin yang dimiliki identitas, gunakan metode
testIamPermissions
API untuk memeriksa izin yang tersedia untuk identitas.Metode ini mengambil URL resource dan sekumpulan izin sebagai parameter input, serta menampilkan kumpulan izin yang diizinkan oleh pemanggil. Anda dapat menggunakan metode ini di salah satu resource yang didukung.
Biasanya,
testIamPermissions
dimaksudkan untuk integrasi dengan software eksklusif Anda, seperti antarmuka pengguna grafis yang disesuaikan. Anda biasanya tidak memanggiltestIamPermissions
jika Anda menggunakan Google Cloud secara langsung untuk mengelola izin.Misalnya, jika Anda mem-build GUI di atas Compute Engine API dan GUI memiliki tombol "mulai" yang memulai instance, Anda dapat memanggil
compute.instances.testIamPermissions()
untuk menentukan apakah tombol itu harus diaktifkan atau dinonaktifkan.Untuk menguji apakah pemanggil memiliki izin tertentu pada resource:
Mengubah akses resource untuk beberapa anggota
Jika Anda ingin mengubah akses ke resource Compute Engine untuk beberapa anggota secara bersamaan, tinjau rekomendasi tentang cara mengubah kebijakan IAM secara terprogram.
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.
-