Meningkatkan postur keamanan Anda dengan insight aset

Insight Cloud Asset Inventory dapat membantu mendeteksi potensi risiko dalam konfigurasi aset Anda, dan membantu Anda meningkatkan postur keamanan. Ini adalah bagian dari layanan Pemberi rekomendasi, dan disediakan sebagai jenis insight google.cloudasset.asset.Insight.

Insight adalah anomali tertentu yang memerlukan analisis lebih lanjut untuk menentukan tindakan yang sesuai. Laporan ini dibuat setiap hari, berdasarkan snapshot data yang disimpan di Cloud Asset Inventory.

Insight yang disediakan oleh Inventaris Aset Cloud didasarkan pada kebijakan IAM yang terkait dengan resource organisasi Anda.

Sebelum memulai

Sebelum dapat mulai menggunakan analisis aset, 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 Anda dapat memberikan salah satu peran berikut.

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

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

Batasan

  • Insight ini tidak mempertimbangkan keanggotaan grup atau akun layanan sebagai bagian dari temuannya, dan tidak boleh dianggap sebagai daftar lengkap kerentanan yang cocok.

  • Setiap insight menyertakan sampel kebijakan IAM yang cocok dengan batas 100 kebijakan yang berbeda. Semua kebijakan yang cocok dapat diambil dengan menelusuri kebijakan izin IAM pada resource.

Meminta insight aset

Cara termudah untuk meminta insight aset adalah dengan mencantumkannya, seperti yang ditunjukkan dalam langkah-langkah berikut. Untuk jenis interaksi insight lainnya, lihat Menggunakan API - Insight.

gcloud

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

Berikan nilai berikut:

  • SCOPE: Gunakan salah satu nilai berikut:

    • project=PROJECT_ID, dengan PROJECT_ID adalah ID project yang insight-nya Anda inginkan.
    • folder=FOLDER_ID, dengan FOLDER_ID adalah ID folder yang insight-nya Anda inginkan.

      Cara menemukan ID folder Google Cloud

      Konsol Google Cloud

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

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      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 adalah pencocokan string sebagian atau penuh untuk nama folder. Hapus tanda --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organization=ORGANIZATION_ID, dengan ORGANIZATION_ID adalah ID organisasi yang insight-nya Anda inginkan.

      Cara menemukan ID organisasi Google Cloud

      Konsol Google Cloud

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

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      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))"
  • BILLING_PROJECT_ID: Opsional. ID project tempat agen layanan Cloud Asset Inventory default berada yang memiliki izin untuk mengelola penagihan dan kuota Anda. Baca selengkapnya tentang cara menetapkan project penagihan.

  • SUBTYPE: Subjenis insight aset. Salah satu nilai berikut:

    • 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 (izin storage.objects.list atau storage.objects.get).
    • 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.
    • PUBLIC_IAM_POLICY: Mendeteksi kebijakan IAM yang berisi semua pengguna atau semua pengguna yang diautentikasi.
    • OWNER_TERMINATED_PROJECT: Mendeteksi project yang tidak berisi pengguna atau grup aktif dalam kebijakan IAM project.
  • Jika tidak ditentukan, semua subjenis akan ditampilkan.

Lihat referensi gcloud CLI untuk semua opsi.

Contoh

Jalankan perintah berikut untuk mencantumkan insight untuk project my-project.

gcloud recommender insights list \
    --project=my-project \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight

Contoh respons

INSIGHT_ID: 00000000-0000-0000-0000-000000000000
CATEGORY: SECURITY
INSIGHT_STATE: ACTIVE
LAST_REFRESH_TIME: 2024-01-30T00:00:00Z
SEVERITY: LOW
INSIGHT_SUBTYPE: EXTERNAL_MEMBER
DESCRIPTION: Domain example.com detected in 1 IAM policies

REST

Metode HTTP dan URL:

GET https://recommender.googleapis.com/v1/SCOPE_PATH/locations/global/insightTypes/google.cloudasset.asset.Insight/insights

Header:

X-Goog-User-Project: BILLING_PROJECT_ID

