Menemukan akun layanan yang tidak digunakan

Halaman ini menunjukkan cara mengelola insight akun layanan, yang merupakan temuan tentang akun layanan mana di project Anda yang belum digunakan dalam 90 hari terakhir.

Permintaan yang diautentikasi oleh kunci API yang terikat ke akun layanan tidak dicatat dalam metrik penggunaan akun layanan. Akibatnya, akun layanan ini mungkin dilaporkan sebagai tidak digunakan.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk mengelola insight akun layanan, minta administrator untuk memberi Anda peran IAM berikut pada project yang ingin Anda kelola insight-nya:

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk mengelola insight akun layanan. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk mengelola insight akun layanan:

  • Untuk melihat insight akun layanan:
    • recommender.iamServiceAccountinsights.get
    • recommender.iamServiceAccountinsights.list
  • Untuk mengubah insight akun layanan: recommender.iamServiceAccountinsights.update

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Mencantumkan insight akun layanan

Untuk mencantumkan semua insight akun layanan untuk project Anda, gunakan salah satu metode berikut:

gcloud

Gunakan perintah gcloud recommender insights list untuk melihat semua insight akun layanan untuk project Anda.

Sebelum menjalankan perintah, ganti nilai berikut:

  • PROJECT_ID: ID project yang ingin Anda lihat daftar insight-nya.
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \
    --project=PROJECT_ID \
    --location=global

Output mencantumkan semua insight akun layanan untuk project Anda. Contoh:

INSIGHT_ID                            CATEGORY  INSIGHT_STATE  LAST_REFRESH_TIME     SEVERITY  INSIGHT_SUBTYPE        DESCRIPTION
446303ba-2a14-49cc-b9fa-e2d2499d4f82  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       SERVICE_ACCOUNT_USAGE  Service account sa-1@my-project.iam.gserviceaccount.com was inactive.
4cfd82c3-7320-4dc6-9b67-ca0756bbd54c  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       SERVICE_ACCOUNT_USAGE  Service account sa-2@my-project.iam.gserviceaccount.com was inactive.
a627bed7-c8f4-4611-89c9-2a9a8618ca1b  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       SERVICE_ACCOUNT_USAGE  Service account sa-3@my-project.iam.gserviceaccount.com was inactive.
a922dd59-df0a-422d-a2a4-096195e1dae5  SECURITY  ACTIVE         2022-05-24T07:00:00Z  LOW       SERVICE_ACCOUNT_USAGE  Service account sa-4@my-project.iam.gserviceaccount.com was inactive.

REST

Metode Recommender API insights.list mencantumkan semua insight akun layanan untuk project Anda.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project yang ingin Anda lihat insight-nya.

Metode HTTP dan URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Respons mencantumkan semua insight akun layanan untuk project Anda. Contoh:

{
  "insights": [
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82",
      "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.",
      "content": {
        "serviceAccountId": "103185812403937829397",
        "email": "sa-1@my-project.iam.gserviceaccount.com",
        "lastAuthenticatedTime": "2020-09-11T07:00:00Z"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "19008000s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ],
      "insightSubtype": "SERVICE_ACCOUNT_USAGE",
      "etag": "\"9d797dd04263c855\"",
      "severity": "LOW"
    },
    {
      "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/4cfd82c3-7320-4dc6-9b67-ca0756bbd54c",
      "description": "Service account sa-2@my-project.iam.gserviceaccount.com was inactive.",
      "content": {
        "serviceAccountId": "105496400997178042131",
        "email": "sa-2@my-project.iam.gserviceaccount.com"
      },
      "lastRefreshTime": "2022-05-24T07:00:00Z",
      "observationPeriod": "16070400s",
      "stateInfo": {
        "state": "ACTIVE"
      },
      "category": "SECURITY",
      "targetResources": [
        "//cloudresourcemanager.googleapis.com/projects/123456789012"
      ],
      "insightSubtype": "SERVICE_ACCOUNT_USAGE",
      "etag": "\"783a32b635d79a4e\"",
      "severity": "LOW"
    }
  ]
}

Untuk mempelajari lebih lanjut komponen insight, lihat Meninjau insight akun layanan di halaman ini.

Mendapatkan insight akun layanan tunggal

Untuk mendapatkan informasi selengkapnya tentang satu insight, termasuk deskripsi, status, dan rekomendasi yang terkait dengan insight tersebut, gunakan salah satu metode berikut:

gcloud

Gunakan perintah gcloud recommender insights describe dengan ID insight Anda untuk melihat informasi tentang satu insight.

  • INSIGHT_ID: ID insight yang ingin Anda lihat. Untuk menemukan ID, cantumkan insight untuk project Anda.
  • PROJECT_ID: ID project yang ingin Anda kelola insight-nya.
