Silencia los resultados en Security Command Center

En esta página, se explica cómo reducir el volumen de resultados que recibes en Security Command Center silenciándolos.

Si silencias un resultado, este se ocultará de la vista predeterminada de los resultados en la console de Google Cloud. Puedes silenciar resultados de forma manual o programática, y crear filtros para silenciar automáticamente los resultados existentes y futuros según los criterios que especifiques.

Los servicios de detección de Security Command Center proporcionan evaluaciones de seguridad amplias de tu implementación de Google Cloud, pero es posible que ciertos resultados no sean adecuados o relevantes para tu organización o proyectos. Un gran volumen de resultados también puede dificultar a los analistas de seguridad la identificación y solución eficaz de los riesgos más importantes. La función de silenciamiento de resultados te ahorra tiempo de revisar o responder a los resultados de seguridad de los recursos aislados o que están dentro de los parámetros comerciales aceptables.

Silenciar los resultados tiene varias ventajas sobre la inhabilitación de detectores:

  • Puedes crear filtros personalizados para definir mejor qué resultados se silencian.
  • Puedes usar las reglas de silenciamiento para silenciar los resultados de forma temporal o indefinida.
  • El silenciamiento de resultados no impide que se analicen los recursos subyacentes. Los resultados se siguen generando, pero permanecen ocultos hasta que decidas verlos.

Permisos

Para silenciar los resultados, necesitas una de las siguientes funciones de Identity and Access Management (IAM) a nivel de la organización, la carpeta o el proyecto:

  • Visualización de las reglas de silenciamiento:
    • Visualizador administrador del centro de seguridad (roles/securitycenter.adminViewer)
    • Visualizador de configuración del centro de seguridad (roles/securitycenter.settingsViewer)
    • Visualizador de parámetros de configuración de elementos silenciados del centro de seguridad (roles/securitycenter.muteConfigsViewer)
  • Visualización, creación, actualización y eliminación de las reglas de silenciamiento:
    • Administrador del centro de seguridad (roles/securitycenter.admin)
    • Editor administrador del centro de seguridad (roles/securitycenter.adminEditor)
    • Editor de configuración del centro de seguridad (roles/securitycenter.settingsEditor)
    • Editor de parámetros de configuración de elementos silenciados del centro de seguridad (roles/securitycenter.muteConfigsEditor)
  • Silenciamiento manual de los resultados:
    • Editor de hallazgos del centro de seguridad (roles/securitycenter.findingsEditor)

También puedes crear y otorgar funciones personalizadas con algunos de los siguientes permisos o todos ellos:

  • Permisos de lectura de reglas de silenciamiento
    • securitycenter.muteconfigs.get
    • securitycenter.muteconfigs.list
  • Permisos de escritura de reglas de silenciamiento
    • securitycenter.muteconfigs.create
    • securitycenter.muteconfigs.update
    • securitycenter.muteconfigs.delete
  • Permisos de escritura de hallazgos
    • securitycenter.findings.setMute
    • securitycenter.findings.bulkMuteUpdate

Tu capacidad para silenciar resultados se adhiere a los roles otorgados a nivel de organización, carpeta o proyecto. Puedes silenciar los resultados en carpetas o proyectos específicos y restringir la capacidad de otros para silenciar los resultados en función del acceso que se les otorga. Por ejemplo, si tienes acceso a un solo proyecto, solo puedes silenciar los resultados en ese proyecto. Si tienes acceso a una carpeta, puedes silenciar los resultados en cualquier subcarpeta o proyecto dentro de esa carpeta.

Para obtener más información sobre las funciones de Security Command Center, consulta Control de acceso.

Crea y administra reglas de silenciamiento

Las reglas de silenciamiento son parámetros de configuración de Security Command Center que usan filtros que creas para silenciar de forma automática los resultados existentes y futuros según los criterios que especifiques. Puedes crear filtros con reglas de silenciamiento estáticas o dinámicas.

Las reglas de silenciamiento estáticas silencian los resultados futuros de forma indefinida. Las reglas de silenciamiento dinámico silencian los resultados futuros y existentes de forma temporal hasta una fecha especificada o de forma indefinida hasta que un resultado ya no coincida con la configuración.

Tipos de reglas de silenciamiento

Security Command Center admite configuraciones de reglas de silenciamiento estáticas y dinámicas. Aunque puedes usar reglas de silenciamiento estáticas y dinámicas de forma simultánea, no lo recomendamos. Las reglas de silenciamiento estáticas anula las reglas de silenciamiento dinámico cuando se aplican al mismo resultado. Como resultado, las reglas de silenciamiento dinámico no funcionarán según lo previsto, lo que puede generar confusión cuando administras tus resultados. Por lo tanto, te recomendamos que uses un solo tipo de regla de silenciamiento.

A menos que ya uses reglas de silenciamiento estáticas, te recomendamos que uses exclusivamente las reglas de silenciamiento dinámico, ya que ofrecen más flexibilidad.

En la siguiente tabla, se proporciona una comparación de alto nivel de los dos tipos de reglas de silenciamiento. Para obtener más información, consulta Reglas de silencio estáticas y Reglas de silencio dinámicas.

Reglas de silenciamiento estáticas Reglas de silenciamiento dinámico
Actuar de forma indefinida en función de los resultados Puede actuar sobre un resultado de forma temporal con un tiempo de vencimiento o de forma indefinida si no se establece un tiempo de vencimiento.
No se aplican a los resultados existentes. Se aplica a los hallazgos existentes y nuevos.
Tienen prioridad sobre las reglas de silenciamiento dinámico. Tienen una prioridad más baja y se anulan con las reglas de silenciamiento estáticas cuando ambos tipos se aplican a un hallazgo.

Reglas de silenciamiento estáticas

  • Las reglas de silenciamiento estáticas actúan de forma indefinida. Cuando un resultado coincide con tu configuración de silenciamiento estático, Security Command Center establece automáticamente la propiedad mute del resultado en MUTED hasta que la cambies de forma manual.
  • Las reglas de silenciamiento estáticas no tienen efecto en los hallazgos existentes. Solo se aplican a los hallazgos que se crean o actualizan después de definir la regla. Si también deseas silenciar resultados similares existentes, usa los mismos filtros para silenciar resultados de forma masiva.
  • Las reglas de silenciamiento estáticas tienen prioridad sobre las reglas de silenciamiento dinámico. Por lo tanto, todos los hallazgos nuevos que coincidan con una regla de silenciamiento estático definida se consideran silenciados, incluso si también coinciden con una regla de silenciamiento dinámico definida.

Reglas de silenciamiento dinámico

  • Las reglas de silenciamiento dinámico pueden actuar en un resultado de forma temporal con un período de vencimiento o de forma indefinida si no se establece un período de vencimiento. Cuando un resultado existente o nuevo coincide con tu configuración de silenciamiento dinámico, Security Command Center establece automáticamente la propiedad mute del resultado en MUTED hasta la fecha de vencimiento especificada o hasta que haya cambios en el resultado o en la configuración. Cuando vence una regla de silenciamiento dinámica, Security Command Center elimina la regla del resultado. Si el resultado no coincide con ninguna otra regla de silenciamiento dinámica, la propiedad mute se restablece automáticamente a UNDEFINED.
  • Las reglas de silenciamiento dinámico se aplican automáticamente a los resultados existentes que coinciden con tu configuración, así como a los resultados que se crean o actualizan recientemente.
  • Las reglas de silenciamiento dinámico tienen una prioridad más baja y se anulan con las reglas de silenciamiento estáticas cuando ambos tipos se aplican a un hallazgo.

Te recomendamos que uses exclusivamente las reglas de silenciamiento dinámico. La capacidad de silenciar y dejar de silenciar resultados de forma temporal y automática hace que las reglas de silenciamiento dinámicas sean una opción más flexible que las reglas de silenciamiento estáticas.

Si usas reglas de silenciamiento estáticas para reducir la cantidad de resultados que revisas manualmente y deseas migrar a reglas de silenciamiento dinámicas, consulta Cómo migrar de reglas de silenciamiento estáticas a dinámicas.

Alcance de las reglas de silencio

Ten en cuenta el alcance de una regla de silenciamiento cuando crees filtros.

Por ejemplo, si se escribe un filtro para silenciar los resultados en Project A, pero el filtro en sí se crea en Project B, es posible que el filtro no coincida con ningún resultado.

