Mengekspor metadata aset menggunakan Inventaris Aset Cloud

Panduan memulai ini menunjukkan cara mengekspor metadata aset pada waktu tertentu menggunakan Inventaris Aset Cloud dan perintah gcloud asset Google Cloud CLI.

Sebelum memulai

Sebelum dapat mulai menggunakan Inventaris Aset Cloud, Anda harus mengaktifkan Cloud Asset Inventory API, Google Cloud CLI, dan menetapkan izin. Google Cloud CLI berinteraksi dengan Inventaris Aset Cloud dan layanan Google Cloud lainnya. Pelajari gcloud CLI lebih lanjut.

Mengaktifkan Cloud Asset Inventory API dan Google Cloud CLI

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Enable the required API.

    Enable the API

  4. Menginstal Google Cloud CLI.
  5. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  6. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  7. Enable the required API.

    Enable the API

  8. Menginstal Google Cloud CLI.
  9. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init

Mengonfigurasi izin

Untuk memanggil Cloud Asset Inventory API, Anda harus mengonfigurasi izin terlebih dahulu.

Menelusuri referensi

Untuk menelusuri metadata resource, jalankan perintah berikut.

gcloud asset search-all-resources \
    --scope=SCOPE \
    --query="QUERY" \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by="ORDER_BY" \
    --read-mask="READ_MASK"

Berikan nilai berikut:

  • SCOPE: Opsional. Ruang lingkup bisa berupa proyek, folder, atau organisasi. Penelusuran ini terbatas pada resource Google Cloud dalam cakupan ini. Pemanggil harus diberi izin cloudasset.assets.searchAllResources pada cakupan yang diinginkan. Jika tidak ditentukan, properti project yang dikonfigurasi akan digunakan.

    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))"

  • QUERY: Opsional. Pernyataan kueri. Lihat Sintaksis kueri untuk informasi selengkapnya. Jika tidak ditentukan atau kosong, Inventaris Aset Cloud akan menelusuri semua resource di scope yang ditentukan.

    Contoh:

    • name:Important untuk menemukan resource Google Cloud yang namanya berisi Important sebagai kata.

    • name=Important untuk menemukan resource Google Cloud yang namanya persis Important.

    • displayName:Impor* untuk menemukan resource Google Cloud yang nama tampilannya berisi Impor sebagai awalan.

    • location:us-west* untuk menemukan resource Google Cloud yang lokasinya berisi us dan west sebagai awalan.

    • labels:prod untuk menemukan resource Google Cloud yang labelnya berisi prod sebagai kunci atau nilai.

    • labels.env:prod untuk menemukan resource Google Cloud yang memiliki label env dan nilainya adalah "prod".

    • labels.env:* untuk menemukan resource Google Cloud yang memiliki label env.

    • kmsKeys:key untuk menemukan resource Google Cloud yang dienkripsi dengan kunci enkripsi yang dikelola pelanggan yang namanya berisi key sebagai kata.

    • sccSecurityMarks.key=value untuk menemukan resource Google Cloud yang dilampirkan dengan sepasang tanda keamanan yang kuncinya adalah key dan nilainya adalah value.

    • sccSecurityMarks.key:* untuk menemukan resource Google Cloud yang dilampirkan dengan sepasang tanda keamanan yang kuncinya adalah key.

    • state:ACTIVE untuk menemukan resource Google Cloud yang statusnya berisi ACTIVE sebagai kata.

    • NOT state:ACTIVE untuk menemukan resource Google Cloud yang statusnya tidak berisi ACTIVE sebagai kata.

    • createTime<1609459200 atau createTime<2021-01-01 atau createTime<"2021-01-01T00:00:00" untuk menemukan resource Google Cloud yang dibuat sebelum 01-01-2021 00:00:00 UTC. 1609459200 adalah stempel waktu epoch 01-01-2021 00:00:00 UTC dalam detik.

    • updateTime>1609459200 atau updateTime>2021-01-01 atau updateTime>"2021-01-01T00:00:00" untuk menemukan resource Google Cloud yang diupdate setelah 01-01-2021 00:00:00 UTC. 1609459200 adalah stempel waktu epoch 01-01-2021 00:00:00 UTC dalam detik.

    • project:12345 untuk menemukan resource Google Cloud milik project Google Cloud dengan nomor 12345. ID project tidak didukung.

    • folders:(123 or 456) untuk menemukan resource Google Cloud yang merupakan turunan dari folder Google Cloud dengan angka 123 atau 456.

    • organization:123 untuk menemukan resource Google Cloud yang merupakan turunan dari organisasi Google Cloud dengan nomor 123.

    • parentFullResourceName:ImportantName untuk menemukan resource Google Cloud yang nama induknya berisi ImportantName.

    • parentAssetType:Project untuk menemukan resource Google Cloud yang jenis aset induknya berisi Project.

    • Important untuk menemukan resource Google Cloud yang berisi Important sebagai kata di kolom mana pun yang dapat ditelusuri.

    • Impor* untuk menemukan resource Google Cloud yang berisi Impor sebagai awalan di kolom yang dapat ditelusuri.

    • Important location:(us-west1 OR global) untuk menemukan resource Google Cloud yang berisi "Penting" sebagai kata di setiap kolom yang dapat ditelusuri dan juga terletak di region us-west1 atau lokasi global.

  • ASSET_TYPE: Opsional. Daftar jenis aset yang dapat ditelusuri yang dipisahkan koma. Ekspresi reguler yang kompatibel dengan RE2 didukung. Jika ekspresi reguler tidak cocok dengan jenis aset apa pun yang didukung, error INVALID_ARGUMENT akan ditampilkan.

  • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma yang menentukan urutan penyortiran hasil. Urutan defaultnya adalah menaik. Tambahkan " DESC" setelah nama kolom untuk menunjukkan urutan menurun. Karakter spasi redundan akan diabaikan. Contoh: "location DESC, name". Hanya kolom primitif tunggal dalam respons yang dapat diurutkan:

    • name

    • assetType

    • project

    • displayName

    • description

    • location

    • createTime

    • updateTime

    • state

    • parentFullResourceName

    • parentAssetType

    Semua kolom lain seperti kolom berulang (misalnya networkTags, kmsKeys), kolom peta (misalnya, labels), dan kolom struct (misalnya, additionalAttributes) tidak didukung.

  • READ_MASK: Opsional. Daftar kolom yang dipisahkan koma yang menentukan kolom yang akan ditampilkan dalam hasil. Jika tidak ditentukan, semua kolom kecuali versionedResources akan ditampilkan. Jika hanya "*" yang ditentukan, semua kolom akan ditampilkan. Contoh: "name,location", "name,versionedResources", "*".

