Ative as notificações de deteção para o Pub/Sub

Esta página explica como ativar as notificações da API Security Command Center.

As notificações enviam conclusões e atualizações de conclusões para um tópico do Pub/Sub em minutos. As notificações da API Security Command Center incluem todas as informações de deteção apresentadas pelo Security Command Center naGoogle Cloud consola.

Pode associar notificações do Security Command Center no Pub/Sub diretamente a ações de funções do Cloud Run. Por exemplo, para ver funções que podem ajudar na resposta, no enriquecimento e na correção, consulte o repositório de código aberto do Security Command Center de código de funções do Cloud Run. O repositório contém soluções para ajudar a tomar medidas automáticas em relação às conclusões de segurança.

Em alternativa, pode exportar as deteções para o BigQuery ou configurar exportações contínuas para o Pub/Sub na Google Cloud consola.

Antes de começar

  1. Para receber as autorizações de que precisa para configurar as notificações da API Security Command Center, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

    Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

  2. Enable the Security Command Center API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable securitycenter.googleapis.com

Residência de dados e notificações

Se a residência de dados estiver ativada para o Security Command Center, as configurações que definem exportações contínuas para recursos do Pub/Sub—notificationConfig—estão sujeitas ao controlo de residência de dados e são armazenadas na sua localização do Security Command Center.

Para exportar resultados numa localização do Security Command Center para o Pub/Sub, tem de configurar a exportação contínua na mesma localização do Security Command Center que os resultados.

Uma vez que os filtros usados em exportações contínuas podem conter dados sujeitos a controlos de residência, certifique-se de que especifica a localização correta antes de os criar. O Security Command Center não restringe a localização em que cria exportações.

As exportações contínuas são armazenadas apenas na localização em que são criadas e não podem ser vistas nem editadas noutras localizações.

Depois de criar uma exportação contínua, não pode alterar a respetiva localização. Para alterar a localização, tem de eliminar a exportação contínua e recriá-la na nova localização.

Para saber como usar o Security Command Center quando a residência de dados está ativada, consulte os endpoints regionais do Security Command Center.

Configure um tópico do Pub/Sub

Nesta tarefa, cria e subscreve o tópico do Pub/Sub para o qual quer enviar notificações.

Passo 1: configure o Pub/Sub

Para configurar e subscrever um tópico Pub/Sub, faça o seguinte:

  1. Aceda à Google Cloud consola.

    Aceda à Google Cloud consola

  2. Selecione o projeto no qual ativou a API Security Command Center.

  3. Clique em Ativar Cloud Shell.

  4. Opcional: para criar um novo tópico do Pub/Sub, execute o seguinte comando:

    gcloud pubsub topics create TOPIC_ID
    

    Substitua TOPIC_ID pelo nome de um tópico.

  5. Crie uma subscrição do tópico:

    gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
    

    Substitua o seguinte:

    • SUBSCRIPTION_ID: o ID da subscrição
    • TOPIC_ID: o ID do tópico

Para saber como configurar o Pub/Sub, consulte o artigo Gerir tópicos e subscrições.

Passo 2: conceda a função no tópico do Pub/Sub

Para criar um NotificationConfig, precisa da função de administrador do Pub/Sub (roles/pubsub.admin) no tópico do Pub/Sub para o qual criou uma subscrição.

Para conceder esta função, faça o seguinte:

  1. Aceda à Google Cloud consola.

    Aceda à Google Cloud consola

  2. Selecione o projeto para o qual ativou a API Security Command Center.

  3. Clique em Ativar Cloud Shell.

  4. Conceda a função necessária à sua Conta Google no tópico do Pub/Sub:

    gcloud pubsub topics add-iam-policy-binding \
        projects/PUBSUB_PROJECT/topics/TOPIC_ID \
        --member="user:GOOGLE_ACCOUNT" \
        --role="roles/pubsub.admin"
    

    Substitua o seguinte:

    • PUBSUB_PROJECT: o projeto que contém o seu tópico do Pub/Sub Google Cloud
    • TOPIC_ID: o ID do tópico
    • GOOGLE_ACCOUNT: o endereço de email da sua Conta Google

Crie um NotificationConfig