Del mismo modo, si está habilitada la residencia de datos, el alcance de una regla de silenciamiento se limita a la ubicación de Security Command Center en la que se crea. Por ejemplo, si creas una regla de silenciamiento en la ubicación de Estados Unidos (us), la regla de silenciamiento no silencia los resultados que se almacenan en las ubicaciones de Unión Europea (eu) o Global (global). Para obtener más información sobre la residencia de datos y las reglas de silenciamiento, consulta Reglas de silenciamiento, exportaciones continuas y residencia de datos.

Para obtener más información sobre cómo crear filtros, consulta Filtra notificaciones.

Restricciones de las reglas de silencio

Las reglas de silenciamiento no son compatibles con todas las propiedades de los resultados. Para obtener una lista de las propiedades que no son compatibles con las reglas de silenciamiento, consulta Propiedades de resultados no compatibles con las reglas de silenciamiento.

Puedes crear, ver, actualizar y borrar reglas de silenciamiento según el alcance de tus roles de IAM. Con las funciones a nivel de la organización, verás reglas de silenciamiento para todas las carpetas y proyectos de la organización. Si tienes funciones a nivel de carpeta, puedes acceder a las reglas de silenciamiento y administrarlas para carpetas específicas y todos los proyectos y subcarpetas dentro de ellas. Las funciones a nivel de proyecto te permiten administrar las reglas de silenciamiento en proyectos específicos.

Security Command Center Premium permite otorgar funciones a nivel de organización, carpeta y proyecto. La versión estándar de Security Command Center solo admite la asignación de funciones a nivel de organización. Para obtener más información, consulta Guía de control de acceso.

Residencia de datos y reglas de silenciamiento

Si la residencia de datos está habilitada, las configuraciones que definen las reglas de silenciamiento (recursos muteConfig) están sujetas al control de residencia de datos y se almacenan en una ubicación de Security Command Center que selecciones.

Para aplicar una regla de silenciamiento a los resultados de una ubicación de Security Command Center, debes crearla en la misma ubicación que los resultados a los que se aplica.

Debido a que los filtros que se usan en las reglas de silenciamiento pueden contener datos sujetos a controles de residencia, asegúrate de especificar la ubicación correcta antes de crearlos. Security Command Center no restringe la ubicación en la que creas reglas de silenciamiento ni exportaciones de transmisión continua.

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

Después de crear una regla de silenciamiento, no puedes cambiar su ubicación. Para cambiar la ubicación, debes borrar la regla de silenciamiento y volver a crearla en la ubicación nueva.

Para ver las reglas de silenciamiento en la consola de Google Cloud, primero debes configurar la vista de la consola de Google Cloud en la ubicación en la que se crearon.

Las mismas reglas se aplican a la representación de la API de una regla de silenciamiento, MuteConfig.

Para recuperar un MuteConfig con llamadas a la API, debes especificar la ubicación en el nombre de recurso completo del MuteConfig. Por ejemplo:

GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/muteConfigs/my-mute-rule-01

De manera similar, para recuperar un muteConfig con gcloud CLI, puedes especificar la ubicación con la marca --location. Por ejemplo:

gcloud scc muteconfigs list --organization=123 --location=us

Crea una regla de silenciamiento

Tu organización puede crear un máximo de 1,000 reglas de silenciamiento.

Puedes crear reglas de silenciamiento estáticas o dinámicas con la consola de Google Cloud, gcloud CLI o la API de Security Command Center. Te recomendamos que uses reglas de silencio dinámicas exclusivamente en tus configuraciones de reglas de silencio, ya que son más flexibles que las reglas de silencio estáticas. Para ver una comparación de los tipos de reglas de silenciamiento, consulta Tipos de reglas de silenciamiento.

Para obtener un código de muestra que cree una regla de silenciamiento, consulta Crea una regla de silenciamiento.

Para crear una regla de silenciamiento, haz clic en la pestaña del procedimiento que desees usar:

Console

  1. En la consola de Google Cloud, ve a la página Findings (Resultados) de Security Command Center.

    Ir a hallazgos

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. Haz clic en Opciones para silenciar y, luego, selecciona Administrar reglas de silenciamiento.

  5. Haz clic en Crear regla de silenciamiento y, luego, selecciona Regla de silenciamiento dinámico o Regla de silenciamiento estático. Para obtener más información sobre los tipos de reglas de silenciamiento, consulta Tipos de reglas de silenciamiento.

  6. Ingresa un ID de regla de silenciamiento. Es obligatorio ingresar este valor.

  7. Ingresa una descripción de la regla de silenciamiento que proporcione contexto de los motivos por los que se silencian los resultados. Este valor es opcional, pero se recomienda.

    El recurso superior indica el alcance con el que se creará y aplicará la regla de silenciamiento.

  8. Si creas una regla de silenciamiento estática o una regla de silenciamiento dinámico sin vencimiento, continúa con el siguiente paso. Si creas una regla de silenciamiento dinámico para silenciar resultados temporalmente, sigue estos pasos:

    1. Selecciona la casilla de verificación Silenciar los resultados coincidentes temporalmente.
    2. Selecciona o ingresa la fecha de vencimiento de la regla de silenciamiento dinámico. Este valor indica durante cuánto tiempo la regla silenciará los resultados que coincidan.
  9. En el campo Consulta de resultados, haz clic en Agregar filtro para compilar tus sentencias de consulta. Como alternativa, puedes escribir las sentencias de consulta de forma manual.

    El diálogo Seleccionar filtro te permite elegir atributos y valores admitidos de resultados.

    1. Selecciona un atributo de resultado o escribe su nombre en el cuadro Buscar atributos de los hallazgos. Aparecerá una lista de los atributos secundarios disponibles.
    2. Selecciona un atributo secundario. Aparecerá un campo de selección en el que puedes crear la sentencia de consulta con el atributo secundario que seleccionaste, un operador de consulta y uno o más valores para el atributo secundario.
    3. Selecciona el operador y uno o más valores para el atributo secundario en el panel. Para obtener más información sobre los operadores de consulta y las funciones que usan, consulta Operadores de consulta en el menú Agregar filtros.
    4. Haz clic en Aplicar.

      Se cerrará el cuadro de diálogo y se actualizará tu consulta.

    5. Repite hasta que la consulta de los resultados contenga todos los atributos que deseas.
  10. Revisa el filtro para ver si es preciso. Para realizar cambios, borra o agrega propiedades y filtra los valores según sea necesario.

  11. Haz clic en Obtener una vista previa de los resultados de coincidencias.

    En una tabla, se muestran los resultados que coinciden con tu consulta.

  12. Haz clic en Guardar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para crear reglas de silenciamiento, ejecuta el comando gcloud scc muteconfigs create:

    gcloud scc muteconfigs create CONFIG_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION
      --description="RULE_DESCRIPTION" \
      --filter="FILTER" \
      --type=MUTE_TYPE \
      --expiry-time=TIMESTAMP

    Reemplaza lo siguiente:

    • CONFIG_ID: Es el nombre de la regla de silenciamiento. El ID debe usar caracteres alfanuméricos y guiones, y tener entre 1 y 63 caracteres.
    • PARENT: Es el permiso en la jerarquía de recursos al que se aplica la regla de silenciamiento, organization, folder o project.
    • PARENT_ID: El ID numérico de la organización, la carpeta o el proyecto superior, o el ID alfanumérico del proyecto superior.
    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se creará una regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
    • RULE_DESCRIPTION: Una descripción de la regla de silenciamiento de no más de 1,024 caracteres.
    • FILTER: Es la expresión que defines para filtrar los resultados. Por ejemplo, para silenciar los resultados de OPEN_FIREWALL, tu filtro puede ser FILTER="category=\"OPEN_FIREWALL\"".
    • MUTE_TYPE: Es el tipo de regla de silenciamiento que deseas crear. Los tipos de reglas de silenciamiento válidos son DYNAMIC y STATIC. El tipo de regla de silenciamiento se establece en STATIC de forma predeterminada. No puedes cambiar el tipo de una regla de silenciamiento después de crearla.
    • TIMESTAMP: Solo se aplica si creas una regla de silenciamiento dinámica. Es la cadena de fecha y hora que indica cuándo vence la regla de silenciamiento dinámico. El valor debe establecerse en, al menos, un día en el futuro, o se rechazará la solicitud. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes. Cuando vence una regla de silenciamiento dinámico, se quita de todos los resultados coincidentes. Si deseas que la regla de silenciamiento dinámico actúe de forma indefinida en los resultados que coincidan, omite este campo.

    La respuesta incluye el ID de la regla de silenciamiento que puedes usar para ver, actualizar y borrar reglas de silenciamiento, como se describe en Administra reglas de silenciamiento.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// createMuteRule: Creates a mute configuration under a given scope that will mute