Untuk mempelajari lebih lanjut cara menelusuri referensi, lihat Menelusuri referensi.

Menelusuri kebijakan IAM

Untuk menelusuri kebijakan Identity and Access Management (IAM), jalankan perintah berikut.

gcloud asset search-all-iam-policies \
  --scope=SCOPE \
  --query="QUERY" \
  --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
  --order-by="ORDER_BY"

Berikan nilai berikut:

  • SCOPE: Opsional. Ruang lingkup bisa berupa proyek, folder, atau organisasi. Penelusuran ini terbatas pada resource IAM dalam cakupan ini. Pemanggil harus diberi izin cloudasset.assets.searchAllIamPolicies pada cakupan yang diinginkan. Jika tidak ditentukan, properti project yang dikonfigurasi akan digunakan.

    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))"

  • QUERY: Opsional. Pernyataan kueri. Lihat Sintaksis kueri untuk informasi selengkapnya. Jika tidak ditentukan atau kosong, Inventaris Aset Cloud akan menelusuri semua kebijakan IAM di scope yang ditentukan. String kueri dibandingkan dengan setiap binding kebijakan IAM, termasuk prinsip, peran, dan kondisi IAM-nya. Kebijakan IAM yang ditampilkan hanya berisi binding yang cocok dengan kueri Anda. Untuk mempelajari struktur kebijakan IAM lebih lanjut, baca artikel Struktur kebijakan.

    Contoh:

    • policy:amy@gmail.com untuk menemukan binding kebijakan IAM yang menentukan amy@gmail.com pengguna.

    • policy:roles/compute.admin untuk menemukan binding kebijakan IAM yang menentukan peran Compute Admin.

    • policy:comp* untuk menemukan binding kebijakan IAM yang berisi comp sebagai awalan dari kata apa pun dalam binding.

    • policy.role.permissions:storage.buckets.update untuk menemukan binding kebijakan IAM yang menentukan peran yang berisi izin storage.buckets.update. Jika pemanggil tidak memiliki akses iam.roles.get ke izin yang disertakan oleh suatu peran, binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

    • policy.role.permissions:upd* untuk menemukan binding kebijakan IAM yang menentukan peran yang berisi upd sebagai awalan kata apa pun dalam izin peran. Perlu diperhatikan bahwa jika pemanggil tidak memiliki akses iam.roles.get ke izin yang disertakan oleh peran, binding kebijakan yang menentukan peran ini akan dihapus dari hasil penelusuran.

    • resource:organizations/123456 untuk menemukan binding kebijakan IAM yang ditetapkan pada "organizations/123456".

    • resource=//cloudresourcemanager.googleapis.com/projects/myproject untuk menemukan binding kebijakan IAM yang ditetapkan pada project bernama myproject.

    • Important untuk menemukan binding kebijakan IAM yang berisi Important sebagai kata di kolom mana pun yang dapat ditelusuri (kecuali untuk izin yang disertakan).

    • resource:(instance1 OR instance2) policy:amy untuk menemukan binding kebijakan IAM yang ditetapkan pada instance1 atau instance2 resource dan juga menentukan amy pengguna.

    • roles:roles/compute.admin untuk menemukan binding kebijakan IAM yang menentukan peran Compute Admin.

    • memberTypes:user untuk menemukan binding kebijakan IAM yang berisi jenis akun utama user.

  • ASSET_TYPE: Opsional. Daftar jenis aset yang dapat ditelusuri yang dipisahkan koma tempat kebijakan IAM dilampirkan. Jika kosong, Inventaris Aset Cloud akan menelusuri kebijakan IAM yang disertakan ke semua jenis aset yang dapat ditelusuri. Ekspresi reguler didukung. Jika ekspresi reguler tidak cocok dengan jenis aset apa pun yang didukung, error INVALID_ARGUMENT akan ditampilkan.

  • ORDER_BY: Opsional. Daftar kolom yang dipisahkan koma yang menentukan urutan penyortiran hasil. Urutan defaultnya adalah menaik. Tambahkan " DESC" setelah nama kolom untuk menunjukkan urutan menurun. Karakter spasi redundan akan diabaikan. Contoh: "location DESC, name". Hanya kolom primitif tunggal dalam respons yang dapat diurutkan:

    • resource

    • assetType

    • project

    Semua kolom lain seperti kolom berulang (misalnya folders) dan kolom non-primitif (misalnya, policy) tidak didukung.