Antes de criar um NotificationConfig, tenha em atenção que cada organização pode ter um número limitado de ficheiros NotificationConfig. Para mais informações, consulte o artigo Quotas e limites.

O NotificationConfig inclui um campo filter que limita as notificações a eventos úteis. Este campo aceita todos os filtros disponíveis no método Security Command Center API findings.list.

Quando cria um NotificationConfig, especifica um elemento principal para o NotificationConfig a partir da hierarquia de recursos Google Cloud , seja uma organização, uma pasta ou um projeto. Se precisar de obter, atualizar ou eliminar o NotificationConfig mais tarde, tem de incluir o ID numérico da organização principal, da pasta ou do projeto quando o referenciar.

Na Google Cloud consola, alguns recursos do NotificationConfig podem ter uma etiqueta Antigo que indica que foram criados com a API Security Command Center v1. Pode gerir estes recursos NotificationConfig com a consola Google Cloud ; a CLI gcloud; a API Security Command Center v1; ou as bibliotecas de cliente v1 para o Security Command Center.

Para gerir estes recursos NotificationConfig com a CLI gcloud, não pode especificar uma localização quando executar o comando da CLI gcloud.

Para criar o NotificationConfig com o idioma ou a plataforma da sua escolha:

gcloud

gcloud scc notifications create NOTIFICATION_NAME \
  --PARENT=PARENT_ID \
  --location=LOCATION \
  --description="NOTIFICATION_DESCRIPTION" \
  --pubsub-topic=PUBSUB_TOPIC \
  --filter="FILTER"

Substitua o seguinte:

  • NOTIFICATION_NAME: o nome da notificação. Tem de ter entre 1 e 128 carateres e conter apenas carateres alfanuméricos, sublinhados ou hífenes.
  • PARENT: o âmbito na hierarquia de recursos ao qual a notificação se aplica, organization, folder ou project.
  • PARENT_ID: o ID da organização principal, da pasta ou do projeto, especificado no formato de organizations/123, folders/456 ou projects/789.
  • LOCATION: a localização do Security Command Center em que ; se a residência de dados estiver ativada, use eu, sa ou us; caso contrário, use o valor global.
  • NOTIFICATION_DESCRIPTION: uma descrição da notificação com um máximo de 1024 carateres.
  • PUBSUB_TOPIC: o tópico do Pub/Sub que vai receber notificações. O formato é projects/PROJECT_ID/topics/TOPIC.
  • FILTER: a expressão que define para selecionar que descobertas são enviadas para o Pub/Sub. Por exemplo, state=\"ACTIVE\".

Terraform

Crie um NotificationConfig para uma organização:

resource "google_pubsub_topic" "scc_v2_organization_notification_config" {
  name = "my-topic"
}

resource "google_scc_v2_organization_notification_config" "custom_organization_notification_config" {
  config_id    = "my-config"
  organization = "123456789"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Organization Notification Configuration"
  pubsub_topic = google_pubsub_topic.scc_v2_organization_notification_config.id

  streaming_config {
    filter = "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\""
  }
}

Crie um NotificationConfig para uma pasta:

resource "google_folder" "folder" {
  parent       = "organizations/123456789"
  display_name = "folder-name"
}

resource "google_pubsub_topic" "scc_v2_folder_notification_config" {
  name = "my-topic"
}

resource "google_scc_v2_folder_notification_config" "custom_notification_config" {
  config_id    = "my-config"
  folder       = google_folder.folder.folder_id
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Notification Configuration"
  pubsub_topic =  google_pubsub_topic.scc_v2_folder_notification_config.id

  streaming_config {
    filter = "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\""
  }
}

Crie um NotificationConfig para um projeto:

resource "google_pubsub_topic" "scc_v2_project_notification" {
  name = "my-topic"
}

resource "google_scc_v2_project_notification_config" "custom_notification_config" {
  config_id    = "my-config"
  project      = "my-project-name"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Notification Configuration"
  pubsub_topic =  google_pubsub_topic.scc_v2_project_notification.id

  streaming_config {
    filter = "category = \"OPEN_FIREWALL\" AND state = \"ACTIVE\""
  }
}

