Habilitar la búsqueda de notificaciones de Pub/Sub

En esta página se explica cómo habilitar las notificaciones de la API de Security Command Center.

Las notificaciones envían resultados y novedades al respecto a un tema de Pub/Sub en cuestión de minutos. Las notificaciones de la API de Security Command Center incluyen toda la información de las detecciones que muestra Security Command Center en laGoogle Cloud consola.

Puedes conectar las notificaciones de Security Command Center en Pub/Sub directamente a las acciones de Cloud Run Functions. Para ver funciones de ejemplo que pueden ayudarte con la respuesta, el enriquecimiento y la corrección, consulta el repositorio de código abierto de funciones de Cloud Run de Security Command Center. El repositorio contiene soluciones que te ayudarán a tomar medidas automatizadas en función de los resultados de seguridad.

También puede exportar los resultados a BigQuery o configurar Exportaciones continuas para Pub/Sub en la Google Cloud consola.

Antes de empezar

  1. Para obtener los permisos que necesitas para configurar las notificaciones de la API de Security Command Center, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

  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

Residencia de datos y notificaciones

Si la residencia de datos está habilitada en Security Command Center, las configuraciones que definen las exportaciones continuas a recursos de Pub/Sub (notificationConfig) están sujetas al control de residencia de datos y se almacenan en tu ubicación de Security Command Center.

Para exportar resultados de una ubicación de Security Command Center a Pub/Sub, debes configurar la exportación continua en la misma ubicación de Security Command Center que los resultados.

Como los filtros que se usan en las exportaciones continuas pueden contener datos sujetos a controles de residencia, asegúrese de especificar la ubicación correcta antes de crearlos. Security Command Center no restringe la ubicación en la que creas las exportaciones.

Las exportaciones continuas solo se almacenan en la ubicación en la que se crean y no se pueden ver ni editar en otras ubicaciones.

Una vez que hayas creado una exportación continua, no podrás cambiar su ubicación. Para cambiar la ubicación, debes eliminar la exportación continua y volver a crearla en la nueva ubicación.

Para saber cómo usar Security Command Center cuando la residencia de datos está habilitada, consulta Endpoints regionales de Security Command Center.

Configurar un tema de Pub/Sub

En esta tarea, creará el tema de Pub/Sub al que quiere enviar notificaciones y se suscribirá a él.

Paso 1: Configura Pub/Sub

Para configurar un tema de Pub/Sub y suscribirte a él, sigue estos pasos:

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. Selecciona el proyecto en el que has habilitado la API de Security Command Center.

  3. Haz clic en Activar Cloud Shell.

  4. Opcional: Para crear un tema de Pub/Sub, ejecuta el siguiente comando:

    gcloud pubsub topics create TOPIC_ID
    

    Sustituye TOPIC_ID por el nombre de un tema.

  5. Crea una suscripción al tema:

    gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
    

    Haz los cambios siguientes:

    • SUBSCRIPTION_ID: el ID de suscripción
    • TOPIC_ID: el ID del tema
    .

Para obtener más información sobre cómo configurar Pub/Sub, consulta Gestionar temas y suscripciones.

Paso 2: Asigna el rol en el tema de Pub/Sub

Para crear un NotificationConfig, necesitas el rol Administrador de Pub/Sub (roles/pubsub.admin) en el tema de Pub/Sub para el que has creado una suscripción.

Para asignar este rol, sigue estos pasos:

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

  2. Selecciona el proyecto en el que has habilitado la API de Security Command Center.

  3. Haz clic en Activar Cloud Shell.

  4. Concede el rol necesario a tu cuenta de Google en el tema de Pub/Sub:

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

    Haz los cambios siguientes:

    • PUBSUB_PROJECT: el Google Cloud proyecto que contiene tu tema de Pub/Sub
    • TOPIC_ID: el ID del tema
    • GOOGLE_ACCOUNT: la dirección de correo de tu cuenta de Google

Crear NotificationConfig

Antes de crear un NotificationConfig, ten en cuenta que cada organización puede tener un número limitado de archivos NotificationConfig. Para obtener más información, consulta Cuotas y límites.

El objeto NotificationConfig incluye un campo filter que limita las notificaciones a eventos útiles. Este campo acepta todos los filtros disponibles en el método de la API de Security Command Center findings.list.

Cuando creas un NotificationConfig, debes especificar un elemento superior para el NotificationConfig en la jerarquía de recursos Google Cloud , que puede ser una organización, una carpeta o un proyecto. Si necesitas recuperar, actualizar o eliminar el NotificationConfig más adelante, debes incluir el ID numérico de la organización, la carpeta o el proyecto principal cuando hagas referencia a él.

En la consola de Google Cloud , algunos recursos de NotificationConfig pueden tener la etiqueta Antiguo, que indica que se crearon con la API Security Command Center v1. Puedes gestionar estos recursos de NotificationConfig Google Cloud con la consola, la CLI de gcloud, la API de Security Command Center v1 o las bibliotecas de cliente v1 de Security Command Center.

