Memberikan otorisasi kepada agen Monitoring

Panduan ini menjelaskan cara memastikan bahwa Agen pemantauan , yang Anda instal di instance virtual machine (VM), diberi otorisasi untuk mengirim data telemetri ke Pemantauan.

Ringkasan otorisasi

Otorisasi mengacu pada proses penentuan izin yang dimiliki klien terautentikasi untuk sekumpulan resource. Google Cloud memberikan otorisasi ke Agen pemantauan di instance VM Compute Engine menggunakan kredensial default aplikasi (ADC).

Agen pemantauan mendukung ADC yang mengautentikasi akun layanan yang dilampirkan VM, atau kunci akun layanan.

  • Akun layanan terpasang mengacu pada akun layanan yang spesifik untuk resource tertentu, seperti VM. Akun layanan memiliki kredensial unik sendiri. ADC menggunakan server metadata VM untuk mendapatkan kredensial layanan.
  • Kunci akun layanan mengacu pada kunci pribadi yang digunakan untuk memberi otorisasi pada pasangan kunci di akun layanan dalam project, yang memungkinkan Anda membuat token akses. Anda menggunakan token untuk memberikan identitas sehingga Anda dapat berinteraksi dengan Google Cloud API atas nama akun layanan.

Sebaiknya konfigurasikan ADC untuk mengautentikasi akun layanan yang terlampir jika memungkinkan, karena kunci pribadi memerlukan penyimpanan lokal, dan penyimpanan tersebut dapat disusupi. Untuk informasi selengkapnya tentang kunci akun layanan, lihat Praktik terbaik untuk mengelola kunci akun layanan.

Untuk instance VM AWS EC2, Agen pemantauan hanya mendukung autentikasi menggunakan metode kunci akun layanan.

Sebelum memulai

Baca panduan ini jika salah satu hal berikut berlaku untuk Anda:

  • Jika Anda menjalankan instance Compute Engine yang sangat lama atau jika Anda telah mengubah cakupan akses atau setelan akun layanan untuk instance Compute Engine, Anda harus menyelesaikan langkah-langkah dalam panduan ini sebelum menginstal agen. VM ini mungkin tidak memiliki file kunci akun layanan yang diperlukan. Untuk mengetahui informasi tentang cara memverifikasi cakupan akses dan setelan akun layanan instance Anda, lihat Memverifikasi kredensial Compute Engine.

    Pada instance VM Compute Engine yang baru dibuat, cakupan akses dan setelan akun layanan sudah cukup untuk menjalankan agen.

  • Jika Anda menjalankan instance VM Amazon EC2 (AWS VC2), lakukan hal berikut sebelum menginstal agen:

    1. Identifikasi project hosting AWS untuk akun AWS dengan instance EC2 Anda. Project hosting adalah project Google Cloud yang tujuan utamanya adalah untuk menyimpan metrik dan log dari instance EC2 di akun AWS.

      Jika Anda tidak dapat menemukan project hosting AWS untuk akun tersebut, sebaiknya buat project Google Cloud untuk berfungsi sebagai project hosting. Jika Anda memiliki instance EC2 di beberapa akun AWS, buat project Google Cloud untuk setiap akun. Sebaiknya Anda juga menggunakan konvensi penamaan untuk project ini atau menggunakan label project, sehingga Anda dapat mengidentifikasi project hosting. Sebaiknya jangan gunakan kembali project Google Cloud yang ada, terutama jika project tersebut berisi resource Google Cloud.

    2. Selesaikan langkah-langkah untuk memberikan otorisasi kepada agen menggunakan file kunci akun layanan.

Untuk memverifikasi cakupan akses Anda, lakukan hal berikut:

  1. Buat kueri cakupan akses dengan menjalankan perintah berikut pada instance Compute Engine Anda:
    curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes
  2. Dalam output perintah, jika cakupan akses https://www.googleapis.com/auth/cloud-platform tercantum, berarti Anda memiliki otorisasi yang memadai.

    Jika https://www.googleapis.com/auth/cloud-platform tidak tercantum, Anda memerlukan dua cakupan akses, satu dari setiap pasangan "logging" dan "monitoring" berikut:

    • https://www.googleapis.com/auth/logging.write atau
      https://www.googleapis.com/auth/logging.admin
    • https://www.googleapis.com/auth/monitoring.write atau
      https://www.googleapis.com/auth/monitoring.admin

Untuk mengubah cakupan akses, lakukan hal berikut:

  1. Di Konsol Google Cloud, buka halaman Instance VM:

    Buka instance VM

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Compute Engine.

  2. Jika perlu, klik daftar drop-down project Google Cloud dan pilih nama project Anda.
  3. Pilih VM instances dari menu navigasi, pilih tab Instances, lalu pilih nama VM Anda.
  4. Matikan VM dengan mengklik  Hentikan.
  5. Setelah VM berhenti, klik  Edit.
  6. Temukan Cakupan akses di bagian Identity and API access di halaman, lalu pilih Set access for each API.
  7. Untuk entri Stackdriver Logging API dan Stackdriver Monitoring API, pilih Write Only.
  8. Klik Simpan, lalu mulai ulang VM dengan mengklik  Mulai/Lanjutkan.