Berikan nilai berikut:

  • SCOPE_PATH: Gunakan salah satu nilai berikut:

    Nilai yang diizinkan adalah:

    • projects/PROJECT_ID, dengan PROJECT_ID adalah ID project yang insight-nya Anda inginkan.
    • projects/PROJECT_NUMBER, dengan PROJECT_NUMBER adalah nomor project yang insight-nya Anda inginkan.

      Cara menemukan nomor project Google Cloud

      Konsol Google Cloud

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

      1. Buka halaman Selamat Datang di konsol Google Cloud.

        Buka Selamat Datang

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar, lalu telusuri nama project Anda. Nama project, nomor project, dan project ID ditampilkan di dekat judul Selamat Datang.

        Hingga 4.000 resource ditampilkan. Jika Anda tidak melihat project yang dicari, buka halaman Kelola resource dan filter daftar menggunakan nama project tersebut.

      gcloud CLI

      Anda dapat mengambil nomor project Google Cloud dengan perintah berikut:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dengan FOLDER_ID adalah ID folder yang insight-nya Anda inginkan.

      Cara menemukan ID folder Google Cloud

      Konsol Google Cloud

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

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      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 adalah pencocokan string sebagian atau penuh untuk nama folder. Hapus tanda --format untuk melihat informasi selengkapnya tentang folder yang ditemukan.

      Perintah sebelumnya tidak menampilkan ID subfolder dalam folder. Untuk melakukannya, jalankan perintah berikut menggunakan ID folder tingkat teratas:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dengan ORGANIZATION_ID adalah ID organisasi yang insight-nya Anda inginkan.

      Cara menemukan ID organisasi Google Cloud

      Konsol Google Cloud

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

      1. Buka konsol Google Cloud.

        Buka konsol Google Cloud

      2. Klik kotak daftar pengalih di panel menu.
      3. Pilih organisasi Anda dari kotak daftar.
      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))"
  • BILLING_PROJECT_ID: ID project tempat agen layanan Cloud Asset Inventory default berada yang memiliki izin untuk mengelola penagihan dan kuota Anda. Baca selengkapnya tentang cara menetapkan project penagihan.

Contoh perintah

Jalankan salah satu perintah berikut untuk mencantumkan insight untuk project my-project.

curl (Linux, macOS, atau Cloud Shell)

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

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-Goog-User-Project" = "BILLING_PROJECT_ID";
  "Authorization" = "Bearer $cred"
}


Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://recommender.googleapis.com/v1/projects/my-project/locations/global/insightTypes/google.cloudasset.asset.Insight/insights" | Select-Object -Expand Content

Contoh respons

{
   "name": "organizations/000000000000/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/00000000-0000-0000-0000-000000000000",
   "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/000000000000",
            "project" :"projects/000000000000",
            "matchedBindings" :[
               {
                  "role" :"roles/viewer",
                  "matchedMembers" :[
                     "user:example@example.com"
                  ]
               }
            ]
         }
      ]
   },
   "lastRefreshTime": "2024-01-30T00:00:00Z",
   "observationPeriod": "0s",
   "stateInfo": {
      "state": "ACTIVE"
   },
   "category": "SECURITY",
   "targetResources": [
      "//cloudresourcemanager.googleapis.com/organizations/000000000000"
   ],
   "insightSubtype": "EXTERNAL_MEMBER",
   "etag": "\"00000000000\"",
   "initialRefreshTime": "2024-01-30T00:00:00Z"
}

Menafsirkan respons insight

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

Subjenis insight

Subjenis insight aset adalah sebagai berikut:

  • 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.

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

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

Kolom konten tambahan

Selain kolom standar dalam respons, analisis aset menyediakan beberapa kolom khusus di kolom content.

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

  • domain: Domain yang terdeteksi di anggota binding kebijakan insight 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 dalam insight ini. Kolom ini disertakan dalam subjenis OWNER_TERMINATED_PROJECT dan PUBLIC_IAM_POLICY.

  • policyCount: Jumlah total kebijakan IAM yang berbeda-beda yang mendeteksi anggota yang cocok untuk insight ini. Kolom ini disertakan untuk semua subjenis insight aset.

  • matchedPolicies: Sampel kebijakan IAM yang cocok dengan insight yang terdeteksi. Kebijakan yang cocok hanya menyertakan subset binding dan anggota binding yang cocok dengan insight yang terdeteksi. Kolom ini disertakan untuk semua subjenis insight aset.

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