// all new findings that match a given filter.
// Existing findings will not be muted.
func createMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// parent: Use any one of the following options:
	//             - organizations/{organization_id}
	//             - folders/{folder_id}
	//             - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	// muteConfigId: Set a random id; max of 63 chars.
	// muteConfigId := "random-mute-id-" + uuid.New().String()
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	muteConfig := &securitycenterpb.MuteConfig{
		Description: "Mute low-medium IAM grants excluding 'compute' ",
		// Set mute rule(s).
		// To construct mute rules and for supported properties, see:
		// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
		Filter: "severity=\"LOW\" OR severity=\"MEDIUM\" AND " +
			"category=\"Persistence: IAM Anomalous Grant\" AND " +
			"-resource.type:\"compute\"",
		Type: securitycenterpb.MuteConfig_STATIC,
	}

	req := &securitycenterpb.CreateMuteConfigRequest{
		Parent:       parent,
		MuteConfigId: muteConfigId,
		MuteConfig:   muteConfig,
	}

	response, err := client.CreateMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to create mute rule: %w", err)
	}
	fmt.Fprintf(w, "Mute rule created successfully: %s", response.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.LocationName;
import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.MuteConfig.MuteConfigType;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;
import java.util.UUID;

public class CreateMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the following variables.
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config.
    String location = "global";

    // muteConfigId: Set a random id; max of 63 chars.
    String muteConfigId = "random-mute-id-" + UUID.randomUUID();

    createMuteRule(projectId, location, muteConfigId);
  }

  // Creates a mute configuration in a project under a given location.
  public static void createMuteRule(String projectId, String location, String muteConfigId)
      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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      MuteConfig muteConfig =
          MuteConfig.newBuilder()
              .setDescription("Mute low-medium IAM grants excluding 'compute' ")
              // Set mute rule(s).
              // To construct mute rules and for supported properties, see:
              // https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
              .setFilter(
                  "severity=\"LOW\" OR severity=\"MEDIUM\" AND "
                      + "category=\"Persistence: IAM Anomalous Grant\" AND "
                      + "-resource.type:\"compute\"")
              .setType(MuteConfigType.STATIC)
              .build();

      // You can also create mute rules in an organization/ folder.
      // Construct the parameters according to the parent resource.
      //  * Organization -> client.createMuteConfig(OrganizationLocationName.of(...
      //  * Folder -> client.createMuteConfig(FolderLocationName.of(...
      MuteConfig response = client.createMuteConfig(
          LocationName.of(projectId, location), muteConfig, muteConfigId);
      System.out.println("Mute rule created successfully: " + response.getName());
    }
  }
}

Python

def create_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Creates a mute configuration under a given scope that will mute
    all new findings that match a given filter.
    Existing findings will NOT BE muted.
    Args:
        parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
        Dict: returns the mute rule details
    """

    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    mute_config = securitycenter_v2.MuteConfig()
    mute_config.description = "Mute low-medium IAM grants excluding 'compute' "
    # Set mute rule(s).
    # To construct mute rules and for supported properties, see:
    # https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
    mute_config.filter = (
        'severity="LOW" OR severity="MEDIUM" AND '
        'category="Persistence: IAM Anomalous Grant" AND '
        '-resource.type:"compute"'
    )
    mute_config.type = "STATIC"

    request = securitycenter_v2.CreateMuteConfigRequest()
    request.parent = parent_path + "/locations/" + location_id
    request.mute_config_id = mute_config_id
    request.mute_config = mute_config

    mute_config = client.create_mute_config(request=request)
    print(f"Mute rule created successfully: {mute_config.name}")
    return mute_config

REST

En la API de Security Command Center, usa el método muteConfigs.create para crear una regla de silenciamiento. El cuerpo de la solicitud es una instancia de MuteConfig:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs?muteConfigId=MUTE_CONFIG_ID -d

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Reemplaza lo siguiente:

  • PARENT: El recurso superior de la regla de silenciamiento (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se creará una regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
  • MUTE_CONFIG_ID: El nombre de la regla de silenciamiento (entre 1 y 63 caracteres)
  • RULE_DESCRIPTION: Una descripción de la regla de silenciamiento (máximo: 1,024 caracteres)
  • FILTER: Es la expresión que defines para filtrar los resultados.

    Por ejemplo, para silenciar los resultados de OPEN_FIREWALL, tu filtro puede ser "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: Es el tipo de regla de silenciamiento que deseas crear. Los tipos de reglas de silenciamiento válidos son DYNAMIC y STATIC. No puedes cambiar el tipo de una regla de silenciamiento después de crearla.

  • TIMESTAMP: Solo se aplica si creas una regla de silenciamiento dinámica. Es la cadena de fecha y hora que indica cuándo vence la regla de silenciamiento dinámico. El valor debe establecerse en, al menos, un día en el futuro, o se rechazará la solicitud. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes. Cuando vence una regla de silenciamiento dinámico, se quita de todos los resultados coincidentes. Si deseas que la regla de silenciamiento dinámico actúe de forma indefinida en los resultados que coincidan, omite este campo.

La respuesta incluye el ID de configuración de silenciamiento que puedes usar para ver, actualizar y borrar reglas de silenciamiento, como se describe en Administra reglas de silenciamiento.

Los resultados nuevos que coinciden con exactitud con el filtro se ocultan y el atributo mute de los resultados se establece en MUTED.

Propiedades de resultados no compatibles con las reglas de silenciamiento

Las reglas de silenciamiento no son compatibles con todas las propiedades de resultados en los filtros. Las siguientes propiedades no son compatibles con los filtros de reglas de silenciamiento.

  • createTime
  • eventTime
  • mute
  • mute_initiator
  • mute_update_time
  • name
  • parent
  • security_marks
  • source_properties
  • state

Muestra una lista de reglas de silenciamiento

Puedes generar una lista de las reglas de silenciamiento en una organización, carpeta o proyecto con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

Tu capacidad para enumerar reglas de silenciamiento para un alcance determinado depende de los permisos que se otorgan a tus roles de IAM.

Si la residencia de datos está habilitada para Security Command Center, el alcance del comando list también se limita a la ubicación de Security Command Center seleccionada.

Para ver un código de muestra que enumere las reglas de silenciamiento, consulta Cómo enumerar las reglas de silenciamiento.

Para mostrar una lista de las reglas de silenciamiento de una organización, carpeta o proyecto, haz clic en la pestaña del procedimiento que deseas usar:

Console

  1. En la consola de Google Cloud, ve a la pestaña Reglas de silencio en la página Configuración de Security Command Center.

    Ir a Reglas de silencio

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. En la sección Reglas de silencio, verás detalles de las reglas de silenciamiento activas, incluidas las siguientes:

    • Nombre: ID de la regla de silenciamiento
    • Recurso superior: El recurso en el que reside la regla de silenciamiento
    • Descripción: La descripción de la regla de silenciamiento, si está disponible
    • Última actualización por: La principal que actualizó por última vez la regla
    • Última actualización: La fecha y hora en que se actualizó la regla por última vez

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para enumerar las reglas de silenciamiento, ejecuta el comando gcloud scc muteconfigs list:

    gcloud scc muteconfigs list --PARENT=PARENT_ID \
      --location=LOCATION

    Reemplaza lo siguiente:

    • PARENT: El organization, folder o project superior para el que se enumeran las reglas de silenciamiento
    • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior
    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se enumeran las reglas de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
	"google.golang.org/api/iterator"
)

// listMuteRules lists mute configs at the organization level will return all the configs
// at the org, folder, and project levels.
// Similarly, listing configs at folder level will list all the configs
// at the folder and project levels.
func listMuteRules(w io.Writer, parent string) error {
	// Use any one of the following resource paths to list mute configurations:
	//         - organizations/{organization_id}
	//         - folders/{folder_id}
	//         - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.ListMuteConfigsRequest{Parent: parent}

	// List all mute configs present in the resource.
	it := client.ListMuteConfigs(ctx, req)
	for {
		muteconfig, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("it.Next: %w", err)
		}
		fmt.Fprintf(w, "Muteconfig Name: %s, ", muteconfig.Name)
	}
	return nil
}

Java


import com.google.cloud.securitycenter.v2.ListMuteConfigsRequest;
import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class ListMuteRules {

  public static void main(String[] args) throws IOException {
    // TODO: Replace variables enclosed within {}
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location to list mute configs.
    String location = "global";

    listMuteRules(projectId, location);
  }

  // Lists all mute rules present under the resource type in the given location.
  public static void listMuteRules(String projectId, String location) 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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      // Parent can also be one of:
      //  * "organizations/{org_id}/locations/{location}"
      //  * "folders/{folder_id}/locations/{location}"
      ListMuteConfigsRequest listMuteConfigsRequest = ListMuteConfigsRequest.newBuilder()
          .setParent(String.format("projects/%s/locations/%s", projectId, location))
          .build();

      // List all mute configs present in the resource.
      for (MuteConfig muteConfig : client.listMuteConfigs(listMuteConfigsRequest).iterateAll()) {
        System.out.println(muteConfig.getName());
      }
    }
  }
}

Python

def list_mute_rules(parent: str, location_id: str) -> Dict:
    """
    Listing mute configs at organization level will return all the configs
    at the org, folder and project levels.
    Similarly, listing configs at folder level will list all the configs
    at the folder and project levels.
    Args:
        parent: Use any one of the following resource paths to list mute configurations:
                - organizations/{organization_id}
                - folders/{folder_id}
                - projects/{project_id}
        location_id: Gcp location id; example: 'global'
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.ListMuteConfigsRequest()
    request.parent = parent + "/locations/" + location_id
    response = client.list_mute_configs(request)
    # List all Mute Configs present in the resource.
    for mute_config in response:
        print(mute_config.name)
    return response

