Menggunakan Analisis Aset

Topik ini menunjukkan cara menggunakan Asset Insights untuk mendeteksi potensi risiko dalam konfigurasi aset dan membantu Anda meningkatkan postur keamanan.

Ringkasan

Cloud Asset Insights memberikan insight berdasarkan kebijakan IAM yang terkait dengan resource organisasi Anda. Ini adalah bagian dari layanan Pemberi Rekomendasi dan disediakan sebagai jenis insight google.cloudasset.asset.Insight. Insight adalah anomali spesifik yang memerlukan analisis lebih lanjut untuk menentukan tindakan yang tepat. Aset tersebut dihasilkan setiap hari, berdasarkan ringkasan data yang disimpan di Inventaris Aset Cloud.

Sebelum memulai

Sebelum dapat mulai menggunakan Asset Insights, Anda harus menyelesaikan langkah-langkah berikut.

  1. Aktifkan Recommender API.

  2. Pastikan akun Anda memiliki izin berikut:

    • recommender.cloudAssetInsights.get

    • recommender.cloudAssetInsights.list

    • recommender.cloudAssetInsights.update

    Anda dapat memberikan izin ini satu per satu, atau memberikan salah satu peran berikut.

    • Peran Cloud Asset Insights Viewer (roles/recommender.cloudAssetInsightsViewer)

    • Peran Cloud Asset Insights Admin (roles/recommender.cloudAssetInsightsAdmin)

Meminta Insight Aset

Untuk meminta Asset Insights, cara termudah adalah dengan mencantumkan insight seperti yang ditunjukkan pada langkah-langkah berikut. Untuk jenis interaksi insight lainnya, lihat panduan insight untuk Recommender API.

Meminta wawasan proyek

Untuk meminta insight tentang project, buat salah satu permintaan berikut.

gcloud

Jalankan perintah gcloud CLI berikut guna mencantumkan insight untuk project, folder, atau organisasi Anda.

Project

gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Berikan nilai berikut:

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

Tanda lainnya:

  • --filter: Opsional. Memfilter hasil menurut subjenis insight.

  • --format: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:

    gcloud recommender insights list \
        --project=PROJECT_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

Folder

gcloud recommender insights list \
    --folder=FOLDER_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Berikan nilai berikut:

  • FOLDER_ID: ID folder yang ingin Anda lihat insight-nya.

    Cara menemukan ID folder Google Cloud

    Konsol

    Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

    1. Buka Konsol Google Cloud.

      Buka konsol Google Cloud

    2. Klik kotak pengalih di panel menu.
    3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
    4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

    gcloud CLI

    Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

    Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:

    gcloud resource-manager folders list --folder=FOLDER_ID

Tanda lainnya:

  • --filter: Opsional. Memfilter hasil menurut subjenis insight.

  • --format: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:

    gcloud recommender insights list \
        --folder=FOLDER_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

Organisasi

gcloud recommender insights list \
    --organization=ORGANIZATION_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Berikan nilai berikut:

  • ORGANIZATION_ID: ID organisasi yang Anda inginkan insight-nya.

    Cara menemukan ID organisasi Google Cloud

    Konsol

    Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

    1. Buka Konsol Google Cloud.

      Buka konsol Google Cloud

    2. Klik kotak pengalih di panel menu.
    3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
    4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

    gcloud CLI

    Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Tanda lainnya:

  • --filter: Opsional. Memfilter hasil menurut subjenis insight.

  • --format: Opsional. Format output yang didukung untuk gcloud CLI. Misalnya, untuk mencantumkan isi insight sebagai tabel yang disatukan:

    gcloud recommender insights list \
        --organization=ORGANIZATION_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

REST

Jalankan perintah curl berikut guna menampilkan insight untuk project, folder, atau organisasi Anda.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
     https://recommender.googleapis.com/v1/SCOPE/locations/global/insightTypes/google.cloudasset.asset.Insight/insights

Berikan nilai berikut:

  • SCOPE: Cakupan dapat berupa project, folder, atau organisasi.

    Nilai yang diizinkan adalah:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cara menemukan nomor project Google Cloud

      Konsol

      Untuk menemukan nomor project Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka halaman Dasbor di Konsol Google Cloud.

        Buka Dasbor

      2. Klik kotak pengalih di panel menu.
      3. Pilih organisasi dari kotak Pilih dari, lalu telusuri nama project Anda.
      4. Klik nama project untuk beralih ke project tersebut. Nomor project ditampilkan di kartu Project info.

      gcloud CLI

      Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cara menemukan ID folder Google Cloud

      Konsol

      Untuk menemukan ID folder Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka Konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak pengalih di panel menu.
      3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
      4. Telusuri nama folder Anda. ID folder ditampilkan di samping nama folder.

      gcloud CLI

      Anda dapat mengambil ID folder Google Cloud yang berada di tingkat organisasi dengan perintah berikut:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dengan TOP_LEVEL_FOLDER_NAME dapat berupa pencocokan string penuh atau sebagian. Hapus opsi --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Untuk mendapatkan ID folder dalam folder lain, cantumkan subfoldernya:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cara menemukan ID organisasi Google Cloud

      Konsol

      Untuk menemukan ID organisasi Google Cloud, selesaikan langkah-langkah berikut:

      1. Buka Konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak pengalih di panel menu.
      3. Klik kotak Pilih dari, lalu pilih organisasi Anda.
      4. Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.

      gcloud CLI

      Anda dapat mengambil ID organisasi Google Cloud dengan perintah berikut:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Menafsirkan respons insight

