Memantau pola penggunaan untuk akun layanan dan kunci

Halaman ini menjelaskan cara menggunakan Cloud Monitoring untuk melihat metrik penggunaan akun layanan dan kunci akun layanan Anda. Metrik ini memungkinkan Anda melihat dan melacak pola penggunaan, yang dapat membantu Anda mengidentifikasi anomali, baik secara otomatis maupun manual.

Akun layanan dan kunci akun layanan muncul dalam metrik ini jika digunakan untuk memanggil Google API apa pun, termasuk API yang bukan bagian dari Google Cloud. Metrik ini mencakup panggilan API yang berhasil dan gagal. Misalnya, jika panggilan API gagal karena pemanggil tidak diizinkan untuk memanggil API tersebut, atau karena permintaan merujuk ke resource yang tidak ada, akun layanan atau kunci yang digunakan untuk panggilan API tersebut muncul dalam metrik.

Kunci akun layanan juga muncul dalam metrik ini jika sistem mencantumkan kunci saat mencoba mengautentikasi permintaan, meskipun sistem tidak menggunakan kunci tersebut untuk mengautentikasi permintaan. Perilaku ini paling umum terjadi saat menggunakan URL bertanda tangan untuk Cloud Storage atau saat melakukan autentikasi ke aplikasi pihak ketiga. Hasilnya, Anda dapat melihat metrik penggunaan kunci yang belum digunakan untuk autentikasi.

Monitoring menyimpan metrik akun layanan selama 6 minggu. Jika perlu mengakses data untuk jangka waktu yang lebih lama, Anda dapat mengekspor hasilnya secara berkala ke BigQuery. Untuk informasi selengkapnya, lihat Memantau ekspor metrik dalam dokumentasi Solusi.

Setelah Anda menggunakan akun layanan atau kunci akun layanan, metrik penggunaan biasanya tersedia dalam beberapa menit.

Sebelum memulai

  • Enable the IAM and Cloud Monitoring APIs.

    Enable the APIs

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna melihat penggunaan terbaru untuk akun layanan dan kunci, minta administrator untuk memberi Anda peran IAM Monitoring Viewer (roles/monitoring.viewer) pada project. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Melihat metrik penggunaan untuk semua akun layanan atau kunci

Untuk melihat metrik penggunaan akun layanan atau kunci akun layanan Anda, ikuti langkah-langkah berikut:

Konsol

Untuk melihat metrik untuk resource yang dimonitor menggunakan Metrics Explorer, lakukan langkah berikut:

  1. Di konsol Google Cloud, buka halaman  Metrics explorer:

    Buka Metrics explorer

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

  2. Pada elemen Metric, luaskan menu Select a metric, masukkan IAM Service Account di panel filter, lalu gunakan submenu untuk memilih jenis dan metrik resource tertentu:
    1. Di menu Resource aktif, pilih Akun Layanan IAM.
    2. Di menu Kategori metrik aktif, pilih Akun_layanan.
    3. Di menu Metrik aktif, pilih metrik akun layanan. Metrik berikut tersedia dalam interval waktu yang Anda pilih:
      • Untuk metrik penggunaan akun layanan, pilih Peristiwa autentikasi akun layanan.
      • Untuk metrik penggunaan kunci akun layanan, pilih Peristiwa autentikasi kunci akun layanan.
    4. Klik Apply.
  3. Untuk menghapus deret waktu dari tampilan, gunakan elemen Filter.

  4. Untuk menggabungkan deret waktu, gunakan menu pada elemen Agregasi. Misalnya, untuk menampilkan pemakaian CPU bagi VM Anda, berdasarkan zonanya, tetapkan menu pertama ke Rataan dan menu kedua ke zona.

    Semua deret waktu ditampilkan saat menu pertama elemen Agregasi ditetapkan ke Unaggregated. Setelan default untuk elemen Agregasi ditentukan oleh jenis metrik yang Anda pilih.

  5. Untuk kuota dan metrik lain yang melaporkan satu sampel per hari, lakukan tindakan berikut:
    1. Di panel Display, tetapkan Jenis widget ke Diagram batang bertumpuk.
    2. Tetapkan jangka waktu setidaknya satu minggu.

REST

Metode timeSeries.list API pada Cloud Monitoring API memungkinkan Anda mengakses metrik penggunaan secara terprogram.

Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda ID project adalah string alfanumerik, seperti my-project.
  • METRIC_TYPE: Jenis metrik yang ingin Anda periksa. Gunakan salah satu nilai berikut:
    • Untuk metrik penggunaan akun layanan, gunakan iam.googleapis.com%2Fservice_account%2Fauthn_events_count.
    • Untuk metrik penggunaan kunci akun layanan, gunakan iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count.
  • END_TIME: Akhir dari interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Awal interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-04-12T00%3A00%3A00.00Z.

Metode HTTP dan URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22METRIC_TYPE%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Untuk informasi selengkapnya tentang membaca metrik penggunaan secara terprogram, lihat Membaca data metrik dalam dokumentasi Monitoring.

Melihat metrik penggunaan untuk akun layanan tunggal

Untuk melihat metrik penggunaan untuk akun layanan tunggal, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Akun Layanan.

    Buka Akun Layanan

  2. Pilih project yang berisi akun layanan Anda.

  3. Klik alamat email akun layanan Anda.

  4. Klik tab Metrik. Chart Traffic autentikasi menunjukkan metrik penggunaan untuk akun layanan.

  5. Opsional: Untuk melihat chart di halaman Metrics Explorer, yang menawarkan opsi pemfilteran dan tampilan tambahan, klik  > Lihat di Metrics Explorer.