REST

En la API de Security Command Center, usa el método muteConfigs.list para enumerar las reglas de silenciamiento:

GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs

Reemplaza lo siguiente:

  • PARENT: El recurso superior de la regla de silenciamiento (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se enumeran las reglas de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.

La respuesta incluye los nombres, las descripciones y los ID de configuración de silenciamiento de tus reglas de silenciamiento.

Cómo ver la configuración de una regla de silenciamiento

Puedes ver la configuración de una regla de silenciamiento con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

Para ver un código de muestra que recupera una configuración de regla de silenciamiento, consulta Cómo ver una regla de silenciamiento.

Para ver la configuración de una regla de silenciamiento, haz clic en la pestaña del procedimiento que desees usar:

Console

  1. En la consola de Google Cloud, ve a la pestaña Reglas de silencio en la página Configuración de Security Command Center.

    Ir a Reglas de silencio

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. En la sección Reglas de silencio, verás una lista de reglas de silenciamiento.

  5. Haz clic en el nombre de la regla que deseas ver.

    Se abrirá una página con la configuración de la regla de silenciamiento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para ver la configuración de una regla de silenciamiento, ejecuta el comando gcloud scc muteconfigs get:

    gcloud scc muteconfigs get MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    Reemplaza lo siguiente:

    • MUTE_CONFIG_ID: Es el ID de la regla de silenciamiento.
    • PARENT: El recurso superior de la regla de silenciamiento (organization, folder o project)
    • PARENT_ID: El ID de la organización, la carpeta o el proyecto
    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe ver la configuración de la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// getMuteRule retrieves a mute configuration given its resource name.
func getMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// Use any one of the following resource paths to get mute configuration:
	//         - organizations/{organization_id}
	//         - folders/{folder_id}
	//         - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// Name of the mute config to retrieve.
	// muteConfigId := "mute-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.GetMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

	muteconfig, err := client.GetMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("Failed to retrieve Muteconfig: %w", err)
	}
	fmt.Fprintf(w, "Muteconfig Name: %s ", muteconfig.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.MuteConfigName;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class GetMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the following variables
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Name of the mute config to retrieve.
    String muteConfigId = "mute-config-id";

    getMuteRule(projectId, location, muteConfigId);
  }

  // Retrieves a mute configuration given its resource name.
  public static MuteConfig getMuteRule(String projectId, String location, String muteConfigId)
      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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      //  * organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      //  * folder -> MuteConfigName.ofFolderLocationMuteConfigName()

      MuteConfigName muteConfigName = MuteConfigName.ofProjectLocationMuteConfigName(projectId,
          location, muteConfigId);
      return client.getMuteConfig(muteConfigName);
    }
  }
}

Python

def get_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Retrieves a mute configuration given its resource name.
    Args:
        parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.GetMuteConfigRequest()
    request.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )

    mute_config = client.get_mute_config(request)
    print(f"Retrieved the mute rule: {mute_config.name}")
    return mute_config

REST

En la API de Security Command Center, usa el método muteConfigs.get para mostrar la configuración de una regla de silenciamiento:

GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

Reemplaza lo siguiente:

  • PARENT: El recurso superior de la regla de silenciamiento (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe ver la configuración de la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
  • CONFIG_ID: Es el ID numérico de la regla de silenciamiento

Actualiza reglas de silenciamiento

Puedes actualizar la descripción o el filtro de búsqueda de una regla de silenciamiento con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

No puedes cambiar el ID, la organización, la carpeta o el proyecto superiores, ni la ubicación de una regla de silenciamiento. Para cambiar cualquiera de estos valores, debes crear una regla de silenciamiento nueva.

Si dejaste de silenciar los resultados, se volverán a silenciar si coinciden con una regla de silenciamiento actualizada en la consola de Google Cloud. Para obtener más información, consulta Cómo dejar de silenciar resultados individuales.

Para ver un código de muestra que actualiza una regla de silenciamiento, consulta Actualiza una regla de silenciamiento.

Para actualizar una regla de silenciamiento, haz clic en la pestaña del procedimiento que desees usar:

Console

  1. En la consola de Google Cloud, ve a la pestaña Reglas de silencio en la página Configuración de Security Command Center.

    Ir a Reglas de silencio

  2. Selecciona la organización o el proyecto de Google Cloud que es el recurso superior de la regla de silenciamiento que deseas modificar.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. Haz clic en el nombre de la regla de silenciamiento que deseas modificar.

    Si no seleccionaste el proyecto o la organización adecuados, es posible que veas una nota en la que se te informe que no tienes permiso para modificar la regla de silenciamiento.

  5. Ingresa una descripción nueva y haz clic en Guardar.

  6. En el caso de las reglas de silenciamiento dinámicas, actualiza o cambia el tiempo de vencimiento de la regla.

  7. Actualiza o cambia el filtro.

    Para obtener instrucciones, consulta Crea reglas de silenciamiento.

  8. Para ver los resultados que coinciden con el filtro actualizado, haz clic en Obtener una vista previa de los resultados de coincidencias.

    Se cargará una tabla con los resultados que coinciden con la consulta nueva.

  9. Haz clic en Guardar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para actualizar las reglas de silenciamiento, ejecuta el comando gcloud scc muteconfigs update:

    gcloud scc muteconfigs update MUTE_CONFIG_ID \
        --PARENT=PARENT_ID \
        --location=LOCATION
        --description=RULE_DESCRIPTION \
        --filter=FILTER
        --type=MUTE_TYPE \
        --expiry-time=TIMESTAMP
    

    Reemplaza lo siguiente:

    • MUTE_CONFIG_ID: Es el ID de la regla de silenciamiento.
    • PARENT: El recurso superior de la regla de silenciamiento (organization, folder o project).
    • PARENT_ID: El ID de la organización, la carpeta o el proyecto.
    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se actualizará la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
    • RULE_DESCRIPTION: Es una descripción de la regla de silenciamiento (máx.: 1,024 caracteres).
    • FILTER: Es la expresión que defines para filtrar los resultados.

      Por ejemplo, para silenciar los resultados de OPEN_FIREWALL, tu filtro podría ser FILTER="category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: El tipo de regla de silenciamiento que deseas actualizar. Los tipos de reglas de silenciamiento válidos son DYNAMIC y STATIC. No puedes cambiar el tipo de una regla de silenciamiento una vez que la creaste.

    • TIMESTAMP: Solo se aplica si actualizas una regla de silenciamiento dinámica. Es la cadena de fecha y hora que indica cuándo vence la regla de silenciamiento dinámico. El valor debe establecerse en, al menos, un día en el futuro, o se rechazará la solicitud. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes. Cuando vence una regla de silenciamiento dinámico, se quita de todos los resultados coincidentes. Si deseas que la regla de silenciamiento dinámico actúe de forma indefinida en los resultados que coincidan, omite este campo.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
	"google.golang.org/protobuf/types/known/fieldmaskpb"
)