Ir

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/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}/locations/global"
		//		"projects/{projectId}/locations/global"
		//		"folders/{folderId}/locations/global"
		Parent:   fmt.Sprintf("organizations/%s/locations/global", 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


package vtwo.notifications;

import com.google.cloud.securitycenter.v2.LocationName;
import com.google.cloud.securitycenter.v2.NotificationConfig;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class CreateNotification {

  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 = "{parent-id}";
    String topicName = "{your-topic}";
    String notificationConfigId = "{your-notification-id}";
    // Specify the location of the notification config.
    String location = "global";

    createNotificationConfig(parentId, location, topicName, notificationConfigId);
  }

  // Crete a notification config.
  // Ensure the ServiceAccount has the "pubsub.topics.setIamPolicy" permission on the new topic.
  public static NotificationConfig createNotificationConfig(
      String parentId, String location, String topicName, String notificationConfigId)
      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()) {

      String pubsubTopic = String.format("projects/%s/topics/%s", parentId, topicName);

      NotificationConfig notificationConfig = NotificationConfig.newBuilder()
          .setDescription("Java notification config")
          .setPubsubTopic(pubsubTopic)
          .setStreamingConfig(
              NotificationConfig.StreamingConfig.newBuilder().setFilter("state = \"ACTIVE\"")
                  .build())
          .build();

      NotificationConfig response = client.createNotificationConfig(
          LocationName.of(parentId, location), notificationConfig, notificationConfigId);

      System.out.printf("Notification config was created: %s%n", response);
      return response;
    }
  }
}

Node.js

// npm install '@google-cloud/security-center'
const {SecurityCenterClient} = require('@google-cloud/security-center').v2;
const uuidv1 = require('uuid').v1;

const client = new SecurityCenterClient();
/*
 *  Required. Resource name of the new notification config's parent. Its format
 *  is "organizations/[organization_id]/locations/[location_id]",
 *  "folders/[folder_id]/locations/[location_id]", or
 *  "projects/[project_id]/locations/[location_id]".
 */
const parent = `projects/${projectId}/locations/${location}`;

/**
 *  Required.
 *  Unique identifier provided by the client within the parent scope.
 *  It must be between 1 and 128 characters and contain alphanumeric
 *  characters, underscores, or hyphens only.
 */
const configId = 'notif-config-test-node-create-' + uuidv1();

// pubsubTopic = "projects/{your-project}/topics/{your-topic}";
const pubsubTopic = `projects/${projectId}/topics/${topicName}`;

/**
 *  Required. The notification config being created. The name and the service
 *  account will be ignored as they are both output only fields on this
 *  resource.
 */
const notificationConfig = {
  description: 'Sample config for node v2',
  pubsubTopic: pubsubTopic,
  streamingConfig: {filter: 'state = "ACTIVE"'},
};

// Build the request.
const createNotificationRequest = {
  parent: parent,
  configId: configId,
  notificationConfig: notificationConfig,
};

async function createNotificationConfig() {
  const [response] = await client.createNotificationConfig(
    createNotificationRequest
  );
  console.log('Notification configuration creation successful: %j', response);
}

await createNotificationConfig();

Python

def create_notification_config(
    parent_id, location_id, pubsub_topic, notification_config_id
) -> NotificationConfig:
    """
    This method is used to create the Notification Config.
    Args:
        parent_id: must be in one of the following formats:
            "organizations/{organization_id}"
            "projects/{project_id}"
            "folders/{folder_id}"
        location_id: "global"
        pubsub_topic: "projects/{your-project-id}/topics/{your-topic-id}"
        notification_config_id: "your-config-id"


    Ensure this ServiceAccount has the "pubsub.topics.setIamPolicy" permission on the new topic.
    """
    from google.cloud import securitycenter_v2 as securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()
    parent_id = parent_id + "/locations/" + location_id
    response = 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(f"create notification config response:{response}")
    return response

As notificações são agora publicadas no tópico Pub/Sub que especificou.

Para publicar notificações, é criada uma conta de serviço para si no formato de service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com. Esta conta de serviço é criada quando cria o seu primeiro NotificationConfig e recebe automaticamente a função securitycenter.notificationServiceAgent na política de IAM para PUBSUB_TOPIC quando cria a configuração de notificação. Esta função de conta de serviço é necessária para o funcionamento das notificações.

