NotificationConfig를 만드는 방법을 보여줍니다.
더 살펴보기
이 코드 샘플이 포함된 자세한 문서는 다음을 참조하세요.
코드 샘플
C#
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
using Google.Api.Gax.ResourceNames;
using Google.Cloud.SecurityCenter.V1;
using System;
///<summary> Create NotificationConfig Snippet. </summary>
public class CreateNotificationConfigSnippets
{
public static NotificationConfig CreateNotificationConfig(
string organizationId, string notificationConfigId, string projectId, string topicName)
{
// You can also use 'projectId' or 'folderId' instead of the 'organizationId'.
// ProjectName projectName = new ProjectName(projectId);
// FolderName folderName = new FolderName(folderId);
OrganizationName orgName = new OrganizationName(organizationId);
TopicName pubsubTopic = new TopicName(projectId, topicName);
SecurityCenterClient client = SecurityCenterClient.Create();
CreateNotificationConfigRequest request = new CreateNotificationConfigRequest
{
ParentAsOrganizationName = orgName,
ConfigId = notificationConfigId,
NotificationConfig = new NotificationConfig
{
Description = ".Net notification config",
PubsubTopicAsTopicName = pubsubTopic,
StreamingConfig = new NotificationConfig.Types.StreamingConfig { Filter = "state = \"ACTIVE\"" }
}
};
NotificationConfig response = client.CreateNotificationConfig(request);
Console.WriteLine($"Notification config was created: {response}");
return response;
}
}
Go
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
import (
"context"
"fmt"
"io"
securitycenter "cloud.google.com/go/securitycenter/apiv1"
"cloud.google.com/go/securitycenter/apiv1/securitycenterpb"
)
func createNotificationConfig(w io.Writer, orgID string, pubsubTopic string, notificationConfigID string) error {
// orgID := "your-org-id"
// pubsubTopic := "projects/{your-project}/topics/{your-topic}"
// notificationConfigID := "your-config-id"
ctx := context.Background()
client, err := securitycenter.NewClient(ctx)
if err != nil {
return fmt.Errorf("securitycenter.NewClient: %w", err)
}
defer client.Close()
req := &securitycenterpb.CreateNotificationConfigRequest{
// Parent must be in one of the following formats:
// "organizations/{orgId}"
// "projects/{projectId}"
// "folders/{folderId}"
Parent: fmt.Sprintf("organizations/%s", orgID),
ConfigId: notificationConfigID,
NotificationConfig: &securitycenterpb.NotificationConfig{
Description: "Go sample config",
PubsubTopic: pubsubTopic,
NotifyConfig: &securitycenterpb.NotificationConfig_StreamingConfig_{
StreamingConfig: &securitycenterpb.NotificationConfig_StreamingConfig{
Filter: `state = "ACTIVE"`,
},
},
},
}
notificationConfig, err := client.CreateNotificationConfig(ctx, req)
if err != nil {
return fmt.Errorf("Failed to create notification config: %w", err)
}
fmt.Fprintln(w, "New NotificationConfig created: ", notificationConfig)
return nil
}
Java
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
import com.google.cloud.securitycenter.v1.CreateNotificationConfigRequest;
import com.google.cloud.securitycenter.v1.NotificationConfig;
import com.google.cloud.securitycenter.v1.NotificationConfig.StreamingConfig;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;
public class CreateNotificationConfigSnippets {
public static void main(String[] args) throws IOException {
// parentId: must be in one of the following formats:
// "organizations/{organization_id}"
// "projects/{project_id}"
// "folders/{folder_id}"
String parentId = String.format("organizations/%s", "ORG_ID");
String notificationConfigId = "{config-id}";
String projectId = "{your-project}";
String topicName = "{your-topic}";
createNotificationConfig(parentId, notificationConfigId, projectId, topicName);
}
// Crete a notification config.
// Ensure the ServiceAccount has the "pubsub.topics.setIamPolicy" permission on the new topic.
public static NotificationConfig createNotificationConfig(
String parentId, String notificationConfigId, String projectId, String topicName)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (SecurityCenterClient client = SecurityCenterClient.create()) {
// Ensure this ServiceAccount has the "pubsub.topics.setIamPolicy" permission on the topic.
String pubsubTopic = String.format("projects/%s/topics/%s", projectId, topicName);
CreateNotificationConfigRequest request =
CreateNotificationConfigRequest.newBuilder()
.setParent(parentId)
.setConfigId(notificationConfigId)
.setNotificationConfig(
NotificationConfig.newBuilder()
.setDescription("Java notification config")
.setPubsubTopic(pubsubTopic)
.setStreamingConfig(
StreamingConfig.newBuilder().setFilter("state = \"ACTIVE\"").build())
.build())
.build();
NotificationConfig response = client.createNotificationConfig(request);
System.out.printf("Notification config was created: %s%n", response);
return response;
}
}
}
Node.js
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
// npm install '@google-cloud/security-center'
const {SecurityCenterClient} = require('@google-cloud/security-center');
const client = new SecurityCenterClient();
// parent: must be in one of the following formats:
// `organizations/${organization_id}`
// `projects/${project_id}`
// `folders/${folder_id}`
// configId = "your-config-name";
// pubsubTopic = "projects/{your-project}/topics/{your-topic}";
// Ensure this Service Account has the "pubsub.topics.setIamPolicy" permission on this topic.
const parent = `organizations/${organizationId}`;
async function createNotificationConfig() {
const [response] = await client.createNotificationConfig({
parent: parent,
configId: configId,
notificationConfig: {
description: 'Sample config for node.js',
pubsubTopic: pubsubTopic,
streamingConfig: {filter: 'state = "ACTIVE"'},
},
});
console.log('Notification config creation succeeded: ', response);
}
createNotificationConfig();
PHP
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
use Google\Cloud\SecurityCenter\V1\Client\SecurityCenterClient;
use Google\Cloud\SecurityCenter\V1\CreateNotificationConfigRequest;
use Google\Cloud\SecurityCenter\V1\NotificationConfig;
use Google\Cloud\SecurityCenter\V1\NotificationConfig\StreamingConfig;
/**
* @param string $organizationId Your org ID
* @param string $notificationConfigId A unique identifier
* @param string $projectId Your Cloud Project ID
* @param string $topicName Your topic name
*/
function create_notification(
string $organizationId,
string $notificationConfigId,
string $projectId,
string $topicName
): void {
$securityCenterClient = new SecurityCenterClient();
// 'parent' must be in one of the following formats:
// "organizations/{orgId}"
// "projects/{projectId}"
// "folders/{folderId}"
$parent = $securityCenterClient::organizationName($organizationId);
$pubsubTopic = $securityCenterClient::topicName($projectId, $topicName);
$streamingConfig = (new StreamingConfig())->setFilter('state = "ACTIVE"');
$notificationConfig = (new NotificationConfig())
->setDescription('A sample notification config')
->setPubsubTopic($pubsubTopic)
->setStreamingConfig($streamingConfig);
$createNotificationConfigRequest = (new CreateNotificationConfigRequest())
->setParent($parent)
->setConfigId($notificationConfigId)
->setNotificationConfig($notificationConfig);
$response = $securityCenterClient->createNotificationConfig($createNotificationConfigRequest);
printf('Notification config was created: %s' . PHP_EOL, $response->getName());
}
Python
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
def create_notification_config(parent_id, notification_config_id, pubsub_topic):
"""
Args:
parent_id: must be in one of the following formats:
"organizations/{organization_id}"
"projects/{project_id}"
"folders/{folder_id}"
notification_config_id: "your-config-id"
pubsub_topic: "projects/{your-project-id}/topics/{your-topic-ic}"
Ensure this ServiceAccount has the "pubsub.topics.setIamPolicy" permission on the new topic.
"""
from google.cloud import securitycenter as securitycenter
client = securitycenter.SecurityCenterClient()
created_notification_config = client.create_notification_config(
request={
"parent": parent_id,
"config_id": notification_config_id,
"notification_config": {
"description": "Notification for active findings",
"pubsub_topic": pubsub_topic,
"streaming_config": {"filter": 'state = "ACTIVE"'},
},
}
)
print(created_notification_config)
Ruby
Security Command Center에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
require "google/cloud/security_center"
# Your organization id. e.g. for "organizations/123", this would be "123".
# org_id = "YOUR_ORGANZATION_ID"
# Your notification config id. e.g. for
# "organizations/123/notificationConfigs/my-config" this would be "my-config".
# config_id = "YOUR_CONFIG_ID"
# The PubSub topic where notifications will be published.
# pubsub_topic = "YOUR_TOPIC"
client = Google::Cloud::SecurityCenter.security_center
# You can also use 'project_id' or 'folder_id' as a parent.
# client.project_path project: project_id
# client.folder_path folder: folder_id
parent = client.organization_path organization: org_id
notification_config = {
description: "Sample config for Ruby",
pubsub_topic: pubsub_topic,
streaming_config: { filter: 'state = "ACTIVE"' }
}
response = client.create_notification_config(
parent: parent,
config_id: config_id,
notification_config: notification_config
)
puts "Created notification config #{config_id}: #{response}."
다음 단계
다른 Google Cloud 제품의 코드 샘플을 검색하고 필터링하려면 Google Cloud 샘플 브라우저를 참조하세요.