Memecahkan masalah kredensial

Dokumen ini memberikan informasi untuk membantu Anda memecahkan masalah otorisasi dan kredensial Agen Operasional di instance VM Compute Engine.

Jika Agen Operasional melaporkan error akses atau otorisasi, atau jika agen tampak berjalan normal, tetapi tidak ada data atau kebijakan pemberitahuan Anda tidak berfungsi seperti yang diharapkan, periksa apakah kredensial instance VM Anda sudah benar, termasuk menentukan project yang benar:

Memverifikasi kredensial Compute Engine

Gunakan halaman instance VM Compute Engine di Konsol Google Cloud untuk memverifikasi bahwa instance VM Compute Engine Anda memiliki kredensial yang memadai untuk Agen Operasional. Kredensial ini biasanya ditambahkan di akun layanan default dari semua instance VM Compute Engine baru, tetapi Anda dapat menimpa default tersebut saat membuat instance.

Pada panel navigasi Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances:

Buka instance VM

  1. Jika perlu, ubah project Google Cloud saat ini menjadi project yang terkait dengan instance VM Compute Engine Anda. Misalnya, jika Anda diminta untuk Mengaktifkan penagihan, berarti project saat ini tidak memiliki instance VM Compute Engine di dalamnya.
  2. Di halaman VM Instances, klik nama instance VM Anda. Halaman detail instance VM Anda akan muncul.
  3. Di halaman VM instance details, lihat di bagian judul Cloud API access scopes:
    • Jika Anda melihat "Izinkan akses penuh ke semua Cloud API", berarti Anda memiliki kredensial yang memadai.
    • Jika Anda melihat di samping Stackdriver Monitoring API, nama lama untuk Cloud Monitoring API, bahwa Anda memiliki izin Hanya Tulis atau Penuh, berarti Anda memiliki kredensial yang memadai.
    • Jika tidak, akun layanan default instance Anda tidak akan memiliki kredensial yang diperlukan oleh agen. Untuk menggunakan agen pada instance, Anda harus menambahkan kredensial akun layanan kunci pribadi. Untuk mengetahui petunjuknya, lihat Menambahkan kredensial.

Jika Anda memiliki kredensial default yang benar, lanjutkan ke Menginstal di Linux dan Windows.

Memverifikasi kredensial kunci pribadi

Untuk memastikan bahwa kredensial kunci pribadi yang valid diinstal pada instance VM Anda, verifikasi terlebih dahulu bahwa file kredensial ada di lokasi yang diharapkan, lalu verifikasi bahwa informasi dalam file kredensial sudah valid. Kredensial yang sebelumnya valid dapat dicabut melalui bagian IAM & Admin > Service accounts di Google Cloud Console. Jika tidak ada kredensial yang valid, lihat Menambahkan kredensial untuk mengganti kredensial yang ada atau menambahkan yang baru.

Apakah kredensial ada?

Untuk melihat apakah kredensial akun layanan kunci pribadi ada di instance Anda, jalankan perintah Linux berikut pada instance Anda:

sudo cat $GOOGLE_APPLICATION_CREDENTIALS
sudo cat /etc/google/auth/application_default_credentials.json

Jika salah satu perintah menampilkan file seperti yang ditunjukkan di bawah ini, instance Anda mungkin memiliki kredensial kunci pribadi yang valid. Jika kedua perintah menampilkan file, file yang ditunjukkan oleh GOOGLE_APPLICATION_CREDENTIALS akan digunakan.

{
  "type": "service_account",
  "project_id": "{your-project-id}",
  "private_key_id": "{your-private-key-id}",
  "private_key": "{your-private-key}",
  "client_email": "{your-project-number}-{your-key}@developer.gserviceaccount.com",
  "client_id": "{your-client-id}",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "{x509-cert-url}",
  "client_x509_cert_url": "{client-x509-cert-url}"
}

Jika tidak ada file kredensial, lihat Menambahkan kredensial.

Apakah kredensial valid?

Dalam file kredensial, kolom project_id adalah project Google Cloud Anda, client_email mengidentifikasi akun layanan dalam project tersebut, dan private_key_id mengidentifikasi kunci pribadi di akun layanan. Cocokkan informasi ini dengan yang ditampilkan di bagian IAM & Admin > Service accounts pada Google Cloud Console.