Para gestionar estos recursos de NotificationConfig con gcloud CLI, no debes especificar una ubicación al ejecutar el comando gcloud CLI.

Para crear el NotificationConfig con el lenguaje o la plataforma que elijas, sigue estos pasos:

gcloud

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

Haz los cambios siguientes:

  • NOTIFICATION_NAME: el nombre de la notificación. Debe tener entre 1 y 128 caracteres y solo puede contener caracteres alfanuméricos, guiones bajos o guiones.
  • PARENT: el ámbito de la jerarquía de recursos al que se aplica la notificación (organization, folder o project).
  • PARENT_ID: el ID de la organización, la carpeta o el proyecto principal, especificado en el formato organizations/123, folders/456 o projects/789.
  • LOCATION: la ubicación de Security Command Center en la que se va a ; si la residencia de datos está habilitada, usa eu, sa o us; de lo contrario, usa el valor global.
  • NOTIFICATION_DESCRIPTION: una descripción de la notificación de no más de 1024 caracteres.
  • PUBSUB_TOPIC: el tema de Pub/Sub que recibirá las notificaciones. Su formato es projects/PROJECT_ID/topics/TOPIC.
  • FILTER: la expresión que defines para seleccionar qué resultados se envían a Pub/Sub. Por ejemplo, state=\"ACTIVE\".

Terraform

Para crear un NotificationConfig para una organización, sigue estos pasos:

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\""
  }
}

Para crear un NotificationConfig de una carpeta, sigue estos pasos:

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\""
  }
}

Crear un NotificationConfig para un proyecto:

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\""
  }
}

Go

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

Las notificaciones se publican en el tema de Pub/Sub que has especificado.

Para publicar notificaciones, se crea una cuenta de servicio con el formato service-org-ORGANIZATION_ID@gcp-sa-scc-notification.iam.gserviceaccount.com. Esta cuenta de servicio se crea cuando creas tu primer NotificationConfig y se le asigna automáticamente el rol securitycenter.notificationServiceAgent en la política de gestión de identidades y accesos de PUBSUB_TOPIC al crear la configuración de notificaciones. Este rol de cuenta de servicio es necesario para que funcionen las notificaciones.

Conceder acceso al perímetro en Controles de Servicio de VPC

Si usas Controles de Servicio de VPC y tu tema de Pub/Sub forma parte de un proyecto que está dentro de un perímetro de servicio, debes conceder acceso a los proyectos para crear notificaciones.

Para conceder acceso a los proyectos, crea reglas de entrada y salida para las entidades y los proyectos que se utilicen para crear notificaciones. Las reglas permiten acceder a los recursos protegidos y permiten que Pub/Sub verifique que los usuarios tienen el permiso setIamPolicy en el tema de Pub/Sub.

Antes de crear NotificationConfig

Antes de completar los pasos que se indican en Crear un NotificationConfig, sigue estos pasos.

Consola

  1. En la Google Cloud consola, ve a la página Controles de Servicio de VPC.

    Ir a Controles de Servicio de VPC

  2. Selecciona tu organización o proyecto.
  3. Si has seleccionado una organización, haz clic en Seleccionar una política de acceso y, a continuación, selecciona la política de acceso asociada al perímetro que quieras actualizar.
  4. Haz clic en el nombre del perímetro que quieras actualizar.

    Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. En esas entradas, comprueba el campo servicePerimeterName:

    accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
  5. Haz clic en Editar perímetro.
  6. Haz clic en Política de salida.
  7. Haz clic en Añadir una regla de salida.
  8. En la sección DE, define los siguientes detalles:

    1. En Identidad, selecciona Seleccionar identidades y grupos.
    2. Haz clic en Añadir identidades.
    3. Introduce la dirección de correo del principal que se ha usado para llamar a la API de Security Command Center.

    4. Selecciona el principal o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
  9. En la sección PARA, indica los siguientes detalles:

    1. En Proyecto, selecciona Todos los proyectos.
    2. En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
    3. Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:

      • Añade el servicio pubsub.googleapis.com.
        1. Haz clic en Todos los métodos.
        2. Haz clic en Añadir todos los métodos.
  10. Haz clic en Política de entrada.
  11. Haz clic en Añadir una regla de entrada.
  12. En la sección DE, define los siguientes detalles:

    1. En Identidad, selecciona Seleccionar identidades y grupos.
    2. Haz clic en Añadir identidades.
    3. Introduce la dirección de correo del principal que se ha usado para llamar a la API de Security Command Center.

    4. Selecciona el principal o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
    5. En Fuentes, selecciona Todas las fuentes.
  13. En la sección PARA, indica los siguientes detalles:

    1. En Proyecto, selecciona Seleccionar proyectos.
    2. Haz clic en Añadir proyectos y, a continuación, añade el proyecto que contiene el tema de Pub/Sub.
    3. En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
    4. Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:

      • Añade el servicio pubsub.googleapis.com.
        1. Haz clic en Todos los métodos.
        2. Haz clic en Añadir todos los métodos.
  14. Haz clic en Guardar.