gcloud recommender insights describe INSIGHT_ID \
    --insight-type=google.iam.serviceAccount.Insight \
    --project=PROJECT_ID \
    --location=global

Output menampilkan insight secara mendetail. Misalnya, insight berikut menunjukkan bahwa akun layanan sa-1@my-project.iam.gserviceaccount.com belum diautentikasi sejak 11 Oktober 2020.

category: SECURITY
content:
  email: sa-1@my-project.iam.gserviceaccount.com
  lastAuthenticatedTime: '2020-10-11T07:00:00Z'
  serviceAccountId: '103185812403937829397'
description: Service account sa-1@my-project.iam.gserviceaccount.com
  was inactive.
etag: '"9d797dd04263c855"'
insightSubtype: SERVICE_ACCOUNT_USAGE
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82
observationPeriod: 19008000s
severity: LOW
stateInfo:
  state: ACTIVE
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Untuk mempelajari lebih lanjut komponen insight, lihat Meninjau insight akun layanan di halaman ini.

REST

Metode insights.get Recommender API mendapatkan satu insight.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project yang ingin Anda kelola insight-nya.
  • INSIGHT_ID: ID insight yang ingin Anda lihat. Jika Anda tidak mengetahui ID insight, Anda dapat menemukannya dengan mencantumkan insight di project Anda. ID insight adalah semua yang ada setelah insights/ di kolom name untuk insight.

Metode HTTP dan URL:

GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Responsnya berisi insight. Misalnya, insight berikut menunjukkan bahwa akun layanan sa-1@my-project.iam.gserviceaccount.com belum diautentikasi sejak 11 Oktober 2020.

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82",
  "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.",
  "content": {
    "serviceAccountId": "103185812403937829397",
    "email": "sa-1@my-project.iam.gserviceaccount.com",
    "lastAuthenticatedTime": "2020-09-11T07:00:00Z"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "19008000s",
  "stateInfo": {
    "state": "ACTIVE"
  },
  "category": "SECURITY",
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "SERVICE_ACCOUNT_USAGE",
  "etag": "\"9d797dd04263c855\"",
  "severity": "LOW"
}

Untuk mempelajari lebih lanjut komponen insight, lihat Meninjau insight akun layanan di halaman ini.

Meninjau insight akun layanan

Setelah mendapatkan satu insight, Anda dapat meninjau isinya untuk memahami pola penggunaan resource yang disorot.

Konten insight ditentukan oleh subjenisnya. Insight akun layanan (google.iam.serviceAccount.Insight) memiliki subjenis SERVICE_ACCOUNT_USAGE.

Insight SERVICE_ACCOUNT_USAGE memiliki komponen berikut, tidak harus dalam urutan ini:

  • associatedRecommendations: ID untuk rekomendasi yang terkait dengan insight. Jika tidak ada rekomendasi yang terkait dengan insight, kolom ini akan kosong.
  • category: Kategori untuk insight IAM selalu SECURITY.
  • content: Melaporkan terakhir kali akun layanan diautentikasi. Kolom ini berisi komponen berikut:

    • email: Alamat email akun layanan.
    • lastAuthenticatedTime: Waktu terakhir kali akun layanan diautentikasi. Jika akun layanan tidak memiliki autentikasi yang tercatat, kolom ini tidak disertakan.
    • serviceAccountId: ID numerik unik akun layanan.
  • description: Ringkasan insight yang dapat dibaca manusia.
  • etag: ID unik untuk status insight saat ini. Setiap kali insight berubah, nilai etag baru akan ditetapkan.

    Untuk mengubah status insight, Anda harus memberikan etag dari insight yang ada. Penggunaan etag membantu memastikan bahwa setiap operasi hanya dilakukan jika insight tidak berubah sejak terakhir kali Anda mengambilnya.

  • insightSubtype: Subjenis insight.
  • lastRefreshTime: Tanggal saat insight terakhir diperbarui, yang menunjukkan keaktualan data yang digunakan untuk menghasilkan insight.
  • name: Nama insight, dalam format berikut:

    projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID

    Placeholder memiliki nilai berikut:

    • PROJECT_ID: ID project tempat insight dibuat.
    • INSIGHT_ID: ID unik untuk insight.
  • observationPeriod: Jangka waktu yang mengarah ke insight. Data sumber yang digunakan untuk membuat insight berakhir pada lastRefreshTime dan dimulai pada lastRefreshTime dikurangi observationPeriod.
  • stateInfo: Insight mengalami beberapa transisi status setelah diusulkan:

    • ACTIVE: Insight telah dibuat, tetapi tidak ada tindakan yang diambil, atau tindakan diambil tanpa memperbarui status insight. Insight aktif diperbarui saat data pokok berubah.
    • ACCEPTED: Beberapa tindakan telah dilakukan berdasarkan insight. Insight diterima saat rekomendasi terkait ditandai CLAIMED, SUCCEEDED, atau FAILED, atau insight diterima secara langsung. Saat insight berada dalam status ACCEPTED, konten insight tidak dapat berubah. Insight yang diterima disimpan selama 90 hari setelah diterima.
  • targetResources: Nama lengkap resource project yang menjadi tujuan insight. Misalnya, //cloudresourcemanager.googleapis.com/projects/123456789012.