Menggunakan akun layanan

Autentikasi mengacu pada proses menentukan identitas klien. Untuk autentikasi, sebaiknya gunakan akun layanan, jenis akun khusus yang biasanya digunakan oleh aplikasi atau workload, bukan oleh pengguna. Untuk mengetahui informasi selengkapnya, lihat Ringkasan akun layanan.

Anda dapat menggunakan akun layanan untuk autentikasi, terlepas dari tempat kode Anda berjalan: di Compute Engine, App Engine, atau di lokasi perusahaan. Untuk informasi selengkapnya, lihat Autentikasi di Google.

Bagian ini menjelaskan cara membuat akun layanan baru dan memberikan peran yang diperlukan, serta cara memperbarui akun layanan yang ada jika tidak memiliki peran yang diperlukan.

Membuat akun layanan

Untuk membuat akun layanan, selesaikan prosedur Membuat akun layanan dengan informasi berikut:

  • Pilih project Google Cloud tempat Anda akan membuat akun layanan.

    • Untuk instance Compute Engine, pilih project tempat Anda membuat instance.

    • Untuk instance Amazon EC2, pilih AWS hosting project.

  • Di menu drop-down Peran, pilih peran berikut:

    • Monitoring > Monitoring Metric Writer. Tindakan ini akan memberikan otorisasi kepada Agen pemantauan.

    Jika Anda juga akan menginstal agen Logging, tambahkan peran berikut untuk agen tersebut:

    • Logging > Logs Writer. Tindakan ini akan memberikan otorisasi pada agen Logging.
  • Jika Anda berencana mengautentikasi menggunakan kunci akun layanan, pilih JSON sebagai Key type, lalu klik Create.

    Saat Anda mengklik Buat, file yang berisi kunci akun layanan akan didownload ke sistem lokal Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat dan menghapus kunci akun layanan.

Selanjutnya, konfigurasikan akun layanan dan setelan Anda berdasarkan apakah Anda memberikan otorisasi menggunakan akun layanan yang terlampir atau menggunakan kunci pribadi akun layanan.

Memverifikasi dan mengubah peran akun layanan yang ada

Anda dapat menggunakan konsol Google Cloud untuk menentukan peran yang dimiliki akun layanan yang ada, dan untuk menambahkan peran yang diperlukan yang tidak ada:

  1. Di konsol Google Cloud, buka halaman IAM:

    Buka IAM

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

  2. Jika perlu, klik daftar drop-down project Google Cloud dan pilih nama project Anda.

  3. Jika Anda tidak melihat daftar akun utama IAM (pengguna dan akun layanan), pilih tab Permissions.

  4. Dalam daftar Lihat menurut Akun Utama, temukan entri untuk akun layanan. Kolom Peran mencantumkan peran yang diberikan ke akun layanan.

  5. Jika akun layanan Anda tidak memiliki peran yang diperlukan untuk Agen pemantauan , gunakan langkah-langkah berikut untuk menambahkan peran yang dijelaskan dalam Membuat akun layanan:

    1. Klik  Edit di entri untuk akun layanan.
    2. Klik Tambahkan Peran Lain untuk menambahkan peran yang tidak ada.
    3. Klik Simpan.

Memberikan otorisasi dengan akun layanan terlampir

Untuk memberikan otorisasi ke Agen pemantauan yang diinstal di instance VM Compute Engine yang memiliki akun layanan terlampir, lakukan tindakan berikut:

  1. Pastikan Anda telah memverifikasi cakupan akses VM.

  2. Berikan peran IAM dengan hak istimewa terendah yang ada ke akun layanan Anda. Untuk mengetahui peran yang diperlukan, lihat bagian Membuat akun layanan di halaman ini.

  3. Lampirkan akun layanan ke VM tempat agen berjalan.

  4. Jika Anda belum menginstal agen, instal agen tersebut. Untuk informasi tentang cara menginstal agen, lihat Menginstal agen.

Memberikan otorisasi dengan kunci akun layanan

