Membuat kebijakan tamu (lama)


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:

  1. Tetapkan izin yang diperlukan ke pengguna.
  2. Siapkan VM.
  3. Konfigurasi file JSON atau YAML kebijakan tamu.
  4. Buat kebijakan tamu.

Sebelum memulai

  • Tinjau kuota OS Config.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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 OS Config tidak melaporkan 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:

    1. Mengganti nama urutan langkah software.
    2. 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 pengguna akses admin ke kebijakan tamu, jalankan perintah 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:

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

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?