Gunakan kebijakan tamu untuk mempertahankan konfigurasi software yang konsisten di seluruh instance virtual machine (VM) Linux dan Windows.
Untuk menyiapkan kebijakan tamu di sekumpulan VM, selesaikan langkah-langkah berikut:
- Tetapkan izin yang diperlukan ke pengguna.
- Siapkan VM.
- Konfigurasi file JSON atau YAML kebijakan tamu.
- Buat kebijakan tamu.
Sebelum memulai
- Tinjau kuota OS Config.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Authentication adalah
proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau sampel dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke
Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Batasan
- Untuk VM yang ditarget, kebijakan tamu akan diperbarui setiap kali agen melakukan pemeriksaan layanan. Pemeriksaan ini dilakukan setiap 10 hingga 15 menit.
- Tidak ada dasbor, notifikasi, atau layanan pemberitahuan kepatuhan yang tersedia pada kebijakan tamu OS lama ini. VM yang tidak menjalankan agen Konfigurasi OS jangan laporkan kegagalan. Untuk hasil terbaik, gunakan fitur ini dengan layanan pengelolaan inventaris OS atau alat pemantauan kepatuhan lainnya.
Urutan langkah software, dengan nama spesifik, hanya berjalan satu kali saat Anda membuat kebijakan tamu. Untuk menjalankan kembali urutan langkah software, Anda harus melakukan tindakan berikut:
- Mengganti nama urutan langkah software.
- Menghapus dan membuat ulang kebijakan tamu menggunakan urutan langkah software yang sudah diganti namanya.
Izin
Karena Anda dapat menggunakan kebijakan tamu untuk menginstal dan mengelola paket software di sebuah VM, pembuatan dan pengelolaan kebijakan tamu setara dengan pemberian akses eksekusi kode jarak jauh di sebuah VM.
Saat Anda menyiapkan kebijakan tamu, izin IAM digunakan untuk mengontrol akses ke resource kebijakan dan aktivitas akan dicatat dalam log audit. Namun, pengguna masih dapat menjalankan kode di VM yang berpotensi menimbulkan risiko keamanan. Untuk memitigasi hal ini, sebaiknya Anda hanya memberikan akses yang diperlukan kepada setiap pengguna.
Pemilik project memiliki akses penuh untuk membuat dan mengelola kebijakan. Untuk semua pengguna lainnya, Anda harus memberikan izin. Anda dapat memberikan salah satu peran terperinci berikut:
- GuestPolicy Admin (
roles/osconfig.guestPolicyAdmin
). Berisi izin untuk membuat, menghapus, memperbarui, mendapatkan, dan menampilkan daftar kebijakan tamu. - GuestPolicy Editor (
roles/osconfig.guestPolicyEditor
). Berisi izin untuk mendapatkan, memperbarui, dan menampilkan daftar kebijakan tamu. - GuestPolicy Viewer (
roles/osconfig.guestPolicyViewer
). Berisi izin akses hanya baca untuk mendapatkan dan menampilkan daftar kebijakan tamu.
Misalnya, untuk memberi administrator pengguna akses ke kebijakan tamu, jalankan perintah berikut berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.guestPolicyAdmin
Ganti kode berikut:
PROJECT_ID
: project ID.USER_ID
: nama pengguna Google Workspace pengguna.
Menyiapkan VM
Untuk menggunakan kebijakan tamu, Anda harus menyiapkan VM Manager.
Mengonfigurasi file YAML atau JSON kebijakan tamu
Anda harus memberikan spesifikasi kebijakan tamu menggunakan file JSON atau YAML. Untuk melihat contoh konfigurasi, baca Contoh file YAML kebijakan tamu.
File YAML atau JSON berisi dua bagian utama berikut:
- Bagian penetapan yang berisi daftar VM target.
- Bagian konfigurasi yang diperlukan yang berisi status yang ingin dipertahankan di VM.
Penetapan
Anda dapat menetapkan kebijakan tamu ke semua VM di project atau menggunakan kunci assignment
di file JSON atau YAML untuk menarget grup VM tertentu.
Misalnya, Anda dapat menarget sekelompok VM menggunakan salah satu karakteristik berikut:
- Nama instance. Lihat contoh 1.
- Awalan nama instance. Lihat contoh 2.
- Label instance. Lihat contoh 3.
- Zona. Lihat contoh 4.
- Informasi sistem operasi, yang berisi nama, versi, dan arsitektur OS. Lihat contoh 5. Perintah os-inventory describe dapat digunakan untuk menentukan nama, versi, dan arsitektur OS VM.
Untuk menetapkan kebijakan tamu menggunakan informasi sistem operasi, agen OS Config harus mengirimkan informasi sistem operasi ke endpoint atribut tamu untuk VM. Demi menjaga privasi, secara default, informasi sistem operasi untuk VM tidak tersedia. Untuk mengelompokkan VM berdasarkan informasi sistem operasi, Anda harus memastikan bahwa atribut tamu dan layanan OS Inventory Management diaktifkan. Untuk mengaktifkan layanan ini, lihat Menyiapkan VM.
Konfigurasi kebijakan tamu diterapkan secara otomatis ke semua VM baru yang cocok dengan penetapan.
Konfigurasi yang diperlukan
Konfigurasi yang diperlukan dapat diperoleh dengan menggunakan salah satu atau gabungan tugas berikut:
- Menginstal, menghapus, dan mengupdate otomatis paket software. Lihat contoh 1.
- Mengonfigurasi repositori paket software. Lihat contoh 1 atau contoh 3.
- Menginstal software menggunakan urutan langkah software.
Contoh file YAML kebijakan tamu
Contoh 1
Instal paket my-package
yang harus terus diupdate di instance VM berikut: my-instance-1
dan my-instance-2
.
assignment: instances: - zones/us-east1-c/instances/my-instance-1 - zones/us-east1-c/instances/my-instance-2 packages: - name: "my-package" desiredState: UPDATED
Untuk informasi selengkapnya tentang menetapkan kebijakan tamu untuk paket, lihat dokumen referensi Representasi JSON Package.
Contoh 2
Instal agen Cloud Monitoring, menggunakan pengelola paket yum, di semua instance VM yang memiliki salah satu awalan nama instance berikut: test-instance-
atau dev-instance-
.
assignment: instanceNamePrefixes: - "test-instance-" - "dev-instance-" packages: - name: "stackdriver-agent" desiredState: INSTALLED manager: YUM packageRepositories: - yum: id: google-cloud-monitoring displayName: "Google Cloud Monitoring Agent Repository" baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el7-x86_64-all gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
Untuk informasi selengkapnya tentang menetapkan kebijakan tamu untuk repositori paket, lihat dokumen referensi Representasi JSON PackageRepository.
Contoh 3
Instal my-package
, lalu hapus bad-package-1
dan bad-package-2
dari instance yang memiliki sekumpulan label tertentu. Tambahkan juga repositori untuk pengelola paket apt dan yum.
assignment: # Assign to VM instances where `(label.color=red AND label.env=test) OR (label.color=blue AND label.env=test)` groupLabels: - labels: color: red env: test - labels: color: blue env: test packages: - name: "my-package" desiredState: INSTALLED - name: "bad-package-1" desiredState: REMOVED - name: "bad-package-2" desiredState: REMOVED manager: APT # Only apply this to systems with APT. packageRepositories: - apt: # Only apply this to systems with APT. uri: "https://packages.cloud.google.com/apt" archiveType: DEB distribution: cloud-sdk-stretch components: - main - yum: # Only apply this to systems with YUM. id: google-cloud-sdk displayName: "Google Cloud SDK" baseUrl: https://packages.cloud.google.com/yum/repos/cloud-sdk-el7-x86_64 gpgKeys: - https://packages.cloud.google.com/yum/doc/yum-key.gpg - https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
- Untuk informasi selengkapnya tentang menetapkan kebijakan tamu untuk paket, lihat dokumen referensi Representasi JSON Package.
- Untuk informasi selengkapnya tentang menetapkan kebijakan tamu untuk repositori paket, lihat dokumen referensi Representasi JSON PackageRepository.
Contoh 4
Instal software dari MSI yang dihosting di Cloud Storage ke semua instance di us-east1-b
dan us-east1-d
.
assignment: zones: - us-east1-b - us-east1-d recipes: - name: "swr-msi-gcs" desiredState: INSTALLED artifacts: - id: "the-msi" gcs: bucket: "my-bucket" object: "executable.msi" # full URI gs://my-bucket/executable.msi#nnnnn generation: 1546030865175603 installSteps: - msiInstallation: artifactId: "the-msi"
Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan urutan langkah, lihat dokumen referensi Representasi JSON SoftwareRecipe.
Contoh 5
Instal software dengan menjalankan skrip inline di semua instance VM yang memenuhi persyaratan berikut:
- Sistem operasi: Red Hat Enterprise Linux 7
- Label:
color=red
assignment: osTypes: - osShortName: rhel osVersion: "7" groupLabels: - labels: color: red recipes: - name: recipe-runscript desiredState: INSTALLED installSteps: - scriptRun: script: |- #!/bin/bash touch /TOUCH_FILE
Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan urutan langkah, lihat dokumen referensi Representasi JSON SoftwareRecipe.
Contoh 6
Instal aplikasi di semua instance Windows menggunakan penginstal yang dapat dieksekusi yang memiliki awalan nama instance berikut: test-instance-
.
assignment: instanceNamePrefixes: - "test-instance-" osTypes: - osShortName: WINDOWS recipes: - name: windows-install-exe-example desiredState: INSTALLED artifacts: - id: installer gcs: bucket: my-bucket generation: '1597013478912389' object: MyApp.Installer.x64.exe installSteps: - fileExec: artifactId: installer args: - /S # Installation must be silent
Untuk informasi selengkapnya tentang cara mengonfigurasi kebijakan urutan langkah, lihat dokumen referensi Representasi JSON SoftwareRecipe.
Membuat kebijakan tamu
Saat Anda membuat kebijakan tamu, nama kebijakan tamu harus memenuhi persyaratan penamaan berikut:
- Hanya menggunakan huruf kecil, angka, dan tanda hubung
- Diawali dengan huruf
- Diakhiri dengan angka atau huruf
- Berisi antara 1 hingga 63 karakter
- Setiap ID kebijakan harus unik dalam sebuah project
Gunakan salah satu metode berikut untuk membuat kebijakan tamu.
gcloud
Gunakan perintah os-config guest-policies create
untuk membuat kebijakan tamu.
gcloud beta compute os-config guest-policies create POLICY_ID \ --file=FILE
Ganti kode berikut:
POLICY_ID
: nama untuk kebijakan tamu yang ingin dibuat.FILE
: file JSON atau YAML yang berisi spesifikasi kebijakan tamu. Untuk melihat contoh konfigurasi, baca Contoh file YAML kebijakan tamu.
REST
Di API, buat permintaan POST
ke
metode
projects.guestPolicies.create
.
POST https://osconfig.googleapis.com/v1beta/projects/PROJECT_ID/guestPolicies?guestPolicyId=POLICY_ID { For more information, see Guest policy JSON }
Ganti kode berikut:
PROJECT_ID
: project ID Anda.POLICY_ID
: nama untuk kebijakan tamu.
Untuk melihat contoh konfigurasi, baca Contoh file YAML kebijakan tamu.
Pemecahan masalah
Untuk memecahkan masalah terkait kebijakan tamu, lihat Men-debug kebijakan tamu.
Apa langkah selanjutnya?
- Pelajari lebih lanjut kebijakan tamu OS (lama).
- Kelola kebijakan tamu.