security-center/snippets/management_api/createEventThreatDetectionCustomModule.js (48 lines of code) (raw):

/* * Copyright 2025 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; /** * Demonstrates how to create a new event threat detection custom module */ function main(organizationId, customModuleDisplayName, location = 'global') { // [START securitycenter_create_event_threat_detection_custom_module] // Imports the Google cloud client library. const {SecurityCenterManagementClient} = require('@google-cloud/securitycentermanagement').v1; // Create a Security Center Management client const client = new SecurityCenterManagementClient(); /** * Required. The name of the parent resource of the create event threat detection module. Its * format is "organizations/[organization_id]/locations/[location_id]", * "folders/[folder_id]/locations/[location_id]", or * "projects/[project_id]/locations/[location_id]". */ //TODO(developer): Update the following references for your own environment before running the sample. // const organizationId = 'YOUR_ORGANIZATION_ID'; // const location = 'LOCATION_ID'; const parent = `organizations/${organizationId}/locations/${location}`; // define the event threat detection custom module configuration, update the EnablementState // below const eventThreatDetectionCustomModule = { displayName: customModuleDisplayName, enablementState: 'ENABLED', type: 'CONFIGURABLE_BAD_IP', config: prepareConfigDetails(), }; // Build the request. const createEventThreatDetectionCustomModuleRequest = { parent: parent, eventThreatDetectionCustomModule: eventThreatDetectionCustomModule, }; async function createEventThreatDetectionCustomModule() { // Call the API. const [response] = await client.createEventThreatDetectionCustomModule( createEventThreatDetectionCustomModuleRequest ); console.log('EventThreatDetectionCustomModule created : %j', response); } function prepareConfigDetails() { // define the metadata and other config parameters severity, description, // recommendation and ips below const config = { fields: { metadata: { structValue: { fields: { severity: {stringValue: 'LOW'}, description: {stringValue: 'Flagged by Cymbal as malicious'}, recommendation: { stringValue: 'Contact the owner of the relevant project.', }, }, }, }, ips: { listValue: { values: [{stringValue: '192.0.2.1'}, {stringValue: '192.0.2.0/24'}], }, }, }, }; return config; } createEventThreatDetectionCustomModule(); // [END securitycenter_create_event_threat_detection_custom_module] } main(...process.argv.slice(2));