Untuk mempelajari lebih lanjut cara menelusuri kebijakan IAM, baca artikel Menelusuri kebijakan IAM.

Mengekspor snapshot aset ke Cloud Storage

Untuk mengekspor semua metadata aset pada stempel waktu tertentu ke file dalam bucket Cloud Storage, selesaikan langkah-langkah berikut.

  1. Buat bucket baru jika Anda belum memilikinya.

  2. Untuk mengekspor metadata aset di project Anda, jalankan perintah berikut. Perintah ini menyimpan snapshot yang diekspor dalam file di gs://BUCKET_NAME/FILENAME.

    Project

    gcloud asset export \
        --project=PROJECT_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Berikan nilai berikut:

    • PROJECT_ID: ID project yang metadatanya ingin Anda ekspor.

    • BILLING_PROJECT_ID: Opsional. Project ID tempat agen layanan Inventaris Aset Cloud default berada yang memiliki izin untuk menulis ke bucket Cloud Storage Anda. Tidak diperlukan jika Anda sudah beralih ke project penagihan dengan gcloud config set project. Baca selengkapnya tentang project penagihan.

    • CONTENT_TYPE: Opsional. Jenis konten aset yang akan diekspor. Jika tidak ada jenis konten yang ditentukan, hanya nama aset yang akan ditampilkan. Baca selengkapnya tentang jenis konten.

    • SNAPSHOT_TIME: Opsional. Waktu saat Anda ingin mengambil cuplikan aset. Nilainya harus berupa waktu saat ini atau waktu yang tidak lebih dari 35 hari yang lalu. Jika tidak diberikan, snapshot akan diambil pada saat ini. Untuk mengetahui informasi tentang format waktu, lihat tanggal dan waktu topik gcloud.

    • BUCKET_NAME: Nama bucket Cloud Storage yang menjadi tujuan penulisan.

    • FILENAME: File di bucket Cloud Storage yang menjadi tujuan penulisan.

    Folder

    gcloud asset export \
        --folder=FOLDER_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Berikan nilai berikut:

    • FOLDER_ID: ID folder yang metadatanya ingin Anda ekspor.

      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

    • BILLING_PROJECT_ID: Opsional. Project ID tempat agen layanan Inventaris Aset Cloud default berada yang memiliki izin untuk menulis ke bucket Cloud Storage Anda. Tidak diperlukan jika Anda sudah beralih ke project penagihan dengan gcloud config set project. Baca selengkapnya tentang project penagihan.

    • CONTENT_TYPE: Opsional. Jenis konten aset yang akan diekspor. Jika tidak ada jenis konten yang ditentukan, hanya nama aset yang akan ditampilkan. Baca selengkapnya tentang jenis konten.

    • SNAPSHOT_TIME: Opsional. Waktu saat Anda ingin mengambil cuplikan aset. Nilainya harus berupa waktu saat ini atau waktu yang tidak lebih dari 35 hari yang lalu. Jika tidak diberikan, snapshot akan diambil pada saat ini. Untuk mengetahui informasi tentang format waktu, lihat tanggal dan waktu topik gcloud.

    • BUCKET_NAME: Nama bucket Cloud Storage yang menjadi tujuan penulisan.

    • FILENAME: File di bucket Cloud Storage yang menjadi tujuan penulisan.

    Organisasi

    gcloud asset export \
        --organization=ORGANIZATION_ID \
        --billing-project=BILLING_PROJECT_ID \
        --content-type=CONTENT_TYPE \
        --snapshot-time="SNAPSHOT_TIME" \
        --output-path="gs://BUCKET_NAME/FILENAME"
    

    Berikan nilai berikut:

    • ORGANIZATION_ID: ID organisasi yang metadatanya ingin Anda ekspor.

      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))"

    • BILLING_PROJECT_ID: Opsional. Project ID tempat agen layanan Inventaris Aset Cloud default berada yang memiliki izin untuk menulis ke bucket Cloud Storage Anda. Tidak diperlukan jika Anda sudah beralih ke project penagihan dengan gcloud config set project. Baca selengkapnya tentang project penagihan.

    • CONTENT_TYPE: Opsional. Jenis konten aset yang akan diekspor. Jika tidak ada jenis konten yang ditentukan, hanya nama aset yang akan ditampilkan. Baca selengkapnya tentang jenis konten.

    • SNAPSHOT_TIME: Opsional. Waktu saat Anda ingin mengambil cuplikan aset. Nilainya harus berupa waktu saat ini atau waktu yang tidak lebih dari 35 hari yang lalu. Jika tidak diberikan, snapshot akan diambil pada saat ini. Untuk mengetahui informasi tentang format waktu, lihat tanggal dan waktu topik gcloud.

    • BUCKET_NAME: Nama bucket Cloud Storage yang menjadi tujuan penulisan.

    • FILENAME: File di bucket Cloud Storage yang menjadi tujuan penulisan.

  3. Opsional: Untuk memeriksa status ekspor, jalankan perintah berikut. ID ini ditampilkan di gcloud CLI setelah menjalankan perintah ekspor.

    gcloud asset operations describe OPERATION_PATH
    

Melihat ringkasan aset

Untuk melihat snapshot aset setelah Anda mengekspornya ke Cloud Storage, selesaikan langkah-langkah berikut.

  1. Buka halaman Buckets Cloud Storage di Konsol Google Cloud.

    Buka Buckets

  2. Buka file tempat Anda mengekspor metadata.

File ekspor mencantumkan aset dan nama resource-nya.

Langkah selanjutnya