Menandai insight akun layanan sebagai ACCEPTED

Jika Anda mengambil tindakan berdasarkan analisis aktif, Anda dapat menandai analisis tersebut sebagai ACCEPTED. Status ACCEPTED memberi tahu Recommender API bahwa Anda telah mengambil tindakan berdasarkan insight ini, yang membantu menyempurnakan rekomendasi Anda.

Insight yang diterima disimpan selama 90 hari setelah ditandai sebagai ACCEPTED.

gcloud

Gunakan perintah gcloud recommender insights mark-accepted dengan ID insight Anda untuk menandai insight sebagai ACCEPTED.

  • INSIGHT_ID: ID insight yang ingin Anda lihat. Untuk menemukan ID, cantumkan insight untuk project Anda.
  • PROJECT_ID: ID project yang ingin Anda kelola insight-nya.
  • ETAG: ID untuk versi insight. Untuk mendapatkan etag, lakukan hal berikut:

    1. Dapatkan insight menggunakan perintah gcloud recommender insights describe.
    2. Temukan dan salin nilai etag dari output, termasuk tanda kutip yang mengapitnya. Contoh, "d3cdec23cc712bd0".
gcloud recommender insights mark-accepted INSIGHT_ID \
    --insight-type=google.iam.serviceAccount.Insight \
    --project=PROJECT_ID \
    --location=global \
    --etag=ETAG

Output menampilkan insight, sekarang dengan status ACCEPTED:

category: SECURITY
content:
  email: sa-1@my-project.iam.gserviceaccount.com
  lastAuthenticatedTime: '2020-10-11T07:00:00Z'
  serviceAccountId: '103185812403937829397'
description: Service account sa-1@my-project.iam.gserviceaccount.com
  was inactive.
etag: '"39c4199dcec92848"'
insightSubtype: SERVICE_ACCOUNT_USAGE
lastRefreshTime: '2022-05-24T07:00:00Z'
name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82
observationPeriod: 19008000s
severity: LOW
stateInfo:
  state: ACCEPTED
targetResources:
- //cloudresourcemanager.googleapis.com/projects/123456789012

Untuk mempelajari lebih lanjut info status insight, lihat Meninjau insight akun layanan di halaman ini.

REST

Metode insights.markAccepted Recommender API menandai insight sebagai ACCEPTED.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID project yang ingin Anda kelola insight-nya.
  • INSIGHT_ID: ID insight yang ingin Anda lihat. Jika Anda tidak mengetahui ID insight, Anda dapat menemukannya dengan mencantumkan insight di project Anda. ID insight adalah semua yang ada setelah insights/ di kolom name untuk insight.
  • ETAG: ID untuk versi insight. Untuk mendapatkan etag, lakukan hal berikut:
    1. Dapatkan insight menggunakan metode insights.get.
    2. Temukan dan salin nilai etag dari respons.

Metode HTTP dan URL:

POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted

Meminta isi JSON:

{
  "etag": "ETAG"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Responsnya berisi insight, kini dengan status ACCEPTED:

{
  "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82",
  "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.",
  "content": {
    "serviceAccountId": "103185812403937829397",
    "email": "sa-1@my-project.iam.gserviceaccount.com",
    "lastAuthenticatedTime": "2020-10-11T07:00:00Z"
  },
  "lastRefreshTime": "2022-05-24T07:00:00Z",
  "observationPeriod": "19008000s",
  "stateInfo": {
    "state": "ACCEPTED"
    },
  "category": "SECURITY",
  "targetResources": [
    "//cloudresourcemanager.googleapis.com/projects/123456789012"
  ],
  "insightSubtype": "SERVICE_ACCOUNT_USAGE",
  "etag": "\"39c4199dcec92848\"",
  "severity": "LOW"
}

Untuk mempelajari lebih lanjut info status insight, lihat Meninjau insight akun layanan di halaman ini.

Langkah berikutnya