Anda dapat menerima notifikasi real-time tentang perubahan resource dan kebijakan dengan membuat dan berlangganan feed.
Saat membuat feed, Anda dapat menentukan bahwa Anda ingin memantau perubahan jenis resource, kebijakan IAM, kebijakan akses, dan kebijakan organisasi yang didukung di organisasi, folder, project. Selain itu, Anda dapat menambahkan kondisi ke feed agar hanya menerima notifikasi untuk jenis perubahan tertentu pada aset.
Setelah membuat feed, Anda akan menerima notifikasi melalui Pub/Sub setiap kali aset yang ditentukan berubah. Pesan pertama yang dipublikasikan ke topik Pub/Sub adalah pesan selamat datang dalam format string, dan semua pesan berikutnya dalam format TemporalAsset.
Berikut adalah contoh pesan Pub/Sub untuk jenis konten RESOURCE.
{
"asset":{
"ancestors":[
"projects/000000000000",
"folders/000000000000",
"organizations/000000000000"
],
"assetType":"storage.googleapis.com/Bucket",
"name":"//storage.googleapis.com/my-bucket",
"resource":{
"data":{
LATEST_ASSET_METADATA
},
"discoveryDocumentUri":"https://www.googleapis.com/discovery/v1/apis/storage/v1/rest",
"discoveryName":"Bucket",
"location":"us",
"parent":"//cloudresourcemanager.googleapis.com/projects/000000000000",
"version":"v1"
},
"updateTime":"2024-01-30T00:00:00.000000Z"
},
"priorAsset":{
"ancestors":[
"projects/000000000000",
"folders/000000000000",
"organizations/000000000000"
],
"assetType":"storage.googleapis.com/Bucket",
"name":"//storage.googleapis.com/my-bucket",
"resource":{
"data":{
PREVIOUS_ASSET_METADATA
},
"discoveryDocumentUri":"https://www.googleapis.com/discovery/v1/apis/storage/v1/rest",
"discoveryName":"Bucket",
"location":"us",
"parent":"//cloudresourcemanager.googleapis.com/projects/000000000000",
"version":"v1"
},
"updateTime":"2024-01-29T00:00:00.000000Z"
},
"priorAssetState":"PRESENT",
"window":{
"startTime":"2024-01-30T00:00:00.000000Z"
}
}
Untuk mempelajari lebih lanjut Pub/Sub atau cara menyiapkan langganan, lihat dokumentasi Pub/Sub.
Sebelum memulai
Aktifkan Cloud Asset Inventory API di project tempat Anda menjalankan perintah Cloud Asset Inventory.
Pastikan akun Anda memiliki peran yang benar untuk memanggil Cloud Asset Inventory API. Untuk izin individual untuk setiap jenis panggilan, lihat Izin.
Buat topik Pub/Sub, jika Anda belum memilikinya.
Batasan
Diperlukan waktu hingga 10 menit agar pembuatan, pembaruan, atau penghapusan feed diterapkan.
Project tempat feed dibuat harus lebih lama dari feed. Hal ini karena akun layanan yang digunakan untuk memublikasikan ke topik Pub/Sub tujuan berada di project tersebut. Feed tidak lagi berfungsi dan dihapus segera setelah penghapusan project bersifat permanen.
Anda dapat membuat hingga 200 feed di induk. Batas ini hanya berlaku untuk feed yang langsung mengikuti induk dan tidak menghitung feed turunannya. Misalnya, jika Anda memiliki 10 project dalam organisasi, setiap project dapat memiliki hingga 200 feed, dan organisasi juga dapat memiliki hingga 200 feed.
Membuat feed
gcloud
gcloud asset feeds create FEED_ID \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --pubsub-topic=projects/TOPIC_PROJECT_ID/topics/TOPIC_ID \ --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --condition-title="CONDITION_TITLE" \ --condition-description="CONDITION_DESCRIPTION" \ --condition-expression="CONDITION_EXPRESSION"
Berikan nilai berikut:
-
SCOPE: Gunakan salah satu nilai berikut:-
project=PROJECT_ID, denganPROJECT_IDadalah ID project tempat feed akan dibuat. -
folder=FOLDER_ID, denganFOLDER_IDadalah ID folder tempat feed akan dibuat.Cara menemukan ID Google Cloud folder
KonsolGoogle Cloud
Untuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud .
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- 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 kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda
--formatuntuk 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, denganORGANIZATION_IDadalah ID organisasi tempat feed akan dibuat.Cara menemukan ID Google Cloud organisasi
KonsolGoogle Cloud
Untuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud .
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
gcloud CLI
Anda dapat mengambil ID Google Cloud organisasi dengan perintah berikut:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
FEED_ID: ID feed aset yang unik.-
BILLING_PROJECT_ID: Opsional. ID project tempat agen layanan Cloud Asset Inventory default berada yang memiliki izin untuk mengelola topik Pub/Sub Anda. Baca selengkapnya cara menyetel project penagihan. -
TOPIC_PROJECT_ID: ID project tempat topik Pub/Sub berada. -
TOPIC_ID: ID topik Pub/Sub yang akan menerima publikasi notifikasi. - Setidaknya satu definisi aset berikut:
ASSET_NAME_#: Opsional. Daftar nama lengkap aset yang dipisahkan koma.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 yang didukung, errorINVALID_ARGUMENTakan ditampilkan. Jika--asset-typestidak ditentukan, semua jenis aset akan ditampilkan.
CONTENT_TYPE: Opsional. jenis konten metadata yang ingin Anda ambil. Jika--content-typetidak ditentukan, hanya informasi dasar yang ditampilkan, seperti nama aset, terakhir kali aset diperbarui, dan project, folder, serta organisasi tempat aset tersebut berada.-
RELATIONSHIP_TYPE_#: Opsional. Memerlukan akses ke tingkat Security Command Center Premium atau Enterprise, atau Gemini Cloud Assist. Daftar jenis hubungan aset yang dipisahkan koma yang ingin Anda ambil. Anda harus menetapkanCONTENT_TYPEkeRELATIONSHIPagar fungsi ini dapat bekerja. - Jika menambahkan kondisi feed opsional, sertakan detail berikut
dalam perintah Anda:
CONDITION_TITLE: Judul yang akan ditetapkan ke kondisi feed.-
CONDITION_DESCRIPTION: Deskripsi yang akan ditetapkan ke kondisi feed. CONDITION_EXPRESSION: Ekspresi kondisi yang akan diterapkan ke feed.
Lihat referensi gcloud CLI untuk semua opsi.
Contoh
Jalankan perintah berikut untuk membuat feed di topik Pub/Sub my-topic
yang memberi tahu saat perubahan dilakukan pada resource berikut di project my-project.
- Bucket Cloud Storage
my-bucket - Tabel BigQuery apa pun
gcloud asset feeds create my-feed \ --project=my-project \ --pubsub-topic=projects/my-project/topics/my-topic \ --asset-names=//storage.googleapis.com/my-bucket \ --asset-types=bigquery.googleapis.com/Table \ --content-type=resource
Contoh respons
assetNames:
- //storage.googleapis.com/my-bucket
assetTypes:
- bigquery.googleapis.com/Table
condition: {}
contentType: RESOURCE
feedOutputConfig:
pubsubDestination:
topic: projects/my-project/topics/my-topic
name: projects/000000000000/feeds/my-feed
REST
Metode HTTP dan URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/feeds
Header:
X-Goog-User-Project: BILLING_PROJECT_ID
Meminta isi JSON:
{ "feedId": "FEED_ID", "feed": { "assetNames": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ], "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "feedOutputConfig": { "pubsubDestination": { "topic": "projects/TOPIC_PROJECT_ID/topics/TOPIC_ID" } }, "condition": { "title": "CONDITION_TITLE", "description": "CONDITION_DESCRIPTION", "expression": "CONDITION_EXPRESSION" } } }
Berikan nilai berikut:
-
SCOPE_PATH: Gunakan salah satu nilai berikut:Nilai yang diizinkan adalah:
-
projects/PROJECT_ID, denganPROJECT_IDadalah ID project tempat feed akan dibuat. -
projects/PROJECT_NUMBER, denganPROJECT_NUMBERadalah jumlah project untuk membuat feed.Cara menemukan Google Cloud nomor project
KonsolGoogle Cloud
Untuk menemukan nomor project Google Cloud , selesaikan langkah-langkah berikut:
-
Buka halaman Selamat Datang di konsol Google Cloud .
- Klik kotak daftar pengganti di panel menu.
-
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 Anda cari, 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, denganFOLDER_IDadalah ID folder tempat feed akan dibuat.Cara menemukan ID Google Cloud folder
KonsolGoogle Cloud
Untuk menemukan ID folder Google Cloud , selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud .
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- 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 kecocokan string sebagian atau penuh untuk nama folder. Hapus tanda
--formatuntuk 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, denganORGANIZATION_IDadalah ID organisasi tempat feed akan dibuat.Cara menemukan ID Google Cloud organisasi
KonsolGoogle Cloud
Untuk menemukan ID organisasi Google Cloud , selesaikan langkah-langkah berikut:
-
Buka konsol Google Cloud .
- Klik kotak daftar pengganti di panel menu.
- Pilih organisasi Anda dari kotak daftar.
- Klik tab Semua. ID organisasi ditampilkan di samping nama organisasi.
-
-