Selain atribut insight standar, Asset Insights menyediakan beberapa subjenis dan kolom khusus.

Subjenis wawasan

Ada tujuh subjenis Asset Insight yang berbeda.

  • EXTERNAL_MEMBER: Mendeteksi kebijakan IAM yang berisi pengguna atau grup yang termasuk dalam domain di luar domain organisasi Anda.

  • EXTERNAL_POLICY_EDITOR: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk mengubah kebijakan IAM.

  • EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk mendapatkan atau mencantumkan objek penyimpanan (storage.objects.list atau storage.objects.get permission).

  • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: Mendeteksi kebijakan IAM yang berisi pengguna atau grup di luar domain organisasi Anda yang diberi izin untuk meniru identitas akun layanan.

  • TERMINATED_MEMBER: Mendeteksi kebijakan IAM yang berisi pengguna atau grup dengan akun yang dinonaktifkan, dihapus, atau dihapus permanen.

  • PUBLIC_IAM_POLICY: Mendeteksi kebijakan IAM yang berisi semua pengguna atau semua pengguna yang diautentikasi.

  • OWNER_TERMINATED_PROJECT: Mendeteksi project yang tidak berisi grup atau pengguna aktif dalam kebijakan IAM project.

Kolom konten tambahan

Selain kolom standar dalam respons, Asset Insights menyediakan beberapa kolom khusus di kolom content.

  • user: Alamat email pengguna tertentu yang terdeteksi dalam anggota binding kebijakan untuk insight tertentu ini. Kolom ini disertakan dalam subjenis TERMINATED_MEMBER.

  • domain: Domain spesifik yang terdeteksi dalam anggota binding kebijakan dari insight tertentu ini. Kolom ini disertakan dalam subjenis EXTERNAL_MEMBER, EXTERNAL_POLICY_EDITOR, EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER, dan EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR.

  • assetName: Nama aset yang aksesnya terdeteksi untuk insight tertentu. Kolom ini disertakan dalam subjenis OWNER_TERMINATED_PROJECT dan PUBLIC_IAM_POLICY.

  • policyCount: Jumlah total kebijakan IAM berbeda tempat anggota yang cocok terdeteksi untuk insight tertentu ini. Kolom ini disertakan untuk semua subjenis Asset Insights.

  • matchedPolicies: Sampling kebijakan IAM yang cocok dengan insight yang terdeteksi. Kebijakan yang cocok hanya menyertakan subkumpulan binding dan anggota binding yang cocok dengan insight yang terdeteksi. Kolom ini disertakan untuk semua subjenis Asset Insights.

  • policySearchQuery: Kueri yang dapat digunakan dengan API penelusuran kebijakan IAM Inventaris Aset Cloud untuk mengambil semua kebijakan yang relevan secara real time.

Contoh respons

Cuplikan kode berikut menunjukkan format respons contoh.

{
   "name": "organizations/1234567/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/0ab35ae7-afa8-42a3-a173-92da8771a489",
   "description": "Domain example.com detected in 1 IAM policies",
   "content": {
      "domain": "example.com",
      "policyCount": 1,
      "policySearchQuery": "policy: example.com",
      "matchedPolicies" :[
         {
            "resource" :"//cloudresourcemanager.googleapis.com/projects/5678910",
            "project" :"projects/5678910",
            "matchedBindings" :[
               {
                  "role" :"roles/viewer",
                  "matchedMembers" :[
                     "user:example@example.com"
                  ]
               }
            ]
         }
      ]
   },
   "lastRefreshTime": "2020-12-04T06:59:04Z",
   "observationPeriod": "0s",
   "stateInfo": {
      "state": "ACTIVE"
   },
   "category": "SECURITY",
   "targetResources": [
      "//cloudresourcemanager.googleapis.com/organizations/1234567"
   ],
   "insightSubtype": "EXTERNAL_MEMBER",
   "etag": "\"00000000000\"",
   "initialRefreshTime": "2020-12-01T06:58:03Z"
}

Batasan

  • Insight ini tidak menganggap keanggotaan grup sebagai bagian dari temuannya dan tidak boleh dianggap sebagai daftar lengkap kerentanan pencocokan.

  • Masing-masing insight mencakup pengambilan sampel kebijakan IAM yang cocok, yang dibatasi hingga 100 kebijakan berbeda. Semua kebijakan yang cocok dapat diambil dengan memanggil penelusuran kebijakan Inventaris Aset Cloud.

  • Insight aset tidak mempertimbangkan akun layanan untuk tujuan pembuatan insight.