Dokumen ini menjelaskan cara menyiapkan notifikasi untuk pembaruan pada catatan dan kejadian.
Artifact Analysis memberikan notifikasi melalui Pub/Sub untuk kerentanan yang ditemukan oleh pemindaian otomatis dan untuk metadata lainnya. Saat catatan atau kejadian dibuat atau diperbarui, pesan akan dipublikasikan ke topik yang sesuai untuk setiap versi API. Gunakan topik untuk versi API yang Anda gunakan.
Sebelum memulai
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Container Analysis API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init - Pelajari cara menyiapkan kontrol akses untuk metadata di project Anda. Lewati langkah ini jika Anda hanya menggunakan metadata dari kemunculan yang dibuat oleh pemindaian container Artifact Analysis.
Membuat topik Pub/Sub
Setelah Anda mengaktifkan Artifact Analysis API, Artifact Analysis akan otomatis membuat topik Pub/Sub dengan ID topik berikut:
container-analysis-notes-v1container-analysis-occurrences-v1
Jika topik tidak sengaja dihapus atau tidak ada, Anda dapat menambahkannya sendiri. Misalnya, topik mungkin tidak ada jika Google Cloud organisasi Anda memiliki batasan kebijakan organisasi yang mewajibkan enkripsi dengan kunci enkripsi yang dikelola pelanggan (CMEK). Jika Pub/Sub API berada dalam daftar tolak batasan ini, layanan tidak dapat membuat topik secara otomatis dengan Google-owned and Google-managed encryption keys.
Untuk membuat topik dengan Google-owned and Google-managed encryption keys:
Konsol
Buka halaman topik Pub/Sub di konsol Google Cloud .
Klik Buat Topik.
Masukkan ID Topik:
container-analysis-notes-v1sehingga nama cocok dengan URI:
projects/PROJECT_ID/topics/container-analysis-notes-v1dengan PROJECT_ID adalah Google Cloud project ID Anda.
Klik Create.
Masukkan ID Topik:
container-analysis-occurrences-v1sehingga nama cocok dengan URI:
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Jalankan perintah berikut di shell atau jendela terminal Anda:
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-notes-v1
gcloud pubsub topics create projects/PROJECT_ID/topics/container-analysis-occurrences-v1
Untuk mempelajari perintah gcloud pubsub topics lebih lanjut, lihat
dokumentasi topics.
Untuk membuat topik dengan enkripsi CMEK, lihat petunjuk untuk mengenkripsi topik Pub/Sub.
Setiap kali catatan atau kejadian dibuat atau diperbarui, pesan akan dipublikasikan ke topik yang sesuai, meskipun Anda juga harus membuat langganan Pub/Sub untuk memproses peristiwa dan menerima pesan dari layanan Pub/Sub.
Membuat langganan Pub/Sub
Untuk memproses peristiwa, buat langganan Pub/Sub yang terkait dengan topik:
Konsol
Buka halaman langganan Pub/Sub di Google Cloud konsol.
Klik Buat Langganan.
Ketik nama untuk langganan. Misalnya, notes.
Masukkan URI topik untuk catatan:
projects/PROJECT_ID/topics/container-analysis-notes-v1dengan PROJECT_ID sebagai Google Cloud project ID Anda.
Klik Create.
Buat langganan lain untuk kejadian dengan URI:
projects/PROJECT_ID/topics/container-analysis-occurrences-v1
gcloud
Untuk menerima peristiwa Pub/Sub, Anda harus membuat langganan terlebih dahulu yang terkait dengan topik container-analysis-occurrences-v1:
gcloud pubsub subscriptions create \
--topic container-analysis-occurrences-v1 occurrences
Selanjutnya, Anda dapat mengambil pesan terkait kemunculan Anda menggunakan langganan baru:
gcloud pubsub subscriptions pull \
--auto-ack occurrences
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Artifact Analysis, lihat library klien Artifact Analysis. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Java API Artifact Analysis.
Untuk melakukan autentikasi ke Artifact Analysis, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Artifact Analysis, lihat library klien Artifact Analysis. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Go API Artifact Analysis.
Untuk melakukan autentikasi ke Artifact Analysis, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Artifact Analysis, lihat library klien Artifact Analysis. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Node.js API Artifact Analysis.
Untuk melakukan autentikasi ke Artifact Analysis, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Ruby
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Artifact Analysis, lihat library klien Artifact Analysis. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Ruby API Artifact Analysis.
Untuk melakukan autentikasi ke Artifact Analysis, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Artifact Analysis, lihat library klien Artifact Analysis. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API Artifact Analysis.
Untuk melakukan autentikasi ke Artifact Analysis, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Aplikasi pelanggan hanya menerima pesan yang dipublikasikan ke topik setelah langganan dibuat.
Payload Pub/Sub dalam JSON dan skemanya adalah sebagai berikut:
Catatan:
{ "name": "projects/PROJECT_ID/notes/NOTE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
Kemunculan:
{ "name": "projects/PROJECT_ID/occurrences/OCCURRENCE_ID", "kind": "NOTE_KIND", "notificationTime": "NOTIFICATION_TIME", }
dengan:
- NOTE_KIND adalah salah satu nilai dalam
NoteKind - NOTIFICATION_TIME adalah stempel waktu dalam format RFC 3339 UTC "Zulu", akurat hingga nanodetik.
Lihat detail
Untuk mempelajari lebih lanjut catatan atau kejadian, Anda dapat mengakses metadata yang disimpan di Analisis Artefak. Misalnya, Anda dapat meminta semua detail untuk kemunculan tertentu. Lihat petunjuk di Menyelidiki Kerentanan.
Langkah berikutnya
- Untuk mengetahui petunjuk tentang cara menggunakan Artifact Analysis untuk menyimpan dan mengelola metadata kustom, lihat Membuat catatan dan kejadian kustom.