Halaman ini menjelaskan cara mengaktifkan notifikasi Security Command Center API.
Notifikasi mengirimkan temuan dan pembaruan temuan ke topik Pub/Sub dalam hitungan menit. Notifikasi Security Command Center API mencakup semua informasi temuan yang ditampilkan oleh Security Command Center di Google Cloud konsol.
Anda dapat menghubungkan notifikasi Security Command Center di Pub/Sub langsung ke tindakan fungsi Cloud Run. Untuk contoh fungsi yang dapat membantu respons, pengayaan, dan perbaikan, lihat repositori open source Security Command Center tentang kode fungsi Cloud Run. Repositori ini berisi solusi untuk membantu Anda mengambil tindakan otomatis pada temuan keamanan.
Atau, Anda dapat mengekspor temuan ke BigQuery, atau Anda dapat menyiapkan Ekspor Berkelanjutan untuk Pub/Sub di konsol Google Cloud .
Sebelum memulai
-
Untuk mendapatkan izin yang diperlukan untuk menyiapkan dan mengonfigurasi notifikasi Security Command Center API, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Admin Security Center (
roles/securitycenter.admin
) di organisasi atau project tempat Security Command Center diaktifkan -
Admin IAM Project (
roles/resourcemanager.projectIamAdmin
) di project tempat Anda akan membuat topik Pub/Sub
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Admin Security Center (
-
Enable the Security Command Center API:
gcloud services enable securitycenter.googleapis.com
Residensi data dan notifikasi
Jika aset data diaktifkan untuk Security Command Center, konfigurasi yang menentukan ekspor berkelanjutan ke resource Pub/Sub—notificationConfig
—tunduk pada kontrol aset data dan disimpan di lokasi Security Command Center Anda.
Untuk mengekspor temuan di lokasi Security Command Center ke Pub/Sub, Anda harus mengonfigurasi ekspor berkelanjutan di lokasi Security Command Center yang sama dengan temuan.
Karena filter yang digunakan dalam ekspor berkelanjutan dapat berisi data yang tunduk pada kontrol domisili, pastikan Anda menentukan lokasi yang benar sebelum membuatnya. Security Command Center tidak membatasi lokasi tempat Anda membuat ekspor.
Ekspor berkelanjutan hanya disimpan di lokasi tempat ekspor tersebut dibuat dan tidak dapat dilihat atau diedit di lokasi lain.
Setelah membuat ekspor berkelanjutan, Anda tidak dapat mengubah lokasinya. Untuk mengubah lokasi, Anda harus menghapus ekspor berkelanjutan dan membuatnya ulang di lokasi baru.
Untuk mempelajari cara menggunakan Security Command Center saat residensi data diaktifkan, lihat Endpoint regional Security Command Center.
Menyiapkan topik Pub/Sub
Dalam tugas ini, Anda akan membuat dan berlangganan topik Pub/Sub yang ingin Anda kirimi notifikasi.
Langkah 1: Siapkan Pub/Sub
Untuk menyiapkan dan berlangganan topik Pub/Sub, lakukan hal berikut:
Buka konsol Google Cloud .
Pilih project tempat Anda mengaktifkan Security Command Center API.
Klik Activate Cloud Shell.
Opsional: Untuk membuat topik Pub/Sub baru, jalankan perintah berikut:
gcloud pubsub topics create TOPIC_ID
Ganti
TOPIC_ID
dengan nama topik.Buat langganan ke topik:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
Ganti kode berikut:
SUBSCRIPTION_ID
: ID langgananTOPIC_ID
: ID topik
Untuk mempelajari lebih lanjut cara menyiapkan Pub/Sub, lihat Mengelola topik dan langganan.
Langkah 2: Berikan peran pada topik Pub/Sub
Untuk membuat NotificationConfig
, Anda memerlukan peran Admin Pub/Sub
(roles/pubsub.admin
) pada topik Pub/Sub tempat Anda membuat
langganan.
Untuk memberikan peran ini, lakukan hal berikut:
Buka konsol Google Cloud .
Pilih project tempat Anda mengaktifkan Security Command Center API.
Klik Activate Cloud Shell.
Berikan peran yang diperlukan ke Akun Google Anda di topik Pub/Sub:
gcloud pubsub topics add-iam-policy-binding \ projects/PUBSUB_PROJECT/topics/TOPIC_ID \ --member="user:GOOGLE_ACCOUNT" \ --role="roles/pubsub.admin"
Ganti kode berikut:
PUBSUB_PROJECT
: Google Cloud project yang berisi topik Pub/Sub AndaTOPIC_ID
: ID topikGOOGLE_ACCOUNT
: alamat email untuk Akun Google Anda
Membuat NotificationConfig
Sebelum membuat NotificationConfig
, perhatikan bahwa setiap organisasi dapat memiliki
sejumlah file NotificationConfig
yang terbatas. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.
NotificationConfig
menyertakan kolom filter
yang membatasi notifikasi ke
peristiwa yang berguna. Kolom ini menerima semua filter yang tersedia di metode
Security Command Center API findings.list
.
Saat membuat NotificationConfig
, Anda menentukan induk untuk
NotificationConfig
dari hierarki resource Google Cloud , baik
organisasi, folder, atau project. Jika Anda perlu mengambil, memperbarui, atau menghapus
NotificationConfig
nanti, Anda harus menyertakan ID numerik
organisasi induk, folder, atau project saat mereferensikannya.
Di konsol Google Cloud , beberapa resource NotificationConfig
mungkin memiliki label Legacy, yang menunjukkan bahwa resource tersebut dibuat dengan Security Command Center API v1. Anda dapat mengelola resource NotificationConfig
ini dengan konsol Google Cloud , gcloud CLI, Security Command Center API v1, atau library klien v1 untuk Security Command Center.
Untuk mengelola resource NotificationConfig
ini dengan gcloud CLI, Anda tidak boleh menentukan
lokasi saat menjalankan perintah gcloud CLI.
Untuk membuat NotificationConfig
menggunakan bahasa atau platform pilihan Anda:
gcloud
gcloud scc notifications create NOTIFICATION_NAME \ --PARENT=PARENT_ID \ --location=LOCATION \ --description="NOTIFICATION_DESCRIPTION" \ --pubsub-topic=PUBSUB_TOPIC \ --filter="FILTER"
Ganti kode berikut:
NOTIFICATION_NAME
: nama notifikasi. Harus terdiri dari 1 hingga 128 karakter dan hanya berisi karakter alfanumerik, garis bawah, atau tanda hubung.PARENT
: cakupan dalam hierarki resource yang berlaku untuk notifikasi,organization
,folder
, atauproject
.PARENT_ID
: ID organisasi, folder, atau project induk, yang ditentukan dalam formatorganizations/123
,folders/456
, atauprojects/789
.LOCATION
: lokasi Security Command Center tempat ; jika retensi data diaktifkan, gunakaneu
,sa
, atauus
; jika tidak, gunakan nilaiglobal
.NOTIFICATION_DESCRIPTION
: deskripsi notifikasi yang tidak lebih dari 1.024 karakter.PUBSUB_TOPIC
: Topik Pub/Sub yang akan menerima notifikasi. Formatnya adalahprojects/PROJECT_ID/topics/TOPIC
.FILTER
: ekspresi yang Anda tentukan untuk memilih temuan mana yang dikirim ke Pub/Sub. Contoh,state=\"ACTIVE\"
.
Terraform
Buat NotificationConfig
untuk organisasi:
Membuat NotificationConfig
untuk folder:
Membuat NotificationConfig
untuk project:
Go
Java
Node.js
Python
Notifikasi kini dipublikasikan ke topik Pub/Sub yang Anda tentukan.
Untuk memublikasikan notifikasi, akun layanan dibuat untuk Anda dalam bentuk
service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
.
Akun layanan ini dibuat saat Anda membuat NotificationConfig
pertama
dan secara otomatis diberi peran securitycenter.notificationServiceAgent
pada kebijakan IAM untuk PUBSUB_TOPIC saat membuat konfigurasi notifikasi. Peran akun layanan ini diperlukan agar notifikasi dapat berfungsi.
Memberikan akses perimeter di Kontrol Layanan VPC
Jika Anda menggunakan Kontrol Layanan VPC dan topik Pub/Sub Anda adalah bagian dari project di dalam perimeter layanan, Anda harus memberikan akses ke project untuk membuat notifikasi.
Untuk memberikan akses ke project, buat aturan masuk dan keluar untuk prinsipal
dan project yang digunakan untuk membuat notifikasi. Aturan ini memungkinkan akses ke resource yang dilindungi dan memungkinkan Pub/Sub memverifikasi bahwa pengguna memiliki izin setIamPolicy
pada topik Pub/Sub.
Sebelum membuat NotificationConfig
Sebelum menyelesaikan langkah-langkah di Membuat NotificationConfig, selesaikan langkah-langkah berikut.
Konsol
-
Di konsol Google Cloud , buka halaman VPC Service Controls.
- Pilih organisasi atau project Anda.
- Jika Anda memilih organisasi, klik Pilih kebijakan akses, lalu pilih kebijakan akses yang terkait dengan perimeter yang ingin Anda perbarui.
-
Klik nama perimeter yang ingin Anda perbarui.
Untuk menemukan perimeter layanan yang perlu diubah, Anda dapat memeriksa entri log yang menunjukkan pelanggaran
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dalam entri tersebut, periksa kolomservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
- Klik Edit perimeter.
- Klik Kebijakan traffic keluar.
- Klik Tambahkan aturan traffic keluar.
-
Di bagian DARI, tetapkan detail berikut:
- Untuk Identity, pilih Select identities & groups.
- Klik Tambahkan identitas
-
Masukkan alamat email principal yang digunakan untuk memanggil Security Command Center API.
- Pilih pemilik atau tekan ENTER, lalu klik Tambahkan identitas.
-
Di bagian KE, tetapkan detail berikut:
- Untuk Project, pilih Semua project.
- Untuk Operasi atau peran IAM, pilih Pilih operasi.
-
Klik Tambahkan operasi, lalu tambahkan operasi berikut:
- Tambahkan layanan pubsub.googleapis.com.
- Klik Semua metode.
- Klik Tambahkan semua metode.
- Tambahkan layanan pubsub.googleapis.com.
- Klik Ingress policy.
- Klik Tambahkan aturan ingress.
-
Di bagian DARI, tetapkan detail berikut:
- Untuk Identity, pilih Select identities & groups.
- Klik Tambahkan identitas
-
Masukkan alamat email principal yang digunakan untuk memanggil Security Command Center API.
- Pilih pemilik atau tekan ENTER, lalu klik Tambahkan identitas.
- Untuk Sumber, pilih Semua sumber
-
Di bagian KE, tetapkan detail berikut:
- Untuk Project, pilih Pilih project.
- Klik Tambahkan project, lalu tambahkan project yang berisi topik Pub/Sub.
- Untuk Operasi atau peran IAM, pilih Pilih operasi.
-
Klik Tambahkan operasi, lalu tambahkan operasi berikut:
- Tambahkan layanan pubsub.googleapis.com.
- Klik Semua metode.
- Klik Tambahkan semua metode.
- Tambahkan layanan pubsub.googleapis.com.
- Klik Simpan.
gcloud
-
Jika project kuota belum ditetapkan, tetapkan project kuota. Pilih project yang mengaktifkan Access Context Manager API.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Ganti
QUOTA_PROJECT_ID
dengan ID project yang ingin Anda gunakan untuk penagihan dan kuota. -
Buat file bernama
egress-rule.yaml
dengan konten berikut:- egressFrom: identities: - PRINCIPAL_ADDRESS egressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Ganti
PRINCIPAL_ADDRESS
dengan alamat principal yang digunakan untuk memanggil Security Command Center API. -
Buat file bernama
ingress-rule.yaml
dengan konten berikut:- ingressFrom: identities: - PRINCIPAL_ADDRESS sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Ganti
PRINCIPAL_ADDRESS
dengan alamat principal yang digunakan untuk memanggil Security Command Center API. -
Tambahkan aturan traffic keluar ke perimeter:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-egress-policies=egress-rule.yaml
Ganti kode berikut:
-
PERIMETER_NAME
: nama perimeter. Misalnya,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Untuk menemukan perimeter layanan yang perlu diubah, Anda dapat memeriksa log untuk menemukan entri yang menunjukkan pelanggaran
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dalam entri tersebut, periksa kolomservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
-
Tambahkan aturan traffic masuk ke perimeter:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Ganti kode berikut:
-
PERIMETER_NAME
: nama perimeter. Misalnya,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Untuk menemukan perimeter layanan yang perlu diubah, Anda dapat memeriksa log untuk menemukan entri yang menunjukkan pelanggaran
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dalam entri tersebut, periksa kolomservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Lihat Aturan traffic masuk dan keluar untuk informasi selengkapnya.
Buat aturan ingress untuk NotificationConfig
Untuk membuat aturan ingress bagi NotificationConfig
, selesaikan petunjuk
di Membuat NotificationConfig, lalu
selesaikan langkah-langkah berikut.
Konsol
-
Buka kembali perimeter layanan dari bagian sebelumnya.
- Klik Ingress policy.
- Klik Tambahkan aturan ingress.
-
Di bagian DARI, tetapkan detail berikut:
- Untuk Identity, pilih Select identities & groups.
- Klik Tambahkan identitas
-
Masukkan alamat email agen layanan
NotificationConfig
. Alamat agen layanan memiliki format berikut:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com
Ganti
ORGANIZATION_ID
dengan ID organisasi Anda. - Pilih agen layanan atau tekan ENTER, lalu klik Tambahkan identitas.
- Untuk Sumber, pilih Semua sumber
-
Di bagian KE, tetapkan detail berikut:
- Untuk Project, pilih Pilih project.
- Klik Tambahkan project, lalu tambahkan project yang berisi topik Pub/Sub.
- Untuk Operasi atau peran IAM, pilih Pilih operasi.
-
Klik Tambahkan operasi, lalu tambahkan operasi berikut:
- Tambahkan layanan pubsub.googleapis.com.
- Klik Semua metode.
- Klik Tambahkan semua metode.
- Tambahkan layanan pubsub.googleapis.com.
- Klik Simpan.
gcloud
-
Jika project kuota belum ditetapkan, tetapkan project kuota. Pilih project yang mengaktifkan Access Context Manager API.
gcloud config set billing/quota_project QUOTA_PROJECT_ID
Ganti
QUOTA_PROJECT_ID
dengan ID project yang ingin Anda gunakan untuk penagihan dan kuota. -
Buat file bernama
ingress-rule.yaml
dengan konten berikut:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: pubsub.googleapis.com methodSelectors: - method: '*' resources: - '*'
Ganti
ORGANIZATION_ID
dengan ID organisasi Anda. -
Tambahkan aturan traffic masuk ke perimeter:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress-rule.yaml
Ganti kode berikut:
-
PERIMETER_NAME
: nama perimeter. Misalnya,accessPolicies/1234567890/servicePerimeters/example_perimeter
.Untuk menemukan perimeter layanan yang perlu diubah, Anda dapat memeriksa log untuk menemukan entri yang menunjukkan pelanggaran
RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER
. Dalam entri tersebut, periksa kolomservicePerimeterName
:accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
-
Lihat Aturan traffic masuk dan keluar untuk informasi selengkapnya.
Project, pengguna, dan akun layanan yang dipilih kini dapat mengakses resource yang dilindungi dan membuat notifikasi.
Jika Anda telah mengikuti semua langkah dalam panduan ini, dan notifikasi berfungsi dengan baik, Anda kini dapat menghapus hal berikut:
- Aturan masuk untuk akun utama
- Aturan keluar untuk akun utama
Aturan tersebut hanya diperlukan untuk mengonfigurasi NotificationConfig
. Namun, agar
notifikasi terus berfungsi, Anda harus mempertahankan aturan ingress untuk
NotificationConfig
, yang memungkinkannya memublikasikan notifikasi ke topik
Pub/Sub Anda di belakang perimeter layanan.
Langkah berikutnya
- Pelajari cara mengaktifkan notifikasi email dan chat real-time.
- Pelajari cara mengelola Notifications API.
- Pelajari cara memfilter notifikasi.