Conceda acesso ao perímetro nos VPC Service Controls

Se usar os VPC Service Controls e o seu tópico do Pub/Sub fizer parte de um projeto dentro de um perímetro de serviço, tem de conceder acesso a projetos para criar notificações.

Para conceder acesso a projetos, crie regras de entrada e saída para os principais e os projetos que são usados para criar notificações. As regras permitem o acesso a recursos protegidos e permitem que o Pub/Sub verifique se os utilizadores têm a autorização setIamPolicy no tópico do Pub/Sub.

Antes de criar um NotificationConfig

Antes de concluir os passos em Criar um NotificationConfig, conclua os passos seguintes.

Consola

  1. Na Google Cloud consola, aceda à página VPC Service Controls.

    Aceda aos VPC Service Controls

  2. Selecione a sua organização ou projeto.
  3. Na lista pendente, selecione a política de acesso que contém o perímetro de serviço ao qual quer conceder acesso.

    Os perímetros de serviço associados à política de acesso aparecem na lista.

  4. Clique no nome do perímetro de serviço que quer atualizar.

    Para encontrar o perímetro de serviço que tem de modificar, pode verificar as entradas nos registos que mostram violações de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o campo servicePerimeterName:

    accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
  5. Clique em Editar.
  6. Clique em Política de saída.
  7. Clique em Adicionar regra de saída.
  8. Na secção De, defina os seguintes detalhes:

    1. Em Identidades > Identidade, selecione Selecionar identidades e grupos.
    2. Clique em Adicionar identidades.
    3. Introduza o endereço de email do principal usado para chamar a API Security Command Center.

    4. Selecione o principal ou prima ENTER e, de seguida, clique em Adicionar identidades.
  9. Na secção Para, defina os seguintes detalhes:

    1. Em Recursos > Projetos, selecione Todos os projetos.
    2. Para Funções de operações ou do IAM, selecione Selecionar operações.
    3. Clique em Adicionar operações e, de seguida, adicione as seguintes operações:

      • Adicione o serviço pubsub.googleapis.com.
        1. Clique em Todos os métodos.
        2. Clique em Adicionar todos os métodos.
  10. Clique em Política de entrada.
  11. Clique em Adicionar uma regra de entrada.
  12. Na secção De, defina os seguintes detalhes:

    1. Em Identidades > Identidade, selecione Selecionar identidades e grupos.
    2. Clique em Adicionar identidades.
    3. Introduza o endereço de email do principal usado para chamar a API Security Command Center.

    4. Selecione o principal ou prima ENTER e, de seguida, clique em Adicionar identidades.
    5. Em Fontes, selecione Todas as fontes.
  13. Na secção Para, defina os seguintes detalhes:

    1. Em Recursos > Projetos, selecione Selecionar projetos.
    2. Clique em Adicionar projetos e, de seguida, adicione o projeto que contém o tópico do Pub/Sub.
    3. Para Funções de operações ou do IAM, selecione Selecionar operações.
    4. Clique em Adicionar operações e, de seguida, adicione as seguintes operações:

      • Adicione o serviço pubsub.googleapis.com.
        1. Clique em Todos os métodos.
        2. Clique em Adicionar todos os métodos.
  14. Clique em Guardar.

