Panduan ini menjelaskan cara memastikan bahwa agen Monitoring, yang Anda instal pada instance virtual machine (VM), diizinkan untuk mengirim data telemetri ke Kemampuan Observasi Google Cloud.
Ringkasan otorisasi
Otorisasi mengacu pada proses penentuan izin yang dimiliki klien yang diautentikasi untuk sekumpulan resource. Google Cloud memberikan otorisasi kepada agen Monitoring pada instance VM Compute Engine menggunakan kredensial default aplikasi (ADC).
Agen Monitoring mendukung ADC yang mengautentikasi akun layanan VM yang terpasang atau kunci akun layanan.
- Akun layanan terlampir mengacu pada akun layanan yang dikhususkan untuk resource tertentu, seperti VM. Akun layanan memiliki kredensial uniknya sendiri. ADC menggunakan server metadata VM untuk mendapatkan kredensial suatu layanan.
- Kunci akun layanan mengacu pada kunci pribadi yang digunakan untuk mengizinkan pasangan kunci di akun layanan dalam suatu project, yang memungkinkan Anda membuat token akses. Anda menggunakan token ini untuk memberikan identitas sehingga Anda dapat berinteraksi dengan Google Cloud API atas nama akun layanan.
Sebaiknya, konfigurasi ADC untuk mengautentikasi akun layanan yang terpasang 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.
Untuk instance VM AWS EC2, agen Monitoring 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 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:
Identifikasi project hosting AWS untuk akun AWS dengan instance EC2 Anda. Project hosting adalah project Google Cloud yang memiliki tujuan semata-mata untuk menyimpan metrik dan log dari instance EC2 di akun AWS.
Jika Anda memiliki project konektor AWS untuk akun AWS, project konektor adalah project hosting AWS.
Jika Anda tidak memiliki project konektor AWS untuk akun tersebut, telusuri project Google Cloud yang ada untuk menentukan apakah Anda sebelumnya membuat project hosting AWS untuk akun tersebut atau tidak. Jika ditemukan project hosting, gunakan project tersebut.
Jika Anda tidak dapat menemukan project hosting AWS untuk akun tersebut, sebaiknya buat project Google Cloud untuk dijadikan sebagai project hosting. Jika Anda memiliki instance EC2 di beberapa akun AWS, buat project Google Cloud untuk setiap akun. Sebaiknya gunakan juga konvensi penamaan untuk project ini atau gunakan label project agar Anda dapat mengidentifikasi project hosting. Sebaiknya jangan gunakan kembali project Google Cloud yang sudah ada, terutama jika project tersebut berisi resource Google Cloud.
Selesaikan langkah-langkah untuk memberikan otorisasi kepada agen menggunakan file kunci akun layanan.
Untuk memverifikasi cakupan akses, 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
Di 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 "pemantauan" 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:
-
Di panel navigasi Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances:
- Jika perlu, klik menu drop-down project Google Cloud dan pilih nama project Anda.
- Pilih VM instances dari menu navigasi, pilih tab Instances, lalu pilih nama VM Anda.
- Matikan VM dengan mengklik stop Stop.
- Setelah VM berhenti, klik edit Edit.
- Cari Cakupan akses di bagian Identity and API access pada halaman, lalu pilih Set access for Every API.
- Untuk entri Stackdriver Logging API dan Stackdriver Monitoring API, pilih Hanya Tulis.
- Klik Save, lalu mulai ulang VM dengan mengklik play_arrow Start/Resume.
Menggunakan akun layanan
Autentikasi mengacu pada proses penentuan identitas klien. Untuk autentikasi, sebaiknya gunakan akun layanan, yaitu jenis akun khusus yang biasanya digunakan oleh aplikasi atau beban kerja, bukan orang. Untuk mengetahui informasi selengkapnya, lihat Ringkasan akun layanan.
Anda dapat menggunakan akun layanan untuk autentikasi, di mana pun kode Anda dijalankan: di Compute Engine, App Engine, atau lokal. 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 tidak memiliki peran yang diperlukan.
Membuat akun layanan
Untuk membuat akun layanan, selesaikan prosedur Membuat akun layanan dengan informasi berikut:
Pilih project Google Cloud untuk membuat akun layanan.
Untuk instance Compute Engine, pilih project tempat Anda membuat instance.
Untuk instance Amazon EC2, pilih project hosting AWS.
Di menu drop-down Peran, pilih peran berikut:
- Monitoring > Monitoring Metric Writer. Tindakan ini akan mengizinkan Agen Monitoring.
Jika Anda juga akan menginstal agen Logging, tambahkan peran berikut untuk agen tersebut:
- Logging > Penulis Log. Tindakan ini akan memberikan otorisasi kepada agen Logging.
Jika Anda berencana untuk melakukan autentikasi menggunakan kunci akun layanan, pilih JSON sebagai Jenis kunci dan klik Buat.
Saat Anda mengklik Create, 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 berdasarkan apakah Anda memberi otorisasi menggunakan akun layanan 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 menambahkan peran penting yang tidak ada:
-
Pada panel navigasi Konsol Google Cloud, pilih IAM:
Jika perlu, klik menu drop-down project Google Cloud dan pilih nama project Anda.
Jika Anda tidak melihat daftar akun utama IAM (pengguna dan akun layanan), pilih tab Izin.
Dalam daftar Lihat menurut Utama, cari entri untuk akun layanan. Kolom Role 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 pada entri untuk akun layanan.
- Klik Tambahkan Peran Lain untuk menambahkan peran yang tidak ada.
- Klik Save.
Beri otorisasi dengan akun layanan terlampir
Untuk memberikan otorisasi kepada agen Monitoring yang diinstal di instance VM Compute Engine yang memiliki akun layanan terpasang, lakukan hal berikut:
Pastikan Anda memverifikasi cakupan akses VM.
Beri akun layanan Anda peran IAM dengan hak istimewa paling rendah. Untuk peran yang diperlukan, lihat bagian Membuat akun layanan di halaman ini.
Lampirkan akun layanan ke VM tempat agen berjalan.
Jika Anda belum menginstal agen, instal agen tersebut. Untuk mengetahui informasi tentang cara menginstal agen, lihat Menginstal agen.
Beri otorisasi dengan kunci akun layanan
Untuk mengizinkan agen Monitoring yang diinstal pada instance VM menggunakan kunci pribadi akun layanan, lakukan hal berikut:
Transfer file kunci akun layanan dari sistem lokal Anda ke instance VM:
Buat variabel lingkungan agar mengarah ke file kunci akun layanan di sistem lokal Anda. Contoh berikut membuat variabel bernama
CREDS
:CREDS=~/Downloads/PROJECT-NAME-KEY-ID.json
Selesaikan langkah-langkah yang ditampilkan dalam tabel berikut:
Compute Engine
-
Di panel navigasi Konsol Google Cloud, pilih Compute Engine, lalu pilih VM instances:
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 Anda ke instance VM:
REMOTE_USER="$USER" INSTANCE="INSTANCE_NAME" ZONE="INSTANCE_ZONE" gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"
Pada 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: Setiap lokasi yang Anda simpan di variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
, yang harus terlihat oleh proses agen. Untuk informasi konfigurasi, lihat MenetapkanGOOGLE_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:
Amazon EC2
Untuk VM Anda, identifikasi YOUR-INSTANCE'S-ID dan YOUR-INSTANCE'S-AWS-REGION.
Di sistem lokal Anda, gunakan scp untuk menyalin file kunci akun layanan dari sistem lokal ke instance VM Anda:
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 regionus-east-1
. Untuk mempelajari cara menentukan variabelINSTANCE
saat instance Anda berada di regionus-east-1
, lihat konvensi penamaan yang ditentukan oleh Amazon.Pada 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: Setiap lokasi yang Anda simpan di variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
, yang harus terlihat oleh proses agen. Untuk informasi konfigurasi, lihat MenetapkanGOOGLE_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"
-
Instance VM Anda sekarang memiliki file kunci akun layanan yang diperlukan agen. Berikutnya, instal atau mulai ulang agen:
Untuk mengetahui informasi tentang cara menginstal agen, lihat 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 menetapkan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS
agar terlihat oleh proses agen.
Linux
Edit file konfigurasi berikut, atau buat file jika tidak 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
untuk digunakan 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