REST

Metode timeSeries.list Cloud Monitoring API, jika digunakan dengan filter tertentu, memungkinkan Anda mendapatkan metrik penggunaan untuk akun layanan tunggal. Anda kemudian dapat menggunakan metrik tersebut untuk menentukan kapan akun terakhir digunakan.

Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda ID project adalah string alfanumerik, seperti my-project.
  • SERVICE_ACCOUNT_ID: ID numerik unik akun layanan Anda. Untuk menemukan ID numerik unik akun layanan Anda, ikuti langkah-langkah berikut:
    1. Di konsol Google Cloud, buka halaman Akun Layanan.

      Buka Halaman akun layanan
    2. Klik alamat email akun layanan Anda. ID numerik unik akun layanan Anda adalah nilai di kolom ID Unik.
  • END_TIME: Akhir dari interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Awal interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-04-12T00%3A00%3A00.00Z.

Metode HTTP dan URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fauthn_events_count%22%20AND%20resource.labels.unique_id%3D%22SERVICE_ACCOUNT_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Respons berisi objek timeSeries dengan semua peristiwa autentikasi terbaru untuk akun layanan yang ditentukan.

Melihat metrik penggunaan untuk kunci akun layanan tunggal

Agar dapat melihat metrik penggunaan untuk kunci akun layanan tunggal, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Akun Layanan.

    Buka Akun Layanan

  2. Pilih project yang berisi akun layanan yang terkait dengan kunci Anda.

  3. Klik alamat email akun layanan yang terkait dengan kunci Anda.

  4. Klik tab Metrik. Chart Traffic autentikasi per kunci menunjukkan metrik penggunaan untuk semua kunci yang terkait dengan akun layanan.

  5. Dalam legenda chart, klik ID kunci akun layanan yang ingin Anda lihat metrik penggunaannya. Chart akan diperbarui untuk menampilkan metrik hanya untuk kunci akun layanan tersebut.

  6. Opsional: Untuk melihat chart di halaman Metrics Explorer, yang menawarkan opsi pemfilteran dan tampilan tambahan, klik  > Lihat di Metrics Explorer.

REST

Pertama, dapatkan ID kunci akun layanan.

  1. Cantumkan kunci akun layanan:

    Metode projects.serviceAccounts.keys.list mencantumkan semua kunci akun layanan untuk akun layanan.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • PROJECT_ID: Project ID Google Cloud Anda Project ID adalah string alfanumerik, seperti my-project.
    • SA_NAME: Nama akun layanan yang kuncinya ingin Anda cantumkan.
    • KEY_TYPES: Opsional. Daftar yang dipisahkan koma untuk jenis kunci yang ingin Anda sertakan dalam respons. Jenis kunci menunjukkan apakah kunci dikelola oleh pengguna (USER_MANAGED) atau dikelola sistem (SYSTEM_MANAGED). Jika dibiarkan kosong, semua kunci akan ditampilkan.

    Metode HTTP dan URL:

    GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES

    Untuk mengirim permintaan, perluas salah satu opsi berikut:

    Anda akan menerima respons JSON seperti berikut:

    {
      "keys": [
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
          "validAfterTime": "2020-03-04T17:39:47Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
          "validAfterTime": "2020-03-31T23:50:09Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
          "validAfterTime": "2020-05-17T18:58:13Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED",
          "disabled": true
          "disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED"
          "extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED"
          "extended_status_message": "exposed at: https://www.github.com/SomePublicRepo"
        }
      ]
    }
    

  2. Gunakan metadata dalam respons untuk mengidentifikasi kunci yang ingin Anda lacak. Kemudian, salin ID unik kunci dari akhir kolom name.

    Kolom name memiliki format berikut:

    "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"

    ID unik kunci adalah semuanya setelah keys/.

    Misalnya, ID unik dalam nama kunci berikut adalah 0f561cc41650ff521899de2fd653bd3de08e2da4:

    "name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"

Kemudian, gunakan ID tersebut untuk melihat metrik penggunaan untuk kunci akun layanan.

Metode timeSeries.list pada Cloud Monitoring API, jika digunakan dengan filter tertentu, memungkinkan Anda mendapatkan metrik penggunaan untuk kunci akun layanan tunggal. Anda kemudian dapat menggunakan metrik tersebut untuk menentukan kapan kunci terakhir digunakan.

Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Google Cloud Anda ID project adalah string alfanumerik, seperti my-project.
  • KEY_ID: ID unik kunci akun layanan Anda.
  • END_TIME: Akhir dari interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: Awal interval waktu yang ingin Anda periksa, dalam format RFC 3339 yang dienkode dengan persen. Contohnya, 2020-04-12T00%3A00%3A00.00Z.

Metode HTTP dan URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count%22%20AND%20metric.labels.key_id%3D%22KEY_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Respons berisi objektimeSeries dengan semua peristiwa autentikasi terbaru untuk kunci akun layanan yang ditentukan.

Metrik ekspor

Anda dapat menggunakan Monitoring untuk mengekspor metrik ke BigQuery. Mengekspor metrik berguna untuk melakukan analisis jangka panjang karena Monitoring hanya menyimpan metrik selama waktu yang terbatas.

Untuk mengetahui petunjuknya, lihat Memantau ekspor metrik di dokumentasi Solusi.

Langkah selanjutnya

  • Gunakan insight akun layanan untuk mengidentifikasi akun layanan yang tidak digunakan dalam 90 hari terakhir.