// updateMuteRule Updates an existing mute configuration.
// The following can be updated in a mute config: description and filter.
func updateMuteRule(w io.Writer, muteConfigName string) error {
	// Specify the name of the mute config to delete.
	// muteConfigName: Use any one of the following formats:
	//                 - organizations/{organization}/muteConfigs/{config_id}
	//                 - folders/{folder}/muteConfigs/{config_id}
	//                 - projects/{project}/muteConfigs/{config_id}
	// muteConfigName := fmt.Sprintf("projects/%s/muteConfigs/%s", "project-id", "mute-config")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	updateMuteConfig := &securitycenterpb.MuteConfig{
		Name:        muteConfigName,
		Description: "Updated mute config description",
	}

	req := &securitycenterpb.UpdateMuteConfigRequest{
		MuteConfig: updateMuteConfig,
		// Set the update mask to specify which properties of the mute config should be
		// updated.
		// If empty, all mutable fields will be updated.
		// Make sure that the mask fields match the properties changed in 'updateMuteConfig'.
		// For more info on constructing update mask path, see the proto or:
		// https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
		UpdateMask: &fieldmaskpb.FieldMask{
			Paths: []string{
				"description",
			},
		},
	}

	response, err := client.UpdateMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("mute rule update failed! %w", err)
	}
	fmt.Fprintf(w, "Mute rule updated %s", response.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.UpdateMuteConfigRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;

public class UpdateMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config to update. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Name of the mute config to update.
    String muteConfigId = "mute-config-id";

    updateMuteRule(projectId, location, muteConfigId);
  }

  // Updates an existing mute configuration.
  // The following can be updated in a mute config: description and filter.
  public static void updateMuteRule(String projectId, String location, String muteConfigId)
      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.
    try (SecurityCenterClient securityCenterClient = SecurityCenterClient.create()) {

      MuteConfig updateMuteConfig =
          MuteConfig.newBuilder()
              // Construct the name according to the parent type of the mute rule.
              // Parent can also be one of:
              //  * "organizations/{org_id}/locations/{location}/muteConfigs/{muteConfig_id}"
              //  * "folders/{folder_id}/locations/{location}/muteConfigs/{muteConfig_id}"
              .setName(String.format("projects/%s/locations/%s/muteConfigs/%s", projectId, location,
                  muteConfigId))
              .setDescription("Updated mute config description")
              .build();

      UpdateMuteConfigRequest updateMuteConfigRequest =
          UpdateMuteConfigRequest.newBuilder()
              .setMuteConfig(updateMuteConfig)
              // Make sure that the mask fields match the properties changed in
              // 'updateMuteConfig' object.
              // For more info on constructing update mask path, see the proto or:
              // https://cloud.google.com/security-command-center/docs/reference/rest/v2/folders.muteConfigs/patch?hl=en#query-parameters
              .setUpdateMask(FieldMask.newBuilder().addPaths("description").build())
              .build();

      MuteConfig response = securityCenterClient.updateMuteConfig(updateMuteConfigRequest);
      System.out.println(response);
    }
  }
}

Python

def update_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Updates an existing mute configuration.
    The following can be updated in a mute config: description, and filter/ mute rule.
    Args:
        parent: Use any one of the following resource paths to list mute configurations:
                - organizations/{organization_id}
                - folders/{folder_id}
                - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2
    from google.protobuf import field_mask_pb2

    client = securitycenter_v2.SecurityCenterClient()

    update_mute_config = securitycenter_v2.MuteConfig()
    update_mute_config.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )
    update_mute_config.description = "Updated mute config description"

    field_mask = field_mask_pb2.FieldMask(paths=["description"])

    request = securitycenter_v2.UpdateMuteConfigRequest()
    request.mute_config = update_mute_config
    # Set the update mask to specify which properties of the Mute Config should be updated.
    # If empty, all mutable fields will be updated.
    # Make sure that the mask fields match the properties changed in 'update_mute_config'.
    # For more info on constructing update mask path, see the proto or:
    # https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
    request.update_mask = field_mask

    mute_config = client.update_mute_config(request)
    print(f"Updated mute rule : {mute_config}")
    return mute_config

REST

En la API de Security Command Center, usa el método muteConfigs.patch para actualizar una regla de silenciamiento. El cuerpo de la solicitud es una instancia de MuteConfig:

PATCH https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Reemplaza lo siguiente:

  • PARENT: El recurso superior de la regla de silenciamiento (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se actualizará la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
  • CONFIG_ID: Es el ID numérico de la regla de silenciamiento
  • RULE_DESCRIPTION: Una descripción de la regla de silenciamiento (máximo: 1,024 caracteres)
  • FILTER: Es la expresión que defines para filtrar los resultados

    Por ejemplo, para silenciar los resultados de OPEN_FIREWALL, tu filtro puede ser "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: Es el tipo de regla de silenciamiento que deseas actualizar. Los tipos de reglas de silenciamiento válidos son DYNAMIC y STATIC. No puedes cambiar el tipo de una regla de silenciamiento una vez que la creaste.

  • TIMESTAMP: Solo se aplica si actualizas una regla de silenciamiento dinámica. Es la cadena de fecha y hora que indica cuándo vence la regla de silenciamiento dinámico. El valor debe establecerse en, al menos, un día en el futuro, o se rechazará la solicitud. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes. Cuando vence una regla de silencio dinámico, se quita de todos los resultados coincidentes. Si deseas que la regla de silenciamiento dinámico actúe de forma indefinida en los resultados coincidentes, omite este campo.

Los resultados nuevos que coinciden con exactitud con el filtro se ocultan y el atributo mute de los resultados se establece en MUTED.

Borra reglas de silenciamiento

Puedes borrar una regla de silenciamiento con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

Antes de borrar reglas de silenciamiento, debes comprender lo siguiente:

  • No puedes recuperar las reglas de silenciamiento borradas.
  • Si borras las reglas de silenciamiento estáticas, no se dejarán de silenciar automáticamente los resultados que estén silenciados. Debes dejar de silenciar los resultados de manera manual o programática.
  • Si borras las reglas de silenciamiento dinámicas, se quitará automáticamente la regla de todos los resultados que coincidan con la regla anterior y se dejarán de silenciar si no coinciden con ninguna regla adicional.
  • No se silencian los resultados futuros que coincidan con los filtros de las reglas de silenciamiento borradas.

Para ver un código de muestra que borra una regla de silenciamiento, consulta Borra una regla de silenciamiento.

Para borrar una regla de silenciamiento, haz clic en la pestaña del procedimiento que deseas usar:

Console

  1. En la consola de Google Cloud, ve a la pestaña Reglas de silencio en la página Configuración de Security Command Center.

    Ir a Reglas de silencio

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. Haz clic en el nombre de la regla de silenciamiento que deseas borrar.

  5. Haz clic en Borrar.

  6. Lee el cuadro de diálogo y, si estás de acuerdo, haz clic en Borrar.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para borrar reglas de silenciamiento, ejecuta el comando gcloud scc muteconfigs delete:

    gcloud scc muteconfigs delete MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    Reemplaza lo siguiente:

    • MUTE_CONFIG_ID: Es el ID de la configuración de silenciamiento
    • PARENT: El recurso superior de la regla de silenciamiento (organization, folder o project)
    • PARENT_ID: El ID de la organización, la carpeta o el proyecto
    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe borrar la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
  3. Confirma tu solicitud para borrar la regla de silenciamiento.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// deleteMuteRule deletes a mute configuration given its resource name.
// Note: Previously muted findings are not affected when a mute config is deleted.
func deleteMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// parent: Use any one of the following options:
	//             - organizations/{organization_id}
	//             - folders/{folder_id}
	//             - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// muteConfigId: Specify the name of the mute config to delete.
	// muteConfigId := "mute-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.DeleteMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

	if err := client.DeleteMuteConfig(ctx, req); err != nil {
		return fmt.Errorf("failed to delete Muteconfig: %w", err)
	}
	fmt.Fprintf(w, "Mute rule deleted successfully: %s", muteConfigId)
	return nil
}

Java


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