gcloud

  1. Se ainda não tiver sido definido um projeto de quota, defina-o. Escolha um projeto que tenha a API Access Context Manager ativada.

    gcloud config set billing/quota_project QUOTA_PROJECT_ID

    Substitua QUOTA_PROJECT_ID pelo ID do projeto que quer usar para faturação e quota.

  2. Crie um ficheiro denominado egress-rule.yaml com o seguinte conteúdo:

    - egressFrom:
        identities:
        - PRINCIPAL_ADDRESS
      egressTo:
        operations:
        - serviceName: pubsub.googleapis.com
          methodSelectors:
          - method: '*'
        resources:
        - '*'

    Substitua PRINCIPAL_ADDRESS pelo endereço do principal usado para chamar a API Security Command Center.

  3. Crie um ficheiro denominado ingress-rule.yaml com o seguinte conteúdo:

    - ingressFrom:
        identities:
        - PRINCIPAL_ADDRESS
        sources:
        - accessLevel: '*'
      ingressTo:
        operations:
        - serviceName: pubsub.googleapis.com
          methodSelectors:
          - method: '*'
        resources:
        - '*'

    Substitua PRINCIPAL_ADDRESS pelo endereço do principal usado para chamar a API Security Command Center.

  4. Adicione a regra de saída ao perímetro:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
        --set-egress-policies=egress-rule.yaml

    Substitua o seguinte:

    • PERIMETER_NAME: o nome do perímetro. Por exemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar o perímetro de serviço que tem de modificar, pode verificar as entradas nos registos que mostram violações de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
  5. Adicione a regra de entrada ao perímetro:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
        --set-ingress-policies=ingress-rule.yaml

    Substitua o seguinte:

    • PERIMETER_NAME: o nome do perímetro. Por exemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar o perímetro de serviço que tem de modificar, pode verificar as entradas nos registos que mostram violações de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME

Consulte as Regras de entrada e saída para mais informações.

Crie uma regra de entrada para o NotificationConfig

Para criar uma regra de entrada para um NotificationConfig, conclua as instruções em Criar um NotificationConfig e, de seguida, conclua os seguintes passos.

Consola

  1. Reabra o perímetro de serviço a partir da secção anterior.

    Aceda aos VPC Service Controls

  2. Clique em Política de entrada.
  3. Clique em Adicionar uma regra de entrada.
  4. Na secção De, defina os seguintes detalhes:

    1. Em Identidades > Identidade, selecione Selecionar identidades e grupos.
    2. Clique em Adicionar identidades.
    3. Introduza o endereço de email do NotificationConfig agente de serviço. A morada do agente de serviço tem o seguinte formato:

      service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com

      Substitua ORGANIZATION_ID pelo ID da sua organização.

    4. Selecione o agente de serviços ou prima ENTER e, de seguida, clique em Adicionar identidades.
    5. Em Fontes, selecione Todas as fontes.
  5. Na secção Para, defina os seguintes detalhes:

    1. Em Recursos > Projetos, selecione Selecionar projetos.
    2. Clique em Adicionar projetos e, de seguida, adicione o projeto que contém o tópico do Pub/Sub.
    3. Para Funções de operações ou do IAM, selecione Selecionar operações.
    4. Clique em Adicionar operações e, de seguida, adicione as seguintes operações:

      • Adicione o serviço pubsub.googleapis.com.
        1. Clique em Todos os métodos.
        2. Clique em Adicionar todos os métodos.
  6. Clique em Guardar.

gcloud

  1. Se ainda não tiver sido definido um projeto de quota, defina-o. Escolha um projeto que tenha a API Access Context Manager ativada.

    gcloud config set billing/quota_project QUOTA_PROJECT_ID

    Substitua QUOTA_PROJECT_ID pelo ID do projeto que quer usar para faturação e quota.

  2. Crie um ficheiro denominado ingress-rule.yaml com o seguinte conteúdo:

    - 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:
        - '*'

    Substitua ORGANIZATION_ID pelo ID da sua organização.

  3. Adicione a regra de entrada ao perímetro:

    gcloud access-context-manager perimeters update PERIMETER_NAME \
        --set-ingress-policies=ingress-rule.yaml

    Substitua o seguinte:

    • PERIMETER_NAME: o nome do perímetro. Por exemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar o perímetro de serviço que tem de modificar, pode verificar as entradas nos registos que mostram violações de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. Nessas entradas, verifique o campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME

Consulte as Regras de entrada e saída para mais informações.

Os projetos, os utilizadores e as contas de serviços selecionados podem agora aceder aos recursos protegidos e criar notificações.

Se seguiu todos os passos neste guia e as notificações estiverem a funcionar corretamente, já pode eliminar o seguinte:

  • A regra de entrada para o principal
  • A regra de saída para o principal

Essas regras só eram necessárias para configurar o NotificationConfig. No entanto, para que as notificações continuem a funcionar, tem de manter a regra de entrada para o NotificationConfig, que lhe permite publicar notificações no seu tópico do Pub/Sub atrás do perímetro de serviço.

O que se segue?