Atribut tamu adalah jenis metadata kustom tertentu yang dapat ditulis oleh aplikasi Anda saat dijalankan di instance mesin virtual (VM) Anda. Semua aplikasi atau pengguna di instance VM Anda dapat membaca dan menulis data ke nilai metadata atribut tamu ini.
Sebelum memulai
- Untuk VM Windows Server, gunakan PowerShell 3.0 atau yang lebih baru.
Sebaiknya gunakan
ctrl+v
untuk menempelkan blok kode yang disalin. -
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 mengaktifkan atribut tamu:
compute.instances.setMetadata
-
Untuk melihat atribut tamu:
compute.instances.getGuestAttributes
- Jumlah kueri dibatasi hingga maksimum 10 kueri per menit per instance VM.
- Kueri tidak boleh melebihi burst 3 kueri per detik. Jika kapasitas maksimum ini terlampaui, Compute Engine dapat secara acak menghapus atribut tamu yang sedang dalam proses penulisan. Penghapusan data ini diperlukan untuk memastikan bahwa data sistem penting lainnya dapat ditulis ke server.
- Skrip startup yang dapat menunjukkan inisialisasi yang berhasil dengan menetapkan nilai status kustom di atribut tamu.
- Agen pengelolaan konfigurasi yang dapat memublikasikan nama dan versi OS tamu ke atribut tamu.
- Agen pengelolaan inventaris yang dapat memublikasikan daftar paket yang diinstal di instance VM ke atribut tamu.
- Software orkestrasi beban kerja yang dapat menandakan penyelesaian operasi di tamu ke bidang kontrol software dengan menetapkan nilai status kustom di atribut tamu.
- Keamanan SSH: Jika atribut tamu diaktifkan dan Login OS dinonaktifkan, lingkungan tamu dan gcloud CLI akan menggunakan atribut tamu untuk meningkatkan keamanan SSH dengan menggunakan Google API untuk mengambil kunci host sebelum Anda dapat terhubung ke VM menggunakan SSH.
- VM Manager: Agen konfigurasi OS memublikasikan data sistem operasi ke atribut tamu.
Di konsol Google Cloud, buka halaman Create an instance.
Tentukan detail VM.
Luaskan bagian Advanced options, dan lakukan hal berikut:
- Luaskan bagian Management.
Di bagian Metadata, klik Add item tambahkan entri metadata berikut:
- Kunci:
enable-guest-attributes
- Nilai:
TRUE
- Kunci:
Untuk membuat VM, klik Create.
Di Konsol Google Cloud, buka halaman Metadata.
Klik Edit.
Tambahkan entri metadata dengan kuncinya adalah
enable-guest-attributes
dan nilainya adalahTRUE
. Atau, tetapkan nilai keFALSE
untuk menonaktifkan fitur.Klik Save untuk menerapkan perubahan.
- Di konsol Google Cloud, buka halaman instance VM.
- Klik nama VM tempat Anda ingin menetapkan nilai metadata.
- Di bagian atas halaman detail instance, klik Edit untuk mengedit setelan instance.
- Di bagian Custom metadata, tambahkan entri metadata dengan kuncinya adalah
enable-guest-attributes
dan nilainyaTRUE
. Atau, tetapkan nilai keFALSE
untuk mengecualikan VM dari fitur. - Di bagian bawah halaman detail instance, klik Save untuk menerapkan perubahan pada VM.
NAMESPACE
: pengelompokan logis untukKEY
Anda. Atribut tamu harus memiliki namespace.VALUE
: nilai yang ingin Anda tulis.KEY
: jalur metadata dalamguest-attributes
tempat nilai disimpan.NAMESPACE
: pengelompokan logis untukKEY
Anda. Atribut tamu harus memiliki namespace.VALUE
: nilai yang ingin Anda tulis.KEY
: jalur metadata dalamguest-attributes
tempat nilai disimpan.Hubungkan ke VM.
Buat kueri atribut tamu.
VM Linux
Misalnya, Anda dapat menggunakan permintaan
curl
dari dalam VM Anda untuk membaca nilai dari jalur metadataguest-attributes
:curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Ganti kode berikut:
NAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda buat kuerinya.KEY
: jalur dalamguest-attributes
tempat Anda ingin membaca nilai metadata.
Atau, Anda dapat menampilkan semua nilai atribut tamu dalam satu permintaan. Ganti
NAMESPACE
dengan namespace untuk kunciguest-attributes
yang ingin Anda kueri.curl http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/ -H "Metadata-Flavor: Google"
VM Windows
Misalnya, Anda dapat menggunakan permintaan
Invoke-RestMethod
dari dalam VM Anda untuk membaca nilai dari jalur metadataguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Ganti kode berikut:
NAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda buat kuerinya.KEY
: jalur dalamguest-attributes
tempat Anda ingin membaca nilai metadata.
Atau, Anda dapat menampilkan semua nilai atribut tamu dalam satu permintaan. Ganti
NAMESPACE
dengan namespace untuk kunciguest-attributes
yang ingin Anda kueri.PS C:\> $value = (Invoke-RestMethod ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/") $value
VM_NAME
: nama VM tempat Anda ingin membaca nilai metadata atribut tamuNAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda buat kuerinya.KEY
: jalur dalam metadataguest-attributes
tempat nilai disimpanZONE
: zona tempat VM beradaPROJECT_ID
: project ID AndaZONE
: zona tempat VM beradaVM_NAME
: nama VM tempat Anda ingin membaca nilai metadata atribut tamuNAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda buat kuerinya.KEY
: jalur dalam metadataguest-attributes
tempat nilai disimpanOAUTH_TOKEN
: token OAuth AndaPROJECT_ID
: project ID AndaZONE
: zona tempat VM beradaVM_NAME
: nama VM tempat Anda ingin membaca nilai metadata atribut tamuNAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda buat kuerinya.KEY
: jalur dalam metadataguest-attributes
tempat nilai disimpanHubungkan ke VM.
Hapus atribut tamu.
VM Linux
Anda juga dapat menghapus atribut tamu. Misalnya, gunakan
curl
untuk menghapus kunci tertentu:curl -X DELETE http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Ganti kode berikut:
NAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda hapusKEY
: jalur dalamguest-attributes
tempat nilai disimpan
VM Windows
Anda juga dapat menghapus atribut tamu. Misalnya, gunakan
Invoke-RestMethod
untuk menghapus kunci tertentu:PS C:\> $value = (Invoke-RestMethod ` -Method DELETE ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Ganti kode berikut:
NAMESPACE
: namespace untuk kunciguest-attributes
yang ingin Anda hapusKEY
: jalur dalamguest-attributes
tempat nilai disimpan
- Pelajari Metadata VM lebih lanjut.
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
Izin atau peran yang diperlukan bergantung pada apakah Anda menyelesaikan tugas dari dalam atau luar VM.
Dalam VM
Jika Anda menetapkan, membuat kueri, atau menghapus atribut tamu dari dalam VM, Anda hanya memerlukan peran dan izin untuk terhubung ke VM. Setiap proses yang berjalan dalam instance VM dapat menulis ke nilai atribut tamu, termasuk skrip dan aplikasi yang tidak memiliki hak istimewa tingkat sudo atau administrator.
Untuk pembacaan dan penulisan dari dalam VM, server metadata menyediakan autentikasi dan otorisasi tingkat instance otomatis. Setiap VM hanya dapat membaca atau menulis ke server metadatanya sendiri. VM lain tidak dapat mengakses server metadata VM lain.
Di luar VM
Peran dan izin berikut diperlukan untuk mengaktifkan atribut tamu, atau melihat atribut tamu dari luar VM menggunakan Google Cloud CLI atau REST. Anda tidak dapat menetapkan atau menghapus atribut tamu dari luar VM.
Untuk memastikan bahwa akun pengguna atau layanan Anda memiliki izin yang diperlukan untuk mengaktifkan atau melihat atribut tamu, minta administrator untuk memberi akun pengguna atau layanan Anda peran IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di VM atau project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Peran bawaan ini berisi izin yang diperlukan untuk mengaktifkan atau melihat atribut tamu. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengaktifkan atau melihat atribut tamu:
Administrator Anda mungkin juga dapat memberikan izin ini kepada akun pengguna atau layanan Anda dengan peran khusus atau peran bawaan lainnya.
Kapan harus menggunakan atribut tamu
Gunakan atribut tamu hanya untuk kasus penggunaan yang memerlukan sedikit data yang tidak sering berubah. Kasus penggunaan terbaik untuk atribut tamu memiliki karakteristik berikut:
Atribut tamu berfungsi dengan baik untuk situasi saat Anda harus memublikasikan data bervolume rendah dan jarang. Misalnya, atribut tamu berfungsi dengan baik untuk kasus penggunaan berikut:
Atribut tamu bukan pengganti streaming peristiwa, Pub/Sub, atau bentuk lain dari penyimpanan data dan repositori konfigurasi.
Atribut tamu dan layanan Google Cloud lainnya
Atribut tamu digunakan oleh layanan Google Cloud lainnya sebagai berikut:
Untuk meninjau entri metadata yang disimpan oleh layanan ini, lihat Kunci metadata atribut tamu standar.
Mengaktifkan atribut tamu di VM Anda
Secara default, atribut tamu dinonaktifkan. Untuk mengaktifkan atribut tamu, tetapkan nilai metadata yang diperlukan di setiap VM atau di metadata seluruh project:
Konsol
Tetapkan
enable-guest-attributes
dalam metadata instance saat Anda membuat VM:Tetapkan
enable-guest-attributes
di metadata tingkat project agar dapat diterapkan ke semua VM di project Anda:Tetapkan
enable-guest-attributes
dalam metadata VM yang ada:gcloud
Tetapkan
enable-guest-attributes
dalam metadata instance saat Anda membuat VM:Gunakan perintah
gcloud compute instances create
di Google Cloud CLI dan setelenable-guest-attributes=TRUE
untuk mengaktifkan atribut tamu. GantiVM_NAME
dengan nama VM Anda.gcloud compute instances create VM_NAME \ --metadata=enable-guest-attributes=TRUE
Tetapkan
enable-guest-attributes
di metadata seluruh project agar diterapkan ke semua VM di project Anda:Gunakan perintah
project-info add-metadata
di Google Cloud CLI dan tetapkanenable-guest-attributes=TRUE
untuk mengaktifkan atribut tamu:gcloud compute project-info add-metadata \ --metadata=enable-guest-attributes=TRUE
Atau, Anda dapat menetapkan
enable-guest-attributes
keFALSE
untuk menonaktifkan atribut tamu.Tetapkan
enable-guest-attributes
dalam metadata VM yang ada:Gunakan perintah
instances add-metadata
di Google Cloud CLI dan setelenable-guest-attributes=TRUE
untuk mengaktifkan atribut tamu. GantiVM_NAME
dengan nama VM Anda.gcloud compute instances add-metadata VM_NAME \ --metadata=enable-guest-attributes=TRUE
Atau, Anda dapat menetapkan
enable-guest-attributes
keFALSE
untuk mengecualikan VM agar tidak menggunakan atribut tamu.Tetapkan atribut tamu
Setiap proses yang berjalan dalam instance VM dapat menulis ke nilai atribut tamu, termasuk skrip dan aplikasi yang tidak memiliki hak istimewa tingkat sudo atau administrator. Pengguna atau akun layanan di luar VM tidak dapat menulis ke nilai metadata atribut tamu.
VM Linux
Misalnya, Anda dapat menggunakan permintaan
curl
dari dalam VM untuk menulis nilai ke jalur metadataguest-attributes
:curl -X PUT --data "VALUE" http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY -H "Metadata-Flavor: Google"
Ganti kode berikut:
Hanya gunakan huruf, angka, garis bawah (
_
), dan tanda hubung (-
) untuk kolomNAMESPACE
danKEY
.VM Windows
Misalnya, Anda dapat menggunakan permintaan
Invoke-RestMethod
dari dalam VM untuk menulis nilai ke jalur metadataguest-attributes
:PS C:\> $value = (Invoke-RestMethod ` -Method PUT -Body "VALUE" ` -Headers @{'Metadata-Flavor' = 'Google'} ` -Uri "http://metadata.google.internal/computeMetadata/v1/instance/guest-attributes/NAMESPACE/KEY") $value
Ganti kode berikut:
Hanya gunakan huruf, angka, garis bawah (
_
), dan tanda hubung (-
) untuk kolomNAMESPACE
danKEY
.Dapatkan atribut tamu
Pengguna atau akun layanan dapat membaca atribut tamu dari luar VM jika mereka memiliki peran yang diperlukan. Atau, setiap pengguna atau aplikasi dalam VM dapat membaca nilai metadata untuk VM tertentu tersebut.
Setiap proses yang berjalan di mesin virtual dapat menulis ke nilai atribut tamu, yang mencakup skrip dan aplikasi yang tidak memiliki hak istimewa tingkat sudo atau administrator.
Buat kueri server metadata
Gunakan petunjuk berikut untuk membuat kueri atribut tamu dari dalam VM.
Menggunakan Google Cloud CLI atau REST
Gunakan petunjuk berikut untuk melihat atribut tamu dari luar VM.
gcloud
Gunakan Google Cloud CLI untuk membaca nilai metadata atribut tamu untuk VM. Misalnya, Anda dapat mengambil semua nilai untuk VM sebagai berikut:
gcloud compute instances get-guest-attributes VM_NAME \ --zone=ZONE
Untuk mengambil semua nilai pada namespace tertentu, sertakan flag
--query-path
dan namespace yang Anda tentukan:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE \ --zone=ZONE
Untuk mengambil semua nilai pada namespace tertentu, sertakan flag
--query-path
, namespace, dan kunci untuk nilai yang Anda tentukan:gcloud compute instances get-guest-attributes VM_NAME \ --query-path=NAMESPACE/KEY \ --zone=ZONE
Ganti kode berikut:
REST
Gunakan metode
compute.instances.getguestattributes
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Ganti kode berikut:
Untuk mengambil semua kunci untuk
NAMESPACE
, hapusKEY
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE
Untuk mengambil semua kunci di setiap namespace pada VM, hapus
NAMESPACE
danqueryPath
sepenuhnya:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes
Atau, jika memiliki token OAuth, Anda dapat menggunakan
curl
:curl -H "Authorization: Bearer OAUTH_TOKEN" https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/getGuestAttributes?queryPath=NAMESPACE/KEY
Ganti kode berikut:
Menghapus atribut tamu
Gunakan petunjuk berikut untuk menghapus atribut tamu dari dalam VM.
Menonaktifkan atribut tamu di organisasi atau folder
Jika Anda tidak ingin ada VM di organisasi atau folder mengaktifkan atribut tamu, Anda dapat mengganti dan menonaktifkan fitur ini sepenuhnya.
Tetapkan batasan
constraints/compute.disableGuestAttributesAccess
di organisasi atau folder, dengan menggantiPROJECT_ID
dengan nama project Anda:gcloud resource-manager org-policies enable-enforce \ constraints/compute.disableGuestAttributesAccess \ --project=PROJECT_ID
Baca Menggunakan batasan untuk mempelajari lebih lanjut cara menetapkan dan mengelola batasan pada organisasi Anda.
Apa langkah selanjutnya?
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.
-