File kredensial tidak valid jika salah satu kondisi berikut terpenuhi:

  • Anda memeriksa instance VM Compute Engine, tetapi project Google Cloud dalam file kredensial bukan project yang berisi instance Anda.
  • Akun layanan yang tercantum tidak ada. Mungkin telah dihapus.
  • Akun layanan yang tercantum tidak memiliki peran yang tepat yang diaktifkan. File ini harus memiliki setidaknya roles/monitoring.metricWriter (Monitoring Metric Writer) untuk pengumpulan metrik dan roles/logging.logWriter (Logs Writer) untuk menulis log.
  • Kunci pribadi tidak ada. Permintaan tersebut mungkin telah dicabut.

Jika akun layanan tidak bermasalah, tetapi kunci pribadi telah dicabut, Anda dapat membuat kunci pribadi baru dan menyalinnya ke instance. Jika tidak, Anda harus membuat akun layanan baru seperti yang dijelaskan di bagian berikut, Menambahkan kredensial.

Membuat kredensial baru

Jika kredensial tidak valid, lakukan langkah-langkah berikut:

  1. Untuk setiap project terhubung yang berisi instance yang perlu diotorisasi dengan kunci pribadi — instance Compute Engine yang dibuat tanpa menyertakan cakupan akses https://www.googleapis.com/auth/monitoring.write — buat akun layanan dan hasilkan kunci pribadi, jika belum ada. Ikuti langkah-langkah berikut:
    1. Pada panel navigasi Konsol Google Cloud, pilih Monitoring, lalu pilih  Monitoring Settings:

      Buka Monitoring Settings

    2. Pilih tab Ringkasan. Identifikasi project yang berisi resource Compute Engine yang dimaksud dan buka Konsol Google Cloud.
    3. Buka halaman IAM Service Accounts di Google Cloud Console, pilih project Google Cloud Anda, buat akun layanan baru, lalu buat kunci pribadi baru untuk akun layanan tersebut.

      Untuk melakukan langkah-langkah ini, lakukan salah satu hal berikut:

      • Buka halaman IAM Service Accounts, pilih project Google Cloud Anda, lalu ikuti langkah-langkah di Create a service account:

        Buka Akun Layanan IAM

      • Klik tombol berikut, lalu pilih project Google Cloud Anda:

        Membuat akun layanan dan kunci download

        Tombol sebelumnya mengotomatiskan proses pembuatan dan download kunci ke sistem lokal Anda untuk akun layanan khusus agen. Jika diperlukan, proses ini juga akan membuat akun layanan yang diperlukan dan memastikan bahwa akun layanan memiliki izin yang benar. Akun layanan khusus agen memiliki nama yang mirip dengan stackdriver-1234@PROJECT_ID.iam.gserviceaccount.com. Anda akan diberi tahu tentang penyelesaian tindakan ini dengan dialog seperti berikut:

        Banner yang memberi tahu pengguna bahwa akun layanan dan kunci telah dibuat.

  2. Ganti kunci pribadi pada instance yang sesuai dengan akun layanan yang bersangkutan.

    • Di Linux, ganti kunci pribadi yang berada di /etc/google/auth/application_default_credentials.json.
    • Di Windows, ganti kunci pribadi yang berada di C:\ProgramData\Google\Auth\application_default_credentials.json. Untuk informasi selengkapnya, lihat Menyalin kunci pribadi ke instance Anda.
  3. Memulai ulang agen

    • Di Linux, jalankan sudo service stackdriver-agent restart
    • Di Windows, buka konsol pengelolaan layanan dan mulai ulang layanan Cloud Monitoring.

Jika Anda memiliki beberapa project yang memerlukan kunci pribadi baru, ulangi prosedur ini untuk setiap project.

Untuk memverifikasi bahwa kunci pribadi sudah benar, lihat Apakah kredensial ada?. Secara khusus:

  • Baca file JSON kunci pribadi pada instance, misalnya (di Linux): sudo cat /etc/google/auth/application_default_credentials.json
  • Pastikan nilai kolom project_id sesuai dengan project yang dipantau yang kredensialnya baru saja Anda buat.