gcloud

  1. Si aún no se ha definido un proyecto de cuota, hazlo. Elige un proyecto que tenga habilitada la API Access Context Manager.

    gcloud config set billing/quota_project QUOTA_PROJECT_ID

    Sustituye QUOTA_PROJECT_ID por el ID del proyecto que quieras usar para la facturación y la cuota.

  2. Crea un archivo llamado egress-rule.yaml con el siguiente contenido:

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

    Sustituye PRINCIPAL_ADDRESS por la dirección de la cuenta principal que se ha usado para llamar a la API de Security Command Center.

  3. Crea un archivo llamado ingress-rule.yaml con el siguiente contenido:

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

    Sustituye PRINCIPAL_ADDRESS por la dirección de la cuenta principal que se ha usado para llamar a la API de Security Command Center.

  4. Añade la regla de salida al perímetro:

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

    Haz los cambios siguientes:

    • PERIMETER_NAME: el nombre del perímetro. Por ejemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. En esas entradas, comprueba el campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME
  5. Añade la regla de entrada al perímetro:

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

    Haz los cambios siguientes:

    • PERIMETER_NAME: el nombre del perímetro. Por ejemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. En esas entradas, comprueba el campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME

Consulta más información sobre las reglas de entrada y salida.

Crear una regla de entrada para NotificationConfig

Para crear una regla de entrada para un NotificationConfig, sigue las instrucciones de Crear un NotificationConfig y, a continuación, completa los pasos que se indican a continuación.

Consola

  1. Vuelve a abrir el perímetro de servicio de la sección anterior.

    Ir a Controles de Servicio de VPC

  2. Haz clic en Política de entrada.
  3. Haz clic en Añadir una regla de entrada.
  4. En la sección DE, define los siguientes detalles:

    1. En Identidad, selecciona Seleccionar identidades y grupos.
    2. Haz clic en Añadir identidades.
    3. Escribe la dirección de correo del agente del servicio NotificationConfig. La dirección del agente de servicio tiene el siguiente formato:

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

      Sustituye ORGANIZATION_ID por el ID de tu organización.

    4. Selecciona el agente de servicio o pulsa INTRO y, a continuación, haz clic en Añadir identidades.
    5. En Fuentes, selecciona Todas las fuentes.
  5. En la sección PARA, indica los siguientes detalles:

    1. En Proyecto, selecciona Seleccionar proyectos.
    2. Haz clic en Añadir proyectos y, a continuación, añade el proyecto que contiene el tema de Pub/Sub.
    3. En Roles de operaciones o de gestión de identidades y accesos, selecciona Seleccionar operaciones.
    4. Haz clic en Añadir operaciones y, a continuación, añade las siguientes operaciones:

      • Añade el servicio pubsub.googleapis.com.
        1. Haz clic en Todos los métodos.
        2. Haz clic en Añadir todos los métodos.
  6. Haz clic en Guardar.

gcloud

  1. Si aún no se ha definido un proyecto de cuota, hazlo. Elige un proyecto que tenga habilitada la API Access Context Manager.

    gcloud config set billing/quota_project QUOTA_PROJECT_ID

    Sustituye QUOTA_PROJECT_ID por el ID del proyecto que quieras usar para la facturación y la cuota.

  2. Crea un archivo llamado ingress-rule.yaml con el siguiente contenido:

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

    Sustituye ORGANIZATION_ID por el ID de tu organización.

  3. Añade la regla de entrada al perímetro:

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

    Haz los cambios siguientes:

    • PERIMETER_NAME: el nombre del perímetro. Por ejemplo, accessPolicies/1234567890/servicePerimeters/example_perimeter.

      Para encontrar el perímetro de servicio que quieres modificar, puedes consultar tus registros para ver las entradas que muestran infracciones de RESOURCES_NOT_IN_SAME_SERVICE_PERIMETER. En esas entradas, comprueba el campo servicePerimeterName:

      accessPolicies/ACCESS_POLICY_ID/servicePerimeters/SERVICE_PERIMETER_NAME

Consulta más información sobre las reglas de entrada y salida.

Los proyectos, usuarios y cuentas de servicio seleccionados ahora pueden acceder a los recursos protegidos y crear notificaciones.

Si has seguido todos los pasos de esta guía y las notificaciones funcionan correctamente, ahora puedes eliminar lo siguiente:

  • La regla de entrada de la cuenta principal
  • La regla de salida de la cuenta principal

Esas reglas solo eran necesarias para configurar NotificationConfig. Sin embargo, para que las notificaciones sigan funcionando, debes mantener la regla de entrada de NotificationConfig, que le permite publicar notificaciones en tu tema de Pub/Sub detrás del perímetro de servicio.

Siguientes pasos