public class DeleteMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the following variables
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Specify the name of the mute config to delete.
    String muteConfigId = "mute-config-id";

    deleteMuteRule(projectId, location, muteConfigId);
  }

  // Deletes a mute configuration given its resource name.
  // Note: Previously muted findings are not affected when a mute config is deleted.
  public static void deleteMuteRule(String projectId, String location, String muteConfigId)
      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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      // folder -> MuteConfigName.ofFolderLocationMuteConfigName()
      // organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      client.deleteMuteConfig(
          MuteConfigName.ofProjectLocationMuteConfigName(projectId, location, muteConfigId));

      System.out.println("Mute rule deleted successfully: " + muteConfigId);
    }
  }
}

Python

def delete_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> None:
    """
    Deletes a mute configuration given its resource name.
    Note: Previously muted findings are not affected when a mute config is deleted.
    Args:
         parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         None: returns none mute rule is deleted
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.DeleteMuteConfigRequest()
    request.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )

    client.delete_mute_config(request)
    print(f"Mute rule deleted successfully: {mute_config_id}")

REST

En la API de Security Command Center, usa el método muteConfigs.delete para borrar una regla de silenciamiento:

DELETE https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

Reemplaza lo siguiente:

  • PARENT: El recurso superior de la regla de silenciamiento (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe borrar la regla de silenciamiento. Si la residencia de datos no está habilitada, usa el valor global.
  • CONFIG_ID: Es el ID numérico de la regla de silenciamiento

Cómo silenciar un resultado individual

Puedes silenciar de forma estática un hallazgo individual con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

Silenciar un hallazgo de forma estática no afecta si está activo o no. Si se silencia un resultado activo, el atributo state no se modifica: state="ACTIVE". El resultado se oculta, pero permanece activo hasta que se resuelve la vulnerabilidad, la configuración incorrecta o la amenaza subyacentes. Además, si silencias un resultado de forma estática, se anularán las reglas de silenciamiento dinámico que se apliquen a él.

Si silencias un hallazgo de combinación tóxica, se cerrará el caso correspondiente.

Para silenciar todos los resultados futuros que coincidan con los criterios que especifiques, consulta Crea reglas de silenciamiento.

Para obtener un código de muestra que silencie un hallazgo, consulta Cómo silenciar un hallazgo.

Para silenciar de forma estática un resultado individual, haz clic en la pestaña del procedimiento que deseas usar:

Console

  1. En la consola de Google Cloud, ve a la página Resultados de Security Command Center.

    Ir a hallazgos

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. Si no ves el hallazgo que necesitas silenciar en el panel Resultados de la búsqueda, selecciona la categoría del hallazgo en la sección Categoría del panel Filtros rápidos.

  5. Selecciona la casilla de verificación junto al resultado que deseas silenciar. Puedes seleccionar uno o más resultados.

  6. En la barra de acciones de los resultados de la búsqueda de hallazgos, haz clic en Opciones para silenciar y, luego, selecciona Aplicar anulación de silenciamiento.

    El atributo mute para los resultados seleccionados se establece en MUTED y el resultado se quita del panel Resultados de la búsqueda de resultados.

Como alternativa, puedes silenciar un resultado desde su panel de detalles:

  1. En el panel Resultados de la búsqueda de la página Resultados, en la columna Categoría, haz clic en el nombre de un hallazgo individual. Se abrirá el panel de detalles del resultado.
  2. Haz clic en Tomar medidas.
  3. En el menú Tomar medidas, selecciona Aplicar anulación de silenciamiento.

    Si seleccionas Silenciar resultados como este, se abrirá la página Crear regla de silenciamiento, en la que puedes crear una regla de silenciamiento para resultados del mismo tipo o que incluyan el mismo atributo Indicator.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para establecer el estado de silenciamiento de un resultado en MUTED, usa el comando set-mute en la CLI de gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=MUTED

    Reemplaza lo siguiente:

    • FINDING_ID: Es el ID del resultado que deseas silenciar

      Para recuperar los IDs de resultados, usa la API de Security Command Center para mostrar una lista de resultados. El ID de búsqueda es la última parte del atributo canonicalName, por ejemplo, projects/123456789012/sources/1234567890123456789/findings`/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: El recurso superior (project, folder o organization), distingue entre mayúsculas y minúsculas.

    • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior

    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se silenciará el resultado. Si la residencia de datos no está habilitada, usa el valor global.

    • SOURCE_ID: El ID de origen

      Para obtener instrucciones sobre cómo recuperar un ID de origen, consulta Obtén el ID de origen.

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setMute mutes an individual finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setMute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_MUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetMuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setMute(findingPath);
  }

  // Mute an individual finding.
  // If a finding is already muted, muting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setMute(String findingPath) 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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              // Relative path for the finding.
              .setName(findingPath)
              .setMute(Mute.MUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_mute_finding(finding_path: str) -> None:
    """
      Mute an individual finding.
      If a finding is already muted, muting it again has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.MUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

En la API de Security Command Center, usa el método findings.setMute para silenciar un resultado. El cuerpo de la solicitud es una enumeración que indica el estado de silenciamiento resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "MUTED"
}

Reemplaza lo siguiente:

  • PARENT: El recurso superior (organizations, folders o projects).
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior.
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se silenciará el resultado. Si la residencia de datos no está habilitada, usa el valor global.
  • SOURCE_ID: Es el ID numérico del origen.

    Para obtener instrucciones sobre cómo recuperar un ID de origen, consulta Obtén el ID de origen.

  • FINDING_ID: Es el ID del resultado que deseas silenciar.

    Para recuperar los IDs de resultados, usa la API de Security Command Center para mostrar una lista de resultados. El ID de búsqueda es la última parte del atributo canonicalName, por ejemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

Después de silenciar un resultado, su atributo mute se establece en MUTED.

Deja de silenciar resultados individuales

Puedes desactivar de forma estática un hallazgo individual con la consola de Google Cloud, gcloud CLI o la API de Security Command Center.

Desactivar el silenciamiento de un resultado es útil cuando necesitas evitar que una regla de silenciamiento demasiado amplia o una regla que podría ser demasiado compleja para modificarla excluya los resultados que consideras importantes.

Para obtener un código de muestra para activar un hallazgo, consulta Cómo activar un hallazgo.

Los resultados que se dejaron de silenciar se vuelven a silenciar solo si se silencian de forma manual. Las reglas de silenciamiento creadas con gcloud CLI o la API de Security Command Center no afectarán los resultados que los usuarios dejen de silenciar.

Para obtener un código de muestra para activar un hallazgo, consulta Cómo activar un hallazgo.

Console

  1. En la consola de Google Cloud, ve a la página Findings (Resultados) de Security Command Center.

    Ir a hallazgos

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

    Se abrirá la página Hallazgos con la consulta predeterminada que se muestra en la sección Vista previa de la consulta. La consulta predeterminada filtra los resultados silenciados, por lo que debes editar la consulta antes de que aparezcan en el panel Resultados de la consulta de resultados.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. A la derecha de la sección Vista previa de la consulta, haz clic en Editar consulta para abrir el editor de consultas.

  5. En el campo Editor de consultas, reemplaza la sentencia de silenciamiento existente por lo siguiente:

    mute="MUTED"
  6. Haz clic en Aplicar. Los resultados del panel Resultados de la búsqueda se actualizan para incluir solo los resultados silenciados.

  7. Si es necesario, filtra otros resultados silenciados. Por ejemplo, en el panel Filtros rápidos, en Categoría, selecciona el nombre del hallazgo que necesitas activar para filtrar todas las demás categorías de hallazgos.

  8. Selecciona la casilla de verificación junto al resultado que deseas dejar de silenciar. Puedes seleccionar uno o más resultados.

  9. En la barra de acciones de los resultados de la búsqueda de hallazgos, haz clic en Opciones para silenciar y, luego, selecciona Aplicar anulación de silenciamiento.

    El atributo mute para los resultados seleccionados se establece en UNMUTED y el resultado se quita del panel Resultados de la búsqueda de resultados.