Untuk memberikan otorisasi pada Agen pemantauan yang diinstal di instance VM menggunakan kunci pribadi akun layanan, lakukan hal berikut:

  1. Transfer file kunci akun layanan dari sistem lokal ke instance VM Anda:

    1. Buat variabel lingkungan untuk mengarah ke file kunci akun layanan di sistem lokal Anda. Contoh berikut membuat variabel bernama CREDS:

      CREDS=~/Downloads/PROJECT-NAME-KEY-ID.json
      
    2. Selesaikan langkah-langkah yang ditunjukkan dalam tabel berikut:

      Compute Engine

      1. Di Konsol Google Cloud, buka halaman Instance VM:

        Buka instance VM

        Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Compute Engine.

        Identifikasi INSTANCE_NAME dan INSTANCE_ZONE untuk VM Anda.

      2. Di sistem lokal, jalankan perintah Google Cloud CLI untuk menyalin file kunci dari sistem lokal ke instance VM:

        REMOTE_USER="$USER"
        INSTANCE="INSTANCE_NAME"
        ZONE="INSTANCE_ZONE"
        gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"
        
      3. Di instance Compute Engine, pindahkan file kunci akun layanan dari lokasi sementara ke lokasi permanen, dan untuk Linux, pastikan file kunci akun layanan hanya dapat dibaca oleh root.

        Berikut adalah lokasi tempat agen mengharapkan file kunci Anda:

        • VM Linux: /etc/google/auth/application_default_credentials.json
        • VM Linux: Lokasi apa pun yang Anda simpan di variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS, yang harus terlihat oleh proses agen. Untuk informasi konfigurasi, lihat Menetapkan GOOGLE_APPLICATION_CREDENTIALS.

        Misalnya, di Linux, Anda dapat menjalankan skrip berikut yang memindahkan file kunci akun layanan ke lokasi default, lalu menetapkan izin yang sesuai:

        CREDENTIALS_FILE_LOCATION="/etc/google/auth/application_default_credentials.json"
        sudo mkdir -p /etc/google/auth
        sudo mv "$HOME/temp.json" "$CREDENTIALS_FILE_LOCATION"
        sudo chown root:root "$CREDENTIALS_FILE_LOCATION"
        sudo chmod 0400 "$CREDENTIALS_FILE_LOCATION"
        

      Amazon EC2

      1. Untuk VM Anda, identifikasi YOUR-INSTANCE'S-ID dan YOUR-INSTANCE'S-AWS-REGION.

      2. Di sistem lokal, gunakan scp untuk menyalin file kunci akun layanan dari sistem lokal ke instance VM:

        KEY="YOUR-SSH-KEY-PAIR-FILE"
        INSTANCE="ec2-YOUR-INSTANCE'S-ID.YOUR-INSTANCE'S-AWS-REGION.compute.amazonaws.com"
        # The remote user depends on the installed OS: ec2-user, ubuntu, root, etc.
        REMOTE_USER="EC2-USER"
        scp -i "$KEY" "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json"
        

        Nilai variabel lingkungan INSTANCE mengasumsikan bahwa instance EC2 Anda tidak berada di region us-east-1. Untuk mempelajari cara menentukan variabel INSTANCE saat instance Anda berada di region us-east-1, lihat konvensi penamaan yang ditentukan oleh Amazon.

      3. Di instance EC2, pindahkan file kunci akun layanan dari lokasi sementara ke salah satu lokasi berikut, dan untuk Linux, pastikan file kunci akun layanan hanya dapat dibaca oleh root.

        Berikut adalah lokasi tempat agen mengharapkan file kunci Anda:

        • VM Linux: /etc/google/auth/application_default_credentials.json

        • VM Windows: C:\ProgramData\Google\Auth\application_default_credentials.json

        • VM Linux dan Windows: Lokasi apa pun yang Anda simpan di variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS, yang harus terlihat oleh proses agen. Untuk informasi konfigurasi, lihat Menetapkan GOOGLE_APPLICATION_CREDENTIALS.

        Misalnya, di Linux, Anda dapat menjalankan skrip berikut yang memindahkan file kunci akun layanan ke lokasi default, lalu menetapkan izin yang sesuai:

        CREDENTIALS_FILE_LOCATION="/etc/google/auth/application_default_credentials.json"
        sudo mkdir -p /etc/google/auth
        sudo mv "$HOME/temp.json" "$CREDENTIALS_FILE_LOCATION"
        sudo chown root:root "$CREDENTIALS_FILE_LOCATION"
        sudo chmod 0400 "$CREDENTIALS_FILE_LOCATION"
        

  2. Instance VM Anda kini memiliki file kunci akun layanan yang diperlukan agen. Selanjutnya, instal atau mulai ulang agen:

Setel GOOGLE_APPLICATION_CREDENTIALS

Bagian ini menunjukkan cara menetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS agar terlihat oleh proses agen.

Linux

  1. Edit file konfigurasi berikut, atau buat file jika file tersebut tidak ada:

    /etc/default/stackdriver-agent
    
  2. Tambahkan kode berikut ke file konfigurasi:

    GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIAL_FILE
    
  3. Mulai ulang agen dengan menjalankan perintah berikut di instance VM Anda:

    sudo service stackdriver-agent restart
    

Windows

  1. Di PowerShell, jalankan perintah berikut sebagai administrator untuk menetapkan variabel lingkungan sistem GOOGLE_APPLICATION_CREDENTIALS yang akan digunakan Ops Agent:

    [Environment]::SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "PATH_TO_CREDENTIAL_FILE", "Machine")
    
  2. Mulai ulang agen dengan menjalankan perintah berikut di instance VM Anda:

    Restart-Service -Name StackdriverMonitoring