Panduan ini menjelaskan cara memastikan bahwa agen Monitoring, yang Anda instal di instance virtual machine (VM), diberi otorisasi untuk mengirim data telemetri ke Google Cloud Observability.
Ringkasan otorisasi
Otorisasi mengacu pada proses penentuan izin yang dimiliki klien terautentikasi untuk sekumpulan resource. Google Cloud mengizinkan agen Monitoring di instance VM Compute Engine menggunakan kredensial default aplikasi (ADC).
Agen Monitoring mendukung ADC yang mengautentikasi akun layanan terlampir VM, atau kunci akun layanan.
- Akun layanan terpasang mengacu pada akun layanan yang khusus untuk resource tertentu, seperti VM. Akun layanan memiliki kredensial uniknya sendiri. ADC menggunakan server metadata VM untuk mendapatkan kredensial untuk suatu layanan.
- Kunci akun layanan mengacu pada kunci pribadi yang digunakan untuk mengotorisasi pasangan kunci pada 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 menggunakan akun layanan terlampir jika memungkinkan, karena kunci pribadi memerlukan penyimpanan lokal, dan penyimpanan tersebut dapat disusupi. Untuk mengetahui informasi selengkapnya tentang kunci akun layanan, lihat Praktik terbaik untuk mengelola 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 setelan akun layanan atau cakupan akses 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.
Untuk memverifikasi cakupan akses Anda, lakukan hal berikut:
- 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
Dalam output perintah, jika cakupan akses
https://www.googleapis.com/auth/cloud-platform
dicantumkan, 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 Anda, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman VM instances:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Compute Engine.
- Jika perlu, klik daftar drop-down Google Cloud project dan pilih nama project Anda.
- Pilih VM instances dari menu navigasi, pilih tab Instances, lalu pilih nama VM Anda.
- Matikan VM dengan mengklik stop Hentikan.
- Setelah VM berhenti, klik edit Edit.
- Temukan Cakupan akses di bagian Identitas dan akses API di halaman, lalu pilih Tetapkan akses untuk setiap API.
- Untuk entri Stackdriver Logging API dan Stackdriver Monitoring API, pilih Write Only.
- Klik Simpan, lalu mulai ulang VM dengan mengklik play_arrow Mulai/Lanjutkan.
Menggunakan akun layanan
Autentikasi mengacu pada proses penentuan 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 on-premise. Untuk mengetahui 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 akun tersebut tidak memiliki peran yang diperlukan.
Membuat akun layanan
Untuk membuat akun layanan, selesaikan prosedur Membuat akun layanan dengan informasi berikut:
Pilih Google Cloud project tempat membuat akun layanan.
- Untuk instance Compute Engine, pilih project tempat Anda membuat instance.
Di menu drop-down Peran, pilih peran berikut:
- Monitoring > Monitoring Metric Writer. Tindakan ini memberikan otorisasi kepada agen Monitoring.
Jika Anda juga akan menginstal agen Logging, tambahkan peran berikut untuk agen tersebut:
- Logging > Penulis Log. Tindakan ini akan memberi otorisasi pada agen Logging.
Jika Anda berencana untuk mengautentikasi menggunakan kunci akun layanan, pilih JSON sebagai Key type dan 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, konfigurasi akun layanan dan setelan Anda berdasarkan apakah Anda memberikan otorisasi dengan menggunakan akun layanan yang terlampir atau dengan 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 belum ada:
-
Di konsol Google Cloud , buka halaman IAM:
Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.
Jika perlu, klik daftar drop-down Google Cloud project dan pilih nama project Anda.
Jika Anda tidak melihat daftar akun utama IAM (pengguna dan akun layanan), pilih tab Izin.
Dalam daftar Lihat menurut Akun Utama, temukan entri untuk akun layanan. Kolom Peran mencantumkan peran yang diberikan ke akun layanan.
Jika akun layanan Anda tidak memiliki peran yang diperlukan untuk agen Monitoring, gunakan langkah-langkah berikut untuk menambahkan peran yang dijelaskan dalam Membuat akun layanan:
- Klik edit Edit di entri untuk akun layanan.
- Klik Tambahkan Peran Lain untuk menambahkan peran yang belum ada.
- Klik Simpan.
Memberikan otorisasi dengan akun layanan terlampir
Untuk mengizinkan agen Monitoring yang diinstal di instance VM Compute Engine yang memiliki akun layanan terlampir, lakukan langkah-langkah berikut:
Pastikan Anda telah memverifikasi cakupan akses VM Anda.
Beri akun layanan Anda peran IAM dengan hak istimewa terendah yang ada. Untuk mengetahui peran yang diperlukan, lihat bagian Membuat akun layanan di halaman ini.
Sertakan akun layanan ke VM tempat agen berjalan.
Jika Anda belum menginstal agen, instal agen tersebut. Untuk mengetahui informasi tentang cara menginstal agen, lihat bagian Menginstal agen.
Memberikan otorisasi dengan kunci akun layanan
Untuk mengizinkan agen Monitoring yang diinstal pada instance VM menggunakan kunci pribadi akun layanan, lakukan langkah-langkah berikut:
Transfer file kunci akun layanan dari sistem lokal ke instance VM Anda:
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
-
Di konsol Google Cloud , buka halaman VM instances:
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.
Di sistem lokal Anda, jalankan perintah Google Cloud CLI untuk menyalin file kunci dari sistem lokal ke instance VM Anda:
REMOTE_USER="$USER" INSTANCE="INSTANCE_NAME" ZONE="INSTANCE_ZONE" gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"
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 mana pun yang Anda simpan dalam variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
, yang harus terlihat oleh proses agen. Untuk mengetahui informasi konfigurasi, lihat SetelGOOGLE_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"
- VM Linux:
Instance VM Anda kini memiliki file kunci akun layanan yang dibutuhkan agen. Selanjutnya, instal atau mulai ulang agen:
Untuk mengetahui informasi tentang cara menginstal agen, lihat bagian Menginstal agen.
Untuk mengetahui informasi tentang cara memulai ulang agen, lihat Memulai ulang agen.
Jika Anda ingin memeriksa ulang file kunci akun layanan, lihat Memverifikasi kredensial kunci pribadi.
Setel GOOGLE_APPLICATION_CREDENTIALS
Bagian ini menunjukkan cara menyetel variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
agar terlihat oleh proses agen.
Linux
Edit file konfigurasi berikut, atau buat file jika belum ada:
/etc/default/stackdriver-agent
Tambahkan kode berikut ke file konfigurasi:
GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIAL_FILE
Mulai ulang agen dengan menjalankan perintah berikut pada instance VM Anda:
sudo service stackdriver-agent restart
Windows
Di PowerShell, jalankan perintah berikut sebagai administrator untuk menetapkan variabel lingkungan sistem
GOOGLE_APPLICATION_CREDENTIALS
agar digunakan oleh Agen Operasional:[Environment]::SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "PATH_TO_CREDENTIAL_FILE", "Machine")
Mulai ulang agen dengan menjalankan perintah berikut pada instance VM Anda:
Restart-Service -Name StackdriverMonitoring