Como alternativa, puedes activar un resultado desde su panel de detalles:

  1. En el panel Resultados de la búsqueda de la página Resultados, en la columna Categoría, haz clic en el nombre de un hallazgo individual. Se abrirá el panel de detalles del resultado.
  2. Haz clic en Tomar medidas.
  3. En el menú Tomar medidas, selecciona Aplicar anulación de silenciamiento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para establecer el estado de silenciamiento de un resultado en UNMUTED, usa el comando set-mute en la CLI de gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNMUTED

    Reemplaza lo siguiente:

    • FINDING_ID: Es el ID del resultado que deseas silenciar

      Para recuperar los IDs de resultados, usa la API de Security Command Center para mostrar una lista de resultados. El ID de búsqueda es la última parte del atributo canonicalName, por ejemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: El recurso superior (project, folder o organization), distingue entre mayúsculas y minúsculas.

    • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior

    • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe activar el hallazgo. Si la residencia de datos no está habilitada, usa el valor global.

    • SOURCE_ID: El ID de origen

      Para obtener instrucciones sobre cómo recuperar un ID de origen, consulta Obtén el ID de origen.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setUnmute unmutes an individual finding.
// Unmuting a finding that isn't muted has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setUnmute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_UNMUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetUnmuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setUnmute(findingPath);
  }

  // Unmute an individual finding.
  // Unmuting a finding that isn't muted has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setUnmute(String findingPath) 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.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              .setName(findingPath)
              .setMute(Mute.UNMUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_unmute_finding(finding_path: str) -> None:
    """
      Unmute an individual finding.
      Unmuting a finding that isn't muted has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.UNMUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

En la API de Security Command Center, usa el método findings.setMute para activar un resultado. El cuerpo de la solicitud es una enumeración que indica el estado de silenciamiento resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNMUTED"
}

Reemplaza lo siguiente:

  • PARENT: El recurso superior (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior
  • LOCATION: Si la residencia de datos está habilitada, la ubicación de Security Command Center en la que se debe activar el hallazgo. Si la residencia de datos no está habilitada, usa el valor global.
  • SOURCE_ID: Es el ID numérico del origen

    Para obtener instrucciones sobre cómo recuperar un ID de origen, consulta Obtén el ID de origen.

  • FINDING_ID: Es el ID del resultado que deseas silenciar.

    Para recuperar los IDs de resultados, usa la API de Security Command Center para mostrar una lista de resultados. El ID de búsqueda es la última parte del atributo canonicalName, por ejemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

Los resultados seleccionados ya no están ocultos y el atributo mute para los resultados se establece en UNMUTED.

Quita una anulación de estado de silenciamiento de resultados individuales

Aplicas una anulación del estado de silenciamiento cuando modificas de forma intencional el estado de silenciamiento de un resultado para silenciarlo o reactivarlo de forma estática. Por ejemplo, es posible que desees aplicar una anulación de estado de silenciamiento para ocultar un hallazgo de gravedad baja para el que no vale la pena crear una regla de silenciamiento dinámica.

Puedes quitar una anulación de estado silenciado de un hallazgo individual con la consola de Google Cloud, la gcloud CLI o la API de Security Command Center.

Antes de quitar la anulación del estado de silenciamiento de un hallazgo, ten en cuenta lo siguiente:

  • Un hallazgo tiene una anulación de estado de silenciamiento si está silenciado o activado de forma estática. Puedes aplicar una anulación de estado de silenciamiento a cualquier resultado de forma manual o automática con reglas de silenciamiento estáticas.
  • Una anulación de estado de silenciamiento se aplica a un resultado de forma indefinida y tiene prioridad sobre cualquier regla de silenciamiento coincidente.
  • Si quitas la anulación del estado de silenciamiento de un resultado, se restablece el estado de silenciamiento del resultado para que pueda procesarse con reglas de silenciamiento estáticas o dinámicas.
  • Quitar la anulación del estado de silenciamiento de un hallazgo es diferente a dejar de silenciarlo. Cuando dejas de silenciar un resultado (aplicas una anulación de silenciamiento), las reglas de silenciamiento no pueden silenciar ese resultado hasta que quites manualmente la anulación del estado de silenciamiento.

Para quitar la anulación de silenciamiento de un resultado individual, sigue estos pasos:

Console

  1. En la consola de Google Cloud, ve a la página Findings (Resultados) de Security Command Center.

    Ir a hallazgos

  2. Selecciona tu organización o proyecto de Google Cloud.

  3. Opcional: Si la residencia de datos está habilitada para Security Command Center, cambia la ubicación de los datos según sea necesario.

    Para cambiar la ubicación de los datos, haz clic en el selector de ubicación de la barra de acciones.

    Aparecerá una lista de ubicaciones. Selecciona la nueva ubicación.

  4. A la derecha de la sección Vista previa de la consulta, haz clic en Editar consulta para abrir el editor de consultas.

  5. En el campo Editor de consultas, reemplaza la sentencia de silenciamiento existente por lo siguiente:

    mute="MUTED" OR mute="UNMUTED"
  6. Haz clic en Aplicar. Los resultados del panel Resultados de la búsqueda se actualizan para incluir los resultados silenciados y no silenciados de forma estática.

  7. Si es necesario, filtra otros resultados. Por ejemplo, en el panel Filtros rápidos, en Categoría, selecciona el nombre del hallazgo que debes restablecer para filtrar todas las demás categorías de hallazgos.

  8. Selecciona la casilla de verificación junto al resultado que deseas restablecer. Puedes seleccionar uno o más resultados.

  9. En la barra de acciones Resultados de la búsqueda de hallazgos, haz clic en Opciones para silenciar y, luego, selecciona Quitar anulaciones de silenciamiento.

    El atributo mute para los resultados seleccionados se establece en UNDEFINED y el resultado se quita del panel Resultados de la búsqueda de resultados.

Como alternativa, puedes activar un resultado desde su panel de detalles:

  1. En el panel Resultados de la búsqueda de la página Resultados, en la columna Categoría, haz clic en el nombre de un hallazgo individual. Se abrirá el panel de detalles del resultado.
  2. Haz clic en Tomar medidas.
  3. En el menú Tomar medidas, selecciona Quitar anulaciones de silenciamiento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para establecer el estado de silenciamiento de un resultado en UNDEFINED, usa el comando set-mute en la CLI de gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNDEFINED

    Reemplaza lo siguiente:

    • FINDING_ID: Es el ID del resultado que deseas restablecer.

      A fin de recuperar los ID de resultados, usa la API de Security Command Center para mostrar una lista de resultados. El ID de búsqueda es la última parte del atributo canonicalName, por ejemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: El recurso superior (project, folder o organization), distingue entre mayúsculas y minúsculas.

    • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior

    • LOCATION: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se quitará la anulación del estado silenciado de un resultado. Si la residencia de datos no está habilitada, usa el valor global.

    • SOURCE_ID: El ID de origen

      Para obtener instrucciones sobre cómo recuperar un ID de origen, consulta Obtén el ID de origen.

REST

En la API de Security Command Center, usa el método findings.setMute para restablecer el estado de silenciamiento de un resultado. El cuerpo de la solicitud es una enumeración que indica el estado de silenciamiento resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNDEFINED"
}

Reemplaza lo siguiente:

  • PARENT: El recurso superior (organizations, folders o projects)
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior
  • LOCATION: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se quitará la anulación del estado silenciado de un resultado. Si la residencia de datos no está habilitada, usa el valor global.
  • SOURCE_ID: Es el ID numérico del origen

Cómo silenciar o restablecer varios resultados existentes

Puedes realizar las siguientes operaciones de silenciamiento masivo para varios resultados existentes mediante el comando gcloud scc findings bulk-mute de gcloud CLI o el método bulkMute de la API de Security Command Center:

  • Silenciar varios resultados existentes Si silencias los resultados existentes de forma masiva, se silenciarán de forma estática y se anularán las reglas de silenciamiento dinámicas que se apliquen al resultado. Si necesitas silenciar resultados similares en el futuro, crea una regla de silenciamiento.

  • Se quitó la anulación del estado de silenciamiento en varios hallazgos existentes. Si quitas la anulación del estado de silenciamiento de un hallazgo, restableces el estado de silenciamiento de MUTED (silenciado de forma estática) o UNMUTED (desactivado de forma estática) a UNDEFINED. Esta función puede ser útil si migras de reglas de silenciamiento estáticas a dinámicas.

Especifica el conjunto de resultados que necesitas silenciar definiendo un filtro de resultados. Los filtros de silenciamiento masivo no son compatibles con todas las propiedades de los resultados. Para obtener una lista de las propiedades no compatibles, consulta Propiedades de resultados no compatibles con las reglas de silenciamiento.

Si la residencia de datos está habilitada para Security Command Center, las operaciones de silenciamiento masivo se limitan en el alcance a la ubicación de Security Command Center en la que se ejecutan.

Para ver un código de muestra que silencia resultados de forma masiva, consulta Cómo silenciar resultados de forma masiva.

Para silenciar o restablecer resultados de forma masiva, haz clic en la pestaña del procedimiento que deseas usar:

Console

En la consola de Google Cloud, solo puedes silenciar de forma masiva los resultados mediante la creación de reglas de silencio. En la consola de Google Cloud, la creación de reglas de silencio silencia los resultados existentes y futuros.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para silenciar o restablecer varios resultados de forma masiva, ejecuta el comando gcloud scc findings bulk-mute:

    gcloud scc findings bulk-mute \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --filter="FILTER" \
      --mute-state=MUTE_STATE

    Reemplaza lo siguiente:

    • PARENT: Es el permiso en la jerarquía de recursos al que se aplica la regla de silenciamiento, organization, folder o project.
    • PARENT_ID: El ID numérico de la organización, la carpeta o el proyecto superior, o el ID alfanumérico del proyecto superior.
    • LOCATION: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se silencian o restablecen los resultados de forma masiva. Si la residencia de datos no está habilitada, usa el valor global.
    • FILTER: Es la expresión que defines para filtrar los resultados.

      Por ejemplo, para silenciar todos los resultados OPEN_FIREWALL y PUBLIC_IP_ADDRESS de gravedad baja existentes en el proyecto internal-test, el filtro puede ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: Es el valor que indica si el resultado está silenciado de forma estática o no. Los valores válidos son MUTED y UNDEFINED. El valor se establece en MUTED de forma predeterminada. Solo establece este valor en UNDEFINED si restableces el estado de silenciamiento de varios resultados existentes.

REST

En la API de Security Command Center, usa el método findings.bulkMute para silenciar o restablecer el estado de silenciamiento de varios resultados existentes. El cuerpo de la solicitud contiene la expresión que se usa para filtrar los resultados:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/findings:bulkMute

{
  "filter": "FILTER",
  "muteState": "MUTE_STATE"
}

Reemplaza lo siguiente:

  • PARENT: El recurso superior (organizations, folders o projects).
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior.
  • LOCATION: Si la residencia de datos está habilitada, es la ubicación de Security Command Center en la que se silencian o restablecen los resultados de forma masiva. Si la residencia de datos no está habilitada, usa el valor global.
  • FILTER: Es la expresión que defines para filtrar los resultados.

    Por ejemplo, para silenciar todos los resultados OPEN_FIREWALL y PUBLIC_IP_ADDRESS de gravedad baja existentes en el proyecto internal-test, el filtro puede ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

  • MUTE_STATE: Es el valor que indica si el resultado está silenciado o no. Los valores válidos son MUTED o UNDEFINED. El valor se establece en MUTED de forma predeterminada. Solo establece este valor en UNDEFINED si restableces el estado de silenciamiento de varios resultados existentes.

Se ocultan todos los resultados existentes en el recurso que selecciones y que coincidan con exactitud con el filtro. El atributo mute para los resultados se establece en MUTED.

Silenciar los resultados no cambia su estado. Si silencias los resultados activos, se ocultan, pero permanecen activos hasta que se resuelven las vulnerabilidades, las configuraciones incorrectas o las amenazas subyacentes.

Cómo ver los resultados silenciados en la consola de Google Cloud

Para ver los resultados silenciados en la consola de Google Cloud, edita la consulta de resultados para seleccionar los resultados que incluyen el valor de propiedad mute="MUTED".

Por ejemplo, la siguiente consulta de resultados solo muestra los resultados activos que están silenciados:

state="ACTIVE"
AND mute="MUTED"

Para mostrar todos los hallazgos activos, silenciados y no silenciados, omite el atributo mute de la consulta por completo:

state="ACTIVE"

De forma predeterminada, la consulta de resultados en la consola de Google Cloud solo muestra los resultados que no están silenciados.

Cómo ver los resultados silenciados por tipo de regla de silenciamiento

En las siguientes secciones, se describe cómo consultar los resultados activos por tipo de regla de silenciamiento.

Para obtener más información sobre cómo mostrar una lista de resultados específicos, consulta Cómo filtrar resultados.

Consulta los resultados silenciados por reglas de silenciamiento estáticas

Para mostrar los resultados activos que se silenciaron con una regla de silenciamiento estática después de un tiempo especificado, usa la siguiente consulta y, luego, inspecciona el atributo muteInitiator para determinar si el resultado se silenció con una regla de silenciamiento estática.

state="ACTIVE" AND
muteInfo.staticMute.applyTime>=TIMESTAMP AND
muteInfo.staticMute.state="MUTED"

Reemplaza TIMESTAMP por la cadena de fecha y hora que indica el comienzo del período que deseas consultar. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.

Resultados de la búsqueda silenciados por reglas de silenciamiento dinámico

Para mostrar los resultados activos que se silenciaron con una regla de silenciamiento dinámica después de un tiempo especificado, usa la siguiente consulta:

state="ACTIVE" AND
muteUpdateTime>=TIMESTAMP AND
contains(muteInfo.dynamicMuteRecords, muteConfig="PARENT_ID/muteConfigs/CONFIG_ID")

Reemplaza lo siguiente:

  • TIMESTAMP: Es la cadena de fecha y hora que indica el comienzo del período que deseas consultar. Para obtener información sobre los formatos de hora, consulta gcloud topic datetimes.
  • PARENT_ID: El ID de la organización, la carpeta o el proyecto superior, especificado en el formato organizations/123, folders/456 o projects/789.
  • CONFIG_ID: Es el nombre de la regla de silenciamiento. El ID debe usar caracteres alfanuméricos y guiones, y tener entre 1 y 63 caracteres.

Para obtener más información sobre cómo editar consultas de resultados, consulta Cómo crear o editar una consulta de resultados en el panel.

Cómo encontrar propiedades relacionadas con el silenciamiento

En esta sección, se enumeran las propiedades de los resultados que se relacionan con el estado de silenciamiento de un resultado y se describe cómo se ven afectadas por las operaciones de silenciamiento:

  • mute: Se establece en UNDEFINED cuando se crean los resultados y se modifican en las siguientes situaciones:
    • MUTED: Un resultado se silencia de forma manual o mediante una regla de silencio.
    • UNMUTED: Un usuario deja de silenciar un resultado.
  • muteUpdateTime: Es el momento en el que se silencia o se deja de silenciar un resultado.
  • muteInitiator: Es el identificador de la regla principal o de silenciamiento que silencia un resultado.
  • muteInfo: Información de silenciamiento sobre el resultado, como el tipo de regla de silenciamiento (estático o dinámico) y con qué reglas de silenciamiento coincidió el resultado
  • muteInfo.staticMute: Un estado de silenciamiento estático anula cualquier regla de silenciamiento dinámico que se aplique a este resultado.
    • state: Es un estado de silenciamiento estático que se puede configurar silenciando el resultado directamente o con una regla de silenciamiento estático.
    • applyTime: Es la hora en la que se aplicó el estado de silenciamiento estático al hallazgo.
  • muteInfo.dynamicMuteRecords: Es el registro de una regla de silenciamiento dinámica que coincide con el resultado.
    • muteConfig: es el nombre de recurso relativo de la regla de silenciamiento, representado por la configuración de silenciamiento que creó el registro. Por ejemplo, organizations/123/muteConfigs/examplemuteconfig
    • matchTime: Es el momento en que una regla de silenciamiento dinámico coincidió con el resultado.

Detén las notificaciones y exportaciones de resultados silenciados

Si habilitas las notificaciones de resultados, los resultados silenciados nuevos o actualizados que coincidan con tus filtros de notificaciones se seguirán exportando a Pub/Sub.

Para detener las exportaciones y las notificaciones de los resultados silenciados, usa el atributo mute para excluir los resultados silenciados en tu filtro NotificationConfig. Por ejemplo, el siguiente filtro solo envía notificaciones de los resultados activos que no estén silenciados o en los que el atributo de silenciamiento no se haya establecido:

FILTER="state=\"ACTIVE\" AND -mute=\"MUTED\""

¿Qué sigue?

Obtén más información para filtrar notificaciones de resultados.

Consulta más ejemplos de filtros que puedes usar.