Setiap instance mesin virtual (VM) menyimpan metadatanya di server metadata. VM Anda otomatis memiliki akses ke API server metadata tanpa otorisasi tambahan. Compute Engine mempertahankan kunci dan nilai metadata untuk VM dan project Anda dalam direktori. Setiap direktori menyimpan entri metadata dalam bentuk key-value pair. Beberapa direktori berisi subdirektori.
Dokumen ini memberikan ringkasan tentang metadata VM dan menjelaskan jenis serta properti metadata VM.
Penggunaan metadata VM
Bagian berikut menjelaskan beberapa skenario saat Anda dapat menggunakan entri metadata untuk mengelola VM.
Skrip startup dan shutdown
Server metadata sangat berguna saat digunakan bersama skrip startup dan shutdown karena Anda dapat menggunakan server metadata untuk mendapatkan informasi unik secara terprogram tentang VM, tanpa otorisasi tambahan.
Misalnya, Anda dapat menulis skrip startup yang mendapatkan pasangan nilai kunci metadata untuk IP eksternal VM, dan menggunakan IP tersebut di skrip untuk menyiapkan database. Karena setiap VM menggunakan kunci metadata standar Compute Engine yang sama, Anda dapat menggunakan kembali skrip tanpa harus mengupdatenya untuk setiap VM. Hal ini membantu Anda membuat kode yang tidak terlalu rapuh untuk aplikasi Anda.
- Untuk mengetahui informasi selengkapnya tentang skrip startup, lihat ringkasan skrip startup.
- Untuk mengetahui informasi selengkapnya tentang skrip shutdown, lihat Menjalankan skrip shutdown.
Pemeliharaan host
Server metadata memberikan informasi tentang opsi penjadwalan VM di direktori metadata scheduling/
menggunakan kunci maintenance-event
. Anda dapat menggunakan nilai metadata ini untuk memberi tahu saat peristiwa pemeliharaan akan terjadi, sehingga Anda dapat menyiapkan lingkungan untuk peristiwa tersebut.
Untuk informasi selengkapnya, lihat
Mendapatkan pemberitahuan migrasi langsung.
Atribut tamu
Atribut tamu adalah jenis metadata kustom tertentu yang dapat digunakan untuk menulis aplikasi Anda saat berjalan di VM. Gunakan atribut tamu hanya untuk kasus penggunaan yang memerlukan sedikit data yang tidak sering berubah. Untuk mengetahui informasi selengkapnya tentang atribut tamu, lihat Menetapkan dan mengkueri atribut tamu.
Atribut partner
Atribut partner adalah jenis metadata instance tertentu. Google CloudLayanan dapat menggunakan atribut partner untuk membuat namespace tempat mereka dapat menentukan entri metadata instance. Anda dapat menetapkan, memperbarui, menghapus, dan melihat nilai entri metadata instance untuk mengonfigurasi layanan tersebut.
Misalnya, saat Anda menggunakan identitas workload terkelola untuk Compute Engine, Anda dapat menentukan detail konfigurasi dalam entri metadata namespace layanan tersebut.
Pertimbangan keamanan metadata
Saat Anda membuat permintaan untuk mendapatkan informasi dari server metadata, permintaan Anda dan respons metadata berikutnya tidak akan pernah keluar dari host fisik yang menjalankan VM.
Namun, setiap proses yang dapat mengueri URL metadata, akan memiliki akses ke semua nilai di server metadata. Hal ini mencakup nilai metadata kustom, sertifikat klien, dan kunci pribadi yang Anda tulis ke server. Google merekomendasikan agar Anda berhati-hati saat menulis nilai sensitif ke server metadata atau saat menjalankan proses pihak ketiga. Anda harus melakukan sandbox pada setiap proses yang tidak boleh mengakses server metadata.
Endpoint server metadata
Server metadata dapat diakses dari endpoint berikut:
- Endpoint HTTP:
http://metadata.google.internal/computeMetadata/v1
. Endpoint ini dapat diakses dari semua VM, termasuk Shielded VM. - Endpoint HTTPS:
https://metadata.google.internal/computeMetadata/v1
. Endpoint ini hanya dapat diakses dari Shielded VM.
Endpoint server metadata HTTPS
Endpoint server metadata HTTPS (https://metadata.google.internal/computeMetadata/v1
) memberikan keamanan tambahan untuk transmisi informasi antara server metadata dan VM.
Endpoint ini hanya tersedia untuk Shielded VM.
Manfaat menggunakan endpoint server metadata HTTPS
Menggunakan endpoint HTTPS untuk membuat kueri server metadata memberikan manfaat berikut:
Meningkatkan keamanan: membantu mencegah akses tidak sah ke metadata sensitif Anda. FDE mencegah penyerang melakukan salah satu tindakan berikut:
- Memalsukan atau meniru server metadata untuk mendapatkan akses ke VM
- Melihat atau memalsukan metadata sensitif sebelum mencapai VM
Mengurangi biaya: membantu Anda menghindari biaya yang terkait dengan pelanggaran keamanan
Cara kerja proses
Untuk VM terlindung yang telah menginstal lingkungan tamu, proses berikut akan terjadi di VM Anda:
Compute Engine membuat tiga sertifikat sebagai berikut:
- Sertifikat root yang ditandatangani sendiri: sertifikat unik yang dibuat untuk VM. Sertifikat ini hanya dibuat pada booting pertama VM.
- Sertifikat identitas server: sertifikat untuk server metadata.
Sertifikat identitas klien: sertifikat untuk klien. Sertifikat ini tidak di-cache di server metadata dan dibuat ulang pada setiap panggilan ke endpoint sertifikat klien dari lingkungan tamu.
Untuk lokasi penyimpanan identitas klien dan sertifikat root, lihat Di mana sertifikat disimpan.
Saat booting pertama, Compute Engine mentransfer bagian publik dari sertifikat root ke lingkungan tamu VM menggunakan variabel UEFI yang dibuat Google. Sertifikat root ini kemudian disimpan di VM.
Secara berkala, lingkungan tamu meminta sertifikat identitas klien. Jika hal ini terjadi, agen tamu akan mendownload sertifikat ini dari server metadata dan memvalidasinya menggunakan sertifikat root untuk VM tersebut.
Saat Anda membuat kueri ke endpoint server metadata HTTPS, Anda menentukan sertifikat identitas klien yang kemudian digunakan oleh server metadata dan VM untuk memverifikasi bahwa kueri ini diizinkan.
Mengaktifkan penyiapan sertifikat otomatis
Jika Anda ingin instance atau project Anda
menyiapkan sertifikat MDS HTTPS secara otomatis,
tetapkan kunci metadata disable-https-mds-setup
di instance atau project Anda
ke FALSE
.
Untuk mengetahui informasi selengkapnya, lihat Kunci Metadata Standar.
Tempat sertifikat disimpan
Bagian berikut mencantumkan lokasi penyimpanan untuk sertifikat identitas klien dan root yang dibuat oleh Compute Engine.
Root certificate
CentOS/RHEL/Rocky
Sertifikat root untuk VM CentOS, Red Hat Enterprise Linux (RHEL), dan Rocky Linux disimpan di lokasi berikut:
/run/google-mds-mtls/root.crt
Debian/Ubuntu
Sertifikat root untuk VM Debian dan Ubuntu disimpan di lokasi berikut:
/run/google-mds-mtls/root.crt
Fedora
Sertifikat root untuk VM Fedora disimpan di lokasi berikut:
/run/google-mds-mtls/root.crt
SLES
Sertifikat root untuk VM SUSE Linux Enterprise Server (SLES) disimpan di lokasi berikut:
/run/google-mds-mtls/root.crt
Windows
Sertifikat root untuk VM Windows disimpan di lokasi berikut:
C:\ProgramData\Google\ComputeEngine\mds-mtls-root.crt
Sertifikat identitas klien
Sertifikat identitas klien dapat diakses oleh semua proses yang berjalan di VM. Hal ini diperlukan agar semua proses memiliki akses ke server metadata menggunakan endpoint HTTPS, mirip dengan endpoint HTTP. Untuk mengetahui informasi selengkapnya, lihat Pertimbangan keamanan metadata.
Linux
Sertifikat identitas klien untuk VM Linux disimpan di lokasi berikut:
/run/google-mds-mtls/client.key
Windows
Sertifikat identitas klien untuk VM Windows disimpan di lokasi berikut:
C:\ProgramData\Google\ComputeEngine\mds-mtls-client.key
Mengaktifkan penyimpanan sertifikat root di penyimpanan tepercaya OS
Jika Anda ingin Compute Engine otomatis menambahkan sertifikat root server metadata HTTPS ke penyimpanan tepercaya OS Anda, tetapkan kunci metadata enable-https-mds-native-cert-store
di instance atau project Anda ke TRUE
.
Jika Anda mengaktifkan opsi ini, Compute Engine akan menambahkan sertifikat root ke lokasi berikut selain lokasi defaultnya.
CentOS/RHEL/Rocky
/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Debian/Ubuntu
/etc/ssl/certs/ca-certificates.crt
Fedora
/etc/pki/tls/certs/ca-bundle.crt
SLES
/etc/ssl/ca-bundle.pem
Windows
Cert:\LocalMachine\Root
Untuk mengetahui informasi selengkapnya, lihat Kunci Metadata Standar.
Kunci metadata kustom dan yang telah ditetapkan
Setiap entri metadata disimpan di server metadata sebagai pasangan kunci-nilai. Kunci metadata peka huruf besar/kecil. Kunci Anda dapat berupa kunci metadata yang telah ditentukan sebelumnya atau kunci metadata kustom.
Kunci metadata standar
Kunci metadata yang telah ditentukan sebelumnya adalah kunci metadata yang dibuat oleh Compute Engine.
Saat Anda membuat VM, Compute Engine akan otomatis menetapkan nilai metadata untuk beberapa kunci ini di VM tersebut—misalnya, ID instance VM atau ID project. Untuk kunci standar yang nilainya tidak ditetapkan secara otomatis oleh Compute Engine, Anda dapat memilih dari serangkaian nilai yang tersedia, bergantung pada konfigurasi sistem.
Misalnya, untuk mengaktifkan login OS bagi VM, Anda dapat menetapkan nilai kunci standar enable-oslogin
ke TRUE
untuk VM tersebut. Untuk menonaktifkan login OS untuk VM tersebut, Anda dapat memperbarui nilai kunci menjadi FALSE
.
Anda hanya dapat memperbarui nilai untuk kunci ini, tetapi bukan kuncinya itu sendiri.
Untuk mengetahui informasi selengkapnya tentang kunci metadata standar dan daftar kunci ini, lihat Kunci metadata standar.
Kunci metadata kustom
Metadata kustom memungkinkan Anda membuat dan menggunakan pasangan nilai kunci metadata Anda sendiri pada setiap VM atau project. Anda dapat menambahkan kunci metadata kustom baru, memperbarui nilai kunci yang ada, dan menghapus entri metadata kustom yang tidak diperlukan. Menetapkan metadata kustom berguna untuk meneruskan nilai arbitrer ke VM dalam sebuah project. Hal ini juga berguna untuk membuat skrip startup dan shutdown.
Untuk mempelajari cara menambahkan, mengupdate, atau menghapus metadata kustom untuk VM, lihat Mengonfigurasi metadata kustom.
Jenis metadata
Entri metadata VM dapat memberikan informasi khusus untuk setiap VM atau project. Metadata Anda dibagi menjadi metadata project, zona, dan instance, berdasarkan cakupan tempat Anda menetapkan metadata.
Metadata project
Metadata project ditentukan dalam cakupan project dan memberikan informasi yang berlaku untuk semua VM dalam project. Saat Anda menetapkan metadata ini, entri metadata akan diterapkan ke semua VM dalam project tersebut.
Anda dapat menggunakan kunci metadata standar dan kustom untuk menyetel metadata project. Pelajari lebih lanjut kunci metadata project standar dan cara menetapkan metadata project kustom.
Metadata zonal
Metadata zona ditentukan pada cakupan zona dalam project dan memberikan informasi tentang VM di zona tertentu dalam project tersebut. Saat Anda menetapkan metadata zonal, entri metadata akan diterapkan ke semua VM di zona yang dikonfigurasi tersebut dalam project tersebut. Jika dibandingkan dengan metadata project, metadata zona membantu Anda melakukan isolasi kesalahan dan memberikan keandalan yang lebih besar.
Compute Engine tidak menyediakan kunci yang telah ditetapkan untuk metadata zona. Anda harus membuat kunci metadata kustom Anda sendiri untuk menetapkan metadata zonal. Pelajari lebih lanjut cara menetapkan metadata zona kustom.
Metadata instance
Metadata instance memberikan informasi tentang instance VM tertentu. Anda menetapkan metadata instance secara terpisah untuk setiap instance VM.
Anda dapat menggunakan kunci metadata standar dan kustom untuk menyetel metadata instance. Pelajari lebih lanjut kunci metadata instance yang telah ditentukan sebelumnya dan cara Menetapkan metadata instance kustom.
Cara metadata diatur
Compute Engine menyimpan dan mengelola kunci dan nilai metadata untuk VM dan project Anda dalam listingan direktori. Bergantung pada jenis metadata, Compute Engine menyimpan entri metadata di salah satu direktori berikut:
Jenis metadata | Direktori |
---|---|
Metadata project dan zonal |
|
Metadata instance |
|
Setiap direktori menyimpan entri metadata dalam bentuk pasangan nilai kunci. Beberapa entri metadata juga merupakan direktori yang berisi kunci metadata lainnya. Entri metadata yang berfungsi sebagai direktori ditandai dengan garis miring di akhir (/
) dalam nama kunci metadata. Misalnya, /project/attributes/
adalah
direktori di direktori project/
yang berisi kunci metadata lainnya. Untuk
membuat listingan direktori metadata Anda sendiri, Anda harus menggunakan garis miring di akhir (/
)
dalam nama kunci metadata saat Anda membuat entri metadata kustom.
Entri metadata project dan zona disimpan di direktori project/
yang sama. Jika Anda menetapkan nilai yang berbeda untuk kunci metadata kustom yang sama untuk VM di tingkat project dan di tingkat zona, maka nilai metadata zona untuk kunci tersebut akan lebih diutamakan daripada nilai metadata project di zona masing-masing.
- Jika Anda menambahkan nilai metadata zonal untuk kunci metadata yang sudah memiliki nilai metadata project, Compute Engine akan menggantikan nilai metadata project untuk VM di zona yang ditentukan ini dan memperbarui direktori
/project
dengan nilai zonal. - Jika Anda menambahkan nilai metadata project baru untuk kunci metadata yang sudah memiliki nilai metadata zonal, tidak ada yang berubah. Compute Engine mempertahankan nilai metadata zona di direktori
/project
di zona tertentu. - Jika Anda tidak menentukan nilai metadata per zona untuk kunci metadata kustom di zona tertentu, tetapi kunci tersebut memiliki nilai metadata project, VM Anda akan terus memiliki nilai metadata project di zona tersebut.
Misalnya, Anda menentukan pasangan metadata project key-1=value-1
. Misalnya, Anda juga menentukan pasangan metadata zona
key-1=zonal-value-1
hanya untuk zona us-central1-a
. Semua VM di zona us-central1-a
untuk project Anda
mewarisi key-1=zonal-value1
sebagai pasangan metadata. Pasangan metadata tetap key-1=value-1
untuk semua VM di zona lain tempat Anda belum menetapkan metadata per zona untuk key-1=value-1
.key-1
Apa langkah selanjutnya?
- Pelajari kunci metadata standar yang ditawarkan Google Cloud .
- Pelajari cara mengonfigurasi entri metadata kustom.
- Pelajari cara menetapkan dan mengkueri atribut tamu.
- Setelah menetapkan nilai untuk kunci metadata, pelajari cara melihat dan membuat kueri informasi metadata VM untuk VM atau project.
- Pelajari cara mendapatkan pemberitahuan migrasi langsung dari server metadata.