Silenciar as descobertas no Security Command Center

Nesta página, explicamos como reduzir o volume de descobertas recebidas no Security Command Center silenciando as descobertas.

Visão geral

A desativação de uma descoberta a oculta da visualização padrão das suas descobertas no Console do Google Cloud. É possível ignorar descobertas manual ou programaticamente e criar filtros para silenciar automaticamente as descobertas atuais e futuras com base nos critérios especificados por você.

Encontrar provedores no Security Command Center fornece avaliações de segurança amplas da implantação do Google Cloud, mas talvez você descubra que determinadas descobertas não são apropriadas ou relevantes para sua organização ou projetos. Um grande volume de descobertas também pode dificultar a identificação e a correção dos riscos mais críticos pelos analistas de segurança. As descobertas de silenciamento economizam tempo de análise ou resposta a descobertas de segurança para recursos isolados ou que se enquadram em parâmetros comerciais aceitáveis.

Silenciar descobertas vs listas de permissões

As descobertas de silenciamento funcionam de maneira diferente das soluções de gerenciamento de volume atuais. O Security Health Analytics permite usar marcações de segurança dedicadas para adicionar recursos às listas de permissões, o que impede os detectores de criar descobertas de segurança para recursos específicos. Também é possível desativar detectores no Security Command Center.

No entanto, a desativação de descobertas tem várias vantagens sobre listas de permissões e desativação de detectores:

  • Você pode silenciar as descobertas sem localizar os recursos subjacentes.
  • As descobertas que não estiverem anexadas a nenhum recurso poderão ser silenciadas.
  • Você pode criar filtros personalizados para ajustar a funcionalidade do som.
  • Ignorar as descobertas não impede que os recursos subjacentes sejam verificados. As descobertas ainda serão geradas, mas permanecerão ocultas até que você decida visualizá-las.

Permissões

Para usar as descobertas de silenciamento, você precisa de um dos seguintes papéis de gerenciamento de identidade e acesso (IAM) na organização, pasta ou projeto } nível:

  • Ver regras de silenciamento:
    • Leitor administrador da Central de segurança (roles/securitycenter.adminViewer)
    • Leitor de configurações da Central de segurança (roles/securitycenter.settingsViewer)
    • Leitor de configurações de desativação de som da Central de segurança (roles/securitycenter.muteConfigsViewer)
  • Veja, crie, atualize e exclua regras de silenciamento:
    • Administrador da Central de segurança (roles/securitycenter.admin)
    • Editor administrador da Central de segurança (roles/securitycenter.adminEditor)
    • Editor de configurações da Central de segurança (roles/securitycenter.settingsEditor)
    • Editor de configurações de desativação de sons da Central de segurança (roles/securitycenter.muteConfigsEditor)
  • Silenciar descobertas manualmente:
    • Editor de descobertas da Central de segurança (roles/securitycenter.findingsEditor)

Também é possível criar e conceder papéis personalizados com algumas ou todas as seguintes permissões:

  • Permissões de leitura da regra de silenciamento
    • securitycenter.muteconfigs.get
    • securitycenter.muteconfigs.list
  • Permissões de gravação da regra de silenciamento
    • securitycenter.muteconfigs.create
    • securitycenter.muteconfigs.update
    • securitycenter.muteconfigs.delete
  • Como encontrar permissões de gravação
    • securitycenter.findings.setMute
    • securitycenter.findings.bulkMuteUpdate

O recurso de silenciar descobertas adere aos papéis concedidos no nível da organização, da pasta ou do projeto. É possível silenciar descobertas em pastas ou projetos específicos e restringir a capacidade de outras pessoas de ignorar descobertas com base no acesso concedido a elas. Por exemplo, se você tiver acesso a um único projeto, só será possível silenciar as descobertas nesse projeto. Se você tiver acesso a uma pasta, poderá ignorar as descobertas em qualquer subpasta ou projeto dentro dela.

Para saber mais sobre os papéis do Security Command Center, consulte Controle de acesso.

Silenciar descobertas

É possível silenciar manualmente descobertas individuais, silenciar várias descobertas de uma vez com filtros de desativação em massa ou criar regras de silenciamento que suprime automaticamente as descobertas futuras com base em filtros definidos.

As descobertas contêm um atributo mute que pode ser definido como MUTED ou UNMUTED. Quando você desativa e ativa o som das descobertas, o valor do atributo é alterado. Para mais informações, consulte Desativar som das propriedades.

As descobertas de silenciamento são relevantes para muitos casos de uso, incluindo:

  • Recursos em ambientes que não sejam de produção, em que alguns requisitos mais rígidos podem não ser aplicáveis.
  • Recomendações para o uso de chaves de criptografia gerenciadas pelo cliente em projetos que não contêm dados críticos.
  • Ao conceder acesso amplo em um armazenamento de dados, que intencionalmente é aberto ao público e divulga informações públicas.
  • Descobertas que não são relevantes para a organização ou projeto com base nas políticas da empresa.

As descobertas silenciadas continuam sendo registradas para fins de auditoria e conformidade e podem ser visualizadas, se necessário. No entanto, por padrão, elas não aparecem no Console do Google Cloud. Também é possível filtrar as descobertas silenciadas das notificações do Pub/Sub e das chamadas da API Security Command Center usando o atributo mute da descoberta.

Desativar o som de uma descoberta específica

É possível silenciar uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Confira o exemplo de código para silenciar uma descoberta em Silenciar uma descoberta.

Para silenciar uma descoberta individual, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud. Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local diretamente abaixo do seletor de projetos para escolher o local do Security Command Center da descoberta. Exemplo:

    Captura de tela do seletor de local

  4. Se a descoberta que você precisa silenciar não estiver no painel Resultados da consulta de descobertas, selecione a categoria da descoberta na seção Categoria no painel Filtros rápidos.

  5. Marque a caixa de seleção ao lado da descoberta que você quer silenciar. É possível selecionar uma ou mais origens.

  6. Na barra de ações Resultados da consulta de descobertas, clique em Desativar opções e selecione Desativar som.

    O atributo mute das descobertas selecionadas está definido como MUTED, e a descoberta é removida do painel Resultados da consulta de descobertas.

Como alternativa, é possível silenciar uma descoberta no painel de detalhes:

  1. No painel Como encontrar resultados da consulta da página Descobertas, na coluna Categoria, clique no nome de uma descoberta individual. O painel de detalhes da descoberta será aberto.
  2. Clique em Realizar ação.
  3. No menu Realizar ação, selecione Silenciar.

    Se você selecionar Desativar descobertas como esta, a página Criar regra de silenciamento será aberta, em que você poderá criar uma regra de silenciamento para descobertas do mesmo tipo ou que incluem o mesmo atributo Indicator.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para definir o estado de silenciamento de uma descoberta como MUTED, use o comando set-mute na CLI gcloud:

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

    Substitua:

    • FINDING_ID: o ID da descoberta que você quer desativar

      Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: o recurso pai (project, folder ou organization), diferencia maiúsculas de minúsculas

    • PARENT_ID: o ID da organização, pasta ou projeto pai.

    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a descoberta será armazenada.

      Se a residência de dados não estiver ativada, especificar a sinalização --location silencia a descoberta usando a API Security Command Center v2, e o único valor válido para a sinalização é global.

    • SOURCE_ID: o ID da origem

      Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import com.google.cloud.securitycenter.v1.Finding;
import com.google.cloud.securitycenter.v1.Finding.Mute;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import com.google.cloud.securitycenter.v1.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/{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}
    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. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder().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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

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

    client = securitycenter.SecurityCenterClient()

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

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

API REST

Na API Security Command Center, use o método setMute para silenciar uma descoberta. O corpo da solicitação é um tipo enumerado que indica o estado de silenciamento resultante.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, chame setMute usando o endpoint v1:


POST https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/sources/SOURCE_ID/findings/FINDING_ID:setMute

{
  "mute": "MUTED"
}

Se você estiver usando a API Security Command Center v2, chame setMute usando o endpoint v2:

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

{
  "mute": "MUTED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects).
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: somente para v2, especifica o local do Security Command Center em que a descoberta é armazenada. Se o campo de local for omitido, o valor padrão será global.
  • SOURCE_ID: o ID numérico da origem.

    Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

  • FINDING_ID: o ID da descoberta que você quer silenciar.

    Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

Depois de desativar uma descoberta, o atributo mute é definido como MUTED.

Silenciar uma descoberta não afeta se ela está ativa ou não. Se o som de uma descoberta ativa for desativado, o atributo state não vai mudar: state="ACTIVE". A descoberta fica oculta, mas permanece ativa até que a vulnerabilidade, a configuração incorreta ou a ameaça seja resolvida.

Para mais informações sobre regras de silenciamento, consulte Criar regras de silenciamento.

Ver descobertas silenciadas no console do Google Cloud

É possível visualizar descobertas silenciadas no console do Google Cloud editando a consulta de descoberta para selecionar descobertas que incluam o valor de propriedade mute="MUTED".

Por exemplo, a consulta de descobertas a seguir exibe apenas descobertas ativas que estão com o som desativado:

state="ACTIVE"
AND mute="MUTED"

Para exibir todas as descobertas ativas, com e sem som, omita completamente o atributo mute da consulta:

state="ACTIVE"

Por padrão, a consulta de descoberta no console do Google Cloud exibe apenas as descobertas que não estão silenciadas.

Para mais informações sobre como editar consultas de descoberta, consulte Criar ou editar uma consulta de descobertas no painel.

Ativar som de descobertas individuais

É possível ativar o som de uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Confira um exemplo de código para ativar o som de uma descoberta em Deixar de ignorar uma descoberta.

Para ativar o som de uma descoberta individual, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud. Seletor de projetos

    A página Descobertas é aberta com a consulta padrão exibida na seção Visualização da consulta. A consulta padrão filtra as descobertas silenciadas. Portanto, você precisa editar a consulta antes que as descobertas silenciadas sejam exibidas no painel Resultados da consulta de descobertas.

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local diretamente abaixo do seletor de projetos para escolher o local do Security Command Center da descoberta. Exemplo:

    Captura de tela do seletor de local

  4. À direita da seção Visualização da consulta, clique em Editar consulta para abrir o Editor de consultas.

  5. No campo Editor de consultas, substitua a instrução de silenciamento atual pelo seguinte:

    mute="MUTED"
  6. Clique em Aplicar. As descobertas no painel Resultados da consulta de descobertas são atualizadas para incluir apenas as descobertas silenciadas.

  7. Se necessário, filtre outras descobertas silenciadas. Por exemplo, na Filtros rápidos painel em Categoria selecione o nome da descoberta que precisa ser ativada para filtrar todas as outras categorias de descoberta.

  8. Marque a caixa de seleção ao lado da descoberta que você quer parar de ignorar. É possível selecionar uma ou mais origens.

  9. Na barra de ações Resultados da consulta de descobertas, clique em Opções de silenciamento e selecione Ativar som.

    O atributo mute das descobertas selecionadas está definido como UNMUTED, e a descoberta é removida do painel Resultados da consulta de descobertas.

Também é possível desativar o som de uma descoberta no painel de detalhes:

  1. No painel Como encontrar resultados da consulta da página Descobertas, na coluna Categoria, clique no nome de uma descoberta individual. O painel de detalhes da descoberta será aberto.
  2. Clique em Realizar ação.
  3. No menu Entrar em ação, selecione Ativar som.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para definir o estado de silenciamento de uma descoberta como UNMUTED, use o comando set-mute na CLI gcloud:

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

    Substitua:

    • FINDING_ID: o ID da descoberta que você quer desativar

      Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: o recurso pai (project, folder ou organization), diferencia maiúsculas de minúsculas

    • PARENT_ID: o ID da organização, pasta ou projeto pai.

    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a descoberta será armazenada.

      Se a residência de dados não estiver ativada, especificar a sinalização --location ativará o som da descoberta usando a API Security Command Center v2, e o único valor válido para a sinalização será global.

    • SOURCE_ID: o ID da origem

      Para instruções sobre como recuperar um ID da origem, consulte Como buscar o ID da origem.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import com.google.cloud.securitycenter.v1.Finding;
import com.google.cloud.securitycenter.v1.Finding.Mute;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import com.google.cloud.securitycenter.v1.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/{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}
    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. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

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

    client = securitycenter.SecurityCenterClient()

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

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

API REST

Na API Security Command Center, use o método setMute para ativar o som de uma descoberta. O corpo da solicitação é um tipo enumerado que indica o estado de silenciamento resultante.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, chame setMute usando o endpoint v1:

POST https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/sources/SOURCE_ID/findings/FINDING_ID:setMute

{
  "mute": "UNMUTED"
}

Se você estiver usando a API Security Command Center v2, chame setMute usando o endpoint v2:

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

{
  "mute": "UNMUTED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: somente para v2, especifica o local do Security Command Center em que a descoberta é armazenada. Se o campo de local for omitido, o valor padrão será global.
  • SOURCE_ID: o ID numérico da origem

    Para instruções sobre como recuperar um ID da origem, consulte Como buscar o ID da origem.

  • FINDING_ID: o ID da descoberta que você quer silenciar.

    Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

As descobertas selecionadas não estão mais ocultas, e o atributo mute para as descobertas está definido como UNMUTED.

As descobertas silenciadas substituem as regras de silenciamento

Se um usuário ativar o som das descobertas, elas permanecerão ativadas mesmo que as regras de desativação de som existentes ainda correspondam às descobertas. Na verdade, as ações de ativação do som dos usuários modificam as regras de silenciamento.

As descobertas silenciadas são desativadas novamente somente se um usuário desativar o som manualmente ou criar uma nova regra de desativação de som correspondente no console do Google Cloud. As regras de silenciamento criadas com a CLI gcloud ou a API Security Command Center não vão afetar as descobertas não ignoradas pelos usuários.

Silenciar várias descobertas

É possível silenciar várias descobertas existentes em massa usando o comando gcloud scc findings bulk-mute da CLI gcloud ou o método bulkMute da API Security Command Center. Se você precisar desativar o som de descobertas futuras semelhantes, crie uma regra de silenciamento.

Especifique o conjunto de descobertas que você precisa silenciar definindo um filtro de descoberta. Os filtros de desativação de som em massa não são compatíveis com todas as propriedades de descoberta. Para uma lista de propriedades sem suporte, consulte Propriedades de descoberta não compatíveis para regras de silenciamento.

Se a residência de dados estiver ativada para o Security Command Center, as operações de silenciamento em massa terão o escopo limitado ao local do Security Command Center em que são executadas.

Para ver o código de amostra que silencia as descobertas em massa, consulte Desativar descobertas em massa.

Para silenciar descobertas em massa, clique na guia do procedimento que você quer usar:

Console

No console do Google Cloud, só é possível desativar o som de descobertas em massa criando regras de desativação de som. No console do Google Cloud, a criação de regras de desativação de som silencia as descobertas atuais e futuras.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para silenciar várias descobertas em massa, execute o comando gcloud scc findings bulk-mute:

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

    Substitua:

    • PARENT: o escopo na hierarquia de recursos a que a regra de silenciamento se aplica, organization, folder ou project.
    • PARENT_ID: o ID da organização, pasta ou projeto pai, especificado no formato organizations/123, folders/456 ou projects/789.
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que as descobertas serão silenciadas em massa. Apenas as descobertas neste local são silenciadas.

      Se a residência de dados não estiver ativada, especificar a sinalização --location silencia as descobertas usando a API Security Command Center v2 e o único valor válido para a sinalização é global.

    • FILTER: a expressão definida para filtrar as descobertas.

    Por exemplo, para desativar todas as descobertas de OPEN_FIREWALL e PUBLIC_IP_ADDRESS de baixa gravidade no projeto internal-test, o filtro pode ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.project_display_name=\"internal-test\"".

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import (
	"context"
	"fmt"
	"io"

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

// bulkMute kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
// The parent can be either an organization, folder, or project. The findings
// matched by the filter will be muted after the LRO is done.
func bulkMute(w io.Writer, parent string, muteRule 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")
	// muteRule: Expression that identifies findings that should be muted.
	// To create mute rules, see:
	// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
	// muteRule := "filter-condition"
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.BulkMuteFindingsRequest{
		Parent: parent,
		Filter: muteRule,
	}

	op, err := client.BulkMuteFindings(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to bulk mute findings: %w", err)
	}
	response, err := op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("failed to bulk mute findings: %w", err)
	}
	fmt.Fprintf(w, "Bulk mute findings completed successfully! %s", response)
	return nil
}

Java

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import com.google.cloud.securitycenter.v1.BulkMuteFindingsRequest;
import com.google.cloud.securitycenter.v1.BulkMuteFindingsResponse;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

public class BulkMuteFindings {

  public static void main(String[] args) {
    // TODO: Replace the variables within {}

    // parentPath: Use any one of the following options:
    //             - organizations/{organization_id}
    //             - folders/{folder_id}
    //             - projects/{project_id}
    String parentPath = String.format("projects/%s", "your-google-cloud-project-id");

    // muteRule: Expression that identifies findings that should be muted.
    // eg: "resource.project_display_name=\"PROJECT_ID\""
    String muteRule = "{filter-condition}";

    bulkMute(parentPath, muteRule);
  }

  // Kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
  // The parent can be either an organization, folder, or project. The findings
  // matched by the filter will be muted after the LRO is done.
  public static void bulkMute(String parentPath, String muteRule) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      BulkMuteFindingsRequest bulkMuteFindingsRequest =
          BulkMuteFindingsRequest.newBuilder()
              .setParent(parentPath)
              // To create mute rules, see:
              // https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
              .setFilter(muteRule)
              .build();

      // ExecutionException is thrown if the below call fails.
      BulkMuteFindingsResponse response =
          client.bulkMuteFindingsAsync(bulkMuteFindingsRequest).get();
      System.out.println("Bulk mute findings completed successfully! " + response);
    } catch (IOException | InterruptedException | ExecutionException e) {
      System.out.println("Bulk mute findings failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

def bulk_mute_findings(parent_path: str, mute_rule: str) -> None:
    """
      Kicks off a long-running operation (LRO) to bulk mute findings for a parent based on a filter.
      The parent can be either an organization, folder, or project. The findings
      matched by the filter will be muted after the LRO is done.
    Args:
        parent_path: use any one of the following options:
                     - organizations/{organization}
                     - folders/{folder}
                     - projects/{project}
        mute_rule: Expression that identifies findings that should be updated.
    """
    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.BulkMuteFindingsRequest()
    request.parent = parent_path
    # To create mute rules, see:
    # https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
    request.filter = mute_rule

    response = client.bulk_mute_findings(request)
    print(f"Bulk mute findings completed successfully! : {response}")

API REST

Na API Security Command Center, use o método bulkMute para silenciar várias descobertas existentes. O corpo da solicitação contém a expressão usada para filtrar as descobertas.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, chame bulkMute usando o endpoint v1:

POST https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/findings:bulkMute -d

{
  "filter": "FILTER"
}

Se você estiver usando a API Security Command Center v2, chame bulkMute usando o endpoint v2:

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

{
  "filter": "FILTER"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects).
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: somente para v2, especifica o local do Security Command Center em que as descobertas são armazenadas. Se o campo de local for omitido, o valor padrão será global.
  • FILTER: a expressão que você define para filtrar as descobertas.

    Por exemplo, para desativar todas as descobertas de OPEN_FIREWALL e PUBLIC_IP_ADDRESS de baixa gravidade no projeto internal-test, o filtro pode ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.project_display_name=\"internal-test\"".

Todas as descobertas existentes no recurso selecionado e que correspondem exatamente ao filtro estão ocultas. O atributo mute das descobertas está definido como MUTED.

A desativação de descobertas não muda o estado delas. Se as descobertas ativas forem silenciadas, elas ficarão ocultas, mas permanecerão ativas até que as vulnerabilidades, configurações incorretas ou ameaças sejam resolvidas.

Criar regras de silenciamento

As regras de silenciamento são configurações do Security Command Center que usam filtros criados para ignorar automaticamente as descobertas futuras com base nos critérios especificados por você. As novas descobertas que corresponderem aos filtros de som desativado serão silenciadas automaticamente de maneira contínua. Se você também quiser silenciar descobertas existentes semelhantes, use os mesmos filtros para descobertas em massa de descobertas.

Escopo das regras de silenciamento

Considere o escopo de uma regra de silenciamento ao criar filtros.

Por exemplo, se um filtro for gravado para silenciar descobertas em Project A, mas o filtro em si for criado em Project B, ele poderá não corresponder a nenhuma descoberta.

Da mesma forma, se a residência de dados estiver ativada, o escopo de uma regra de silenciamento será limitado ao local do Security Command Center em que a regra de silenciamento é criada. Por exemplo, se você criar uma regra de silenciamento no local Estados Unidos (us), ela não silenciará as descobertas armazenadas nos locais da União Europeia (eu) ou Global (global). Para mais informações sobre residência de dados e regras de silenciamento, consulte Regras de silenciamento, exportações contínuas e residência de dados.

Para mais informações sobre como criar filtros, consulte Como filtrar notificações.

Silenciar restrições da regra

As regras de silenciamento não são compatíveis com todas as propriedades de descoberta. Para ver uma lista de propriedades que não são compatíveis com as regras de desativação de som, consulte Propriedades de descoberta não compatíveis com regras de silenciamento.

Sua organização pode criar no máximo 1.000 regras de silenciamento.

Regras de residência de dados e silenciamento

Se a residência de dados estiver ativada, as configurações que definem regras de silenciamento (recursos muteConfig) estarão sujeitas ao controle de residência de dados e serão armazenadas em um local do Security Command Center selecionado.

Para aplicar uma regra de silenciamento às descobertas em um local do Security Command Center, crie a regra de silenciamento no mesmo local das descobertas.

Como os filtros usados nas regras de silenciamento podem conter dados sujeitos a controles de residência, especifique o local correto antes de criá-los. O Security Command Center não restringe o local em que você cria regras de silenciamento ou exportações de streaming.

As regras de silenciamento são armazenadas apenas no local em que são criadas e não podem ser visualizadas ou editadas em outros locais.

Depois de criar uma regra de silenciamento, não é possível mudar o local dela. Para mudar o local, exclua a regra de silenciamento e recrie-a no novo local.

Para visualizar as regras de silenciamento no console do Google Cloud, primeiro você precisa definir a visualização do console do Google Cloud para o local em que elas foram criadas.

As mesmas regras se aplicam à representação da API de uma regra de silenciamento, MuteConfig.

Para recuperar um MuteConfig usando chamadas de API, é necessário especificar o local no nome completo do recurso do MuteConfig. Exemplo:

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

Da mesma forma, para recuperar um muteConfig usando a CLI gcloud, especifique o local usando a sinalização --locations. Exemplo:

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

Criar uma regra para ignorar

É possível criar uma regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Veja o exemplo de código que cria uma regra de silenciamento em Criar uma regra de silenciamento.

Para criar uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

    Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local logo abaixo do seletor de projetos para escolher o local do Security Command Center em que criar a regra de silenciamento. Exemplo:

    Captura de tela do seletor de local

  4. Clique em Opções de silenciamento e selecione Criar regra de silenciamento.

  5. Digite um ID da regra de silenciamento. Esse valor é obrigatório.

  6. Insira uma descrição de regra de silenciamento que forneça contexto para explicar por que as descobertas são silenciadas. Esse valor é opcional, mas recomendado.

  7. Recurso pai indica o escopo em que a regra de silenciamento será criada e aplicada.

  8. No campo Consulta de descobertas, crie as instruções de consulta clicando em Adicionar filtro. Como alternativa, é possível digitar as instruções de consulta manualmente.

    A caixa de diálogo Selecionar filtro permite escolher os atributos e valores de descoberta suportados. Caixa de diálogo do filtro de consulta

    1. Selecione um atributo de descoberta ou digite um nome na caixa Pesquisar atributos de descoberta. Uma lista dos subatributos disponíveis será exibida.
    2. Selecione um subatributo. Um campo de seleção para as opções de avaliação é exibido acima de uma lista dos valores de subatributos encontrados nas descobertas do painel Resultados da consulta de descobertas.
    3. Selecione uma opção de avaliação para os valores do subatributo selecionado. Para mais informações sobre as opções de avaliação e os operadores e funções que elas usam, consulte Operadores de consulta no menu "Adicionar filtros".
    4. Selecione Apply.

      A caixa de diálogo será fechada, e a consulta será atualizada.

    5. Repita até que a consulta de descobertas contenha todos os atributos que você quer.
  9. Verifique a precisão do filtro. Para fazer alterações, exclua ou adicione propriedades e filtre os valores conforme necessário.

  10. Clique em Visualizar descobertas correspondentes.

    Uma tabela mostra descobertas que correspondem à sua consulta.

  11. Clique em Salvar.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para criar regras de silenciamento, execute o comando gcloud scc muteconfigs create:

    gcloud scc muteconfigs create CONFIG_ID \
    --PARENT=PARENT_ID \
    --location=LOCATION
    --description="RULE_DESCRIPTION" \
    --filter="FILTER"
    

    Substitua:

    • CONFIG_ID: o nome da regra de silenciamento. O código precisa ter entre 1 e 63 caracteres alfanuméricos e hifens.
    • PARENT: o escopo na hierarquia de recursos a que a regra de silenciamento se aplica, organization, folder ou project.
    • PARENT_ID: o ID da organização, pasta ou projeto pai, especificado no formato organizations/123, folders/456 ou projects/789.
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que criar a regra de silenciamento. A configuração da regra de silenciamento é armazenada e se aplica a descobertas apenas nesse local.

      Se a residência de dados não estiver ativada, especificar a sinalização --location criará a regra de silenciamento usando a API Security Command Center v2 e o único valor válido para a sinalização será global.

    • RULE_DESCRIPTION: uma descrição da regra de silenciamento de até 1.024 caracteres.

    • FILTER: a expressão que você define para filtrar as descobertas. Por exemplo, para silenciar as descobertas de OPEN_FIREWALL, o filtro pode ser FILTER="category=\"OPEN_FIREWALL\"".

    A resposta inclui o ID da regra de silenciamento, que pode ser usado para ver, atualizar e excluir regras de silenciamento, conforme descrito em Gerenciar regras de silenciamento.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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\"",
	}

	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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import com.google.cloud.securitycenter.v1.CreateMuteConfigRequest;
import com.google.cloud.securitycenter.v1.MuteConfig;
import com.google.cloud.securitycenter.v1.SecurityCenterClient;
import java.io.IOException;
import java.util.UUID;

public class CreateMuteRule {

  public static void main(String[] args) {
    // TODO: Replace the variables within {}

    // parentPath: Use any one of the following options:
    //             - organizations/{organization_id}
    //             - folders/{folder_id}
    //             - projects/{project_id}
    String parentPath = String.format("projects/%s", "your-google-cloud-project-id");

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

  // 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.
  public static void createMuteRule(String parentPath, String muteConfigId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      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\"")
              .build();

      CreateMuteConfigRequest request =
          CreateMuteConfigRequest.newBuilder()
              .setParent(parentPath)
              .setMuteConfigId(muteConfigId)
              .setMuteConfig(muteConfig)
              .build();

      // ExecutionException is thrown if the below call fails.
      MuteConfig response = client.createMuteConfig(request);
      System.out.println("Mute rule created successfully: " + response.getName());
    } catch (IOException e) {
      System.out.println("Mute rule creation failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.



def create_mute_rule(parent_path: str, mute_config_id: str) -> None:
    """
    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}
        mute_config_id: Set a unique id; max of 63 chars.
    """

    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    mute_config = securitycenter.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"'
    )

    request = securitycenter.CreateMuteConfigRequest()
    request.parent = parent_path
    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}")

API REST

Na API Security Command Center, use o método muteConfigs create para criar uma regra de silenciamento. O corpo da solicitação é uma instância de MuteConfig.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única disponível.

Se você estiver usando a API Security Command Center v1, use o endpoint da versão 1 para chamar muteConfigs create. No corpo da solicitação, use a definição de MuteConfig da versão 1:

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

  {
    "description": "RULE_DESCRIPTION",
    "filter": FILTER
  }

Se você estiver usando a API Security Command Center v2, use o endpoint da versão 2 para chamar muteConfigs create. No corpo da solicitação, use a definição de MuteConfig da versão 2:

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

  {
    "description": "RULE_DESCRIPTION",
    "filter": FILTER
    "type": "STATIC"
  }

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: somente para a v2, especifica o local do Security Command Center em que a regra de silenciamento se aplica. Se o campo de local for omitido, o valor padrão será global.
  • MUTE_CONFIG_ID: o nome da regra de silenciamento (entre 1 e 63 caracteres).
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (até 1.024 caracteres).
  • FILTER: a expressão definida para filtrar as descobertas.

    Por exemplo, para silenciar descobertas OPEN_FIREWALL, seu filtro pode ser "category=\"OPEN_FIREWALL\"".

A resposta inclui o ID de configuração de desativação de som que pode ser usado para ver, atualizar e excluir regras de desativação de som, conforme descrito em Gerenciar regras de desativação de som.

Novas descobertas que correspondem exatamente ao filtro estão ocultas, e o atributo mute para as descobertas é definido como MUTED.

Não há suporte para as propriedades de descoberta nas regras de silenciamento

As regras de silenciamento não são compatíveis com todas as propriedades de descoberta em filtros. As propriedades a seguir não são compatíveis com filtros de regras de silenciamento.

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

Desativar o som das propriedades de descoberta

Esta seção lista as propriedades de silenciamento e descreve como elas são afetadas pelas operações de silenciamento:

  • mute: defina como UNDEFINED quando as descobertas forem criadas e as alterações nos seguintes cenários:
    • MUTED: uma descoberta foi silenciada manualmente ou por uma regra de silenciamento.
    • UNMUTED: um usuário ativa o som de uma descoberta.
  • mute_update_time: o tempo em que uma descoberta será silenciada ou não.
  • mute_initiator: o identificador da regra principal ou de silenciamento que silenciou uma descoberta

Interromper notificações de descobertas silenciadas

Se você ativar as notificações de descoberta, as descobertas silenciadas que correspondem aos filtros de notificação ainda acionarão notificações no Pub/Sub.

Para interromper as notificações de descobertas silenciadas, use o atributo mute para excluir as descobertas silenciadas no filtro NotificationConfig. Por exemplo, o filtro a seguir envia apenas notificações de descobertas ativas que não tenham o som desativado ou quando o atributo de silenciamento não tenha sido definido:

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

Gerenciar regras de silenciamento

É possível visualizar, atualizar e excluir regras de silenciamento com base no escopo dos papéis do IAM. Com os papéis no nível da organização, você vê regras de silenciamento para todas as pastas e projetos dentro da organização. Se você tiver papéis no nível da pasta, poderá acessar e gerenciar regras de silenciamento para pastas específicas e todas as subpastas e projetos dentro dessas pastas. Os papéis no nível do projeto permitem gerenciar regras de silenciamento em projetos específicos.

O Security Command Center Premium é compatível com a concessão de papéis nos níveis da organização, pasta e projeto. O Security Command Center Standard aceita apenas papéis no nível da organização. Para mais informações, consulte Controle de acesso.

Listar regras de silenciamento

É possível listar as regras de silenciamento em uma organização, pasta ou projeto usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

A capacidade de listar regras de silenciamento de um determinado escopo depende das permissões concedidas aos papéis do IAM.

Se a residência de dados estiver ativada para o Security Command Center, o escopo do comando de lista também estará limitado ao local do Security Command Center selecionado.

Confira o exemplo de código que lista as regras de silenciamento em Listar regras de silenciamento.

Para listar as regras de silenciamento de uma organização, pasta ou projeto, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

    Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local logo abaixo do seletor de projetos para escolher o local do Security Command Center em que a regra de silenciamento está armazenada. Exemplo:

    Captura de tela do seletor de local

  4. Na seção Regras de silenciamento, você vê detalhes das regras de silenciamento ativas, incluindo:

    • Nome: ID da regra de silenciamento
    • Recurso pai: o recurso no qual a regra para silenciar fica.
    • Descrição: a descrição da regra de silenciamento, se disponível
    • Última atualização feita por: o principal que atualizou a regra pela última vez.
    • Última atualização: a data e a hora em que a regra foi atualizada pela última vez

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para listar regras de silenciamento, execute o comando gcloud scc muteconfigs list:

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

    Substitua:

    • PARENT: o organization, folder ou project pai em que as regras de silenciamento serão listadas.
    • PARENT_ID: o ID da organização, pasta ou projeto pai.
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que as regras de silenciamento serão listadas.

      Se a residência de dados não estiver ativada, especificar a sinalização --location listará as regras de silenciamento usando a API Security Command Center v2, e o único valor válido para a sinalização será global.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


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

public class ListMuteRules {

  public static void main(String[] args) {
    // TODO: Replace variables enclosed within {}

    // parent: Use any one of the following resource paths to list mute configurations:
    //         - organizations/{organization_id}
    //         - folders/{folder_id}
    //         - projects/{project_id}
    String parentPath = String.format("projects/%s", "your-google-cloud-project-id");
    listMuteRules(parentPath);
  }

  // Listing 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.
  public static void listMuteRules(String parent) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      ListMuteConfigsRequest listMuteConfigsRequest =
          ListMuteConfigsRequest.newBuilder().setParent(parent).build();

      // List all mute configs present in the resource.
      for (MuteConfig muteConfig : client.listMuteConfigs(listMuteConfigsRequest).iterateAll()) {
        System.out.println(muteConfig.getName());
      }
    } catch (IOException e) {
      System.out.println("Listing Mute rule failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

def list_mute_rules(parent: str) -> None:
    """
    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}
    """
    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.ListMuteConfigsRequest()
    request.parent = parent

    # List all Mute Configs present in the resource.
    for mute_config in client.list_mute_configs(request):
        print(mute_config.name)

API REST

Na API Security Command Center, use o método muteConfigs list para listar regras de silenciamento. O corpo da solicitação está vazio.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, use o endpoint v1 para chamar muteConfigs list:

GET https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/muteConfigs

Se você estiver usando a API Security Command Center v2, use o endpoint v2 para chamar muteConfigs list:

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

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: somente para a v2, especifica o local do Security Command Center para listar as regras de silenciamento. Se o campo de local for omitido, o valor padrão será global.

A resposta inclui os nomes, as descrições e os códigos de configuração de desativação de som das regras de silenciamento.

Ver a configuração de uma regra de silenciamento

É possível visualizar uma configuração de regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Para ver o exemplo de código que recupera uma configuração de regra de silenciamento, consulte Ver uma regra de silenciamento.

Para visualizar uma configuração de regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

    Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local logo abaixo do seletor de projetos para escolher o local do Security Command Center da regra de silenciamento. Exemplo:

    Captura de tela do seletor de local

  4. Na seção Ignorar regras, você vê uma lista das regras de silenciamento.

  5. Clique no nome da regra que você quer ver.

    Uma página é aberta com a configuração da regra de silenciamento.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para ver a configuração de uma regra de silenciamento, execute o comando gcloud scc muteconfigs get:

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

    Substitua:

    • MUTE_CONFIG_ID: o ID da regra de silenciamento.
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project);
    • PARENT_ID: o ID da organização, pasta ou projeto
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a regra de silenciamento será armazenada. O valor padrão é global.

      Se a residência de dados não estiver ativada, especificar a flag --location vai receber a regra de silenciamento usando a API Security Command Center v2, e o único valor válido para a sinalização será global.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


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

public class GetMuteRule {

  public static void main(String[] args) {
    // TODO(Developer): Replace the following variables

    // parentPath: Use any one of the following options:
    //             - organizations/{organization_id}
    //             - folders/{folder_id}
    //             - projects/{project_id}
    String parentPath = String.format("projects/%s", "your-google-cloud-project-id");

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

    getMuteRule(parentPath, muteConfigId);
  }

  // Retrieves a mute configuration given its resource name.
  public static void getMuteRule(String projectId, String muteConfigId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate MuteConfigName methods depending on the type of parent.
      // (org -> MuteConfigName.ofOrganizationMuteConfigName()
      // folder -> MuteConfigName.ofFolderMuteConfigName()
      // project -> MuteConfigName.ofProjectMuteConfigName)
      MuteConfig muteConfig =
          client.getMuteConfig(MuteConfigName.ofProjectMuteConfigName(projectId, muteConfigId));

      System.out.println("Retrieved the mute config: " + muteConfig);
    } catch (IOException e) {
      System.out.println("Mute rule retrieval failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

def get_mute_rule(mute_config_name: str) -> None:
    """
    Retrieves a mute configuration given its resource name.
    Args:
        mute_config_name: Name of the mute config to retrieve.
                          Use any one of the following formats:
                          - organizations/{organization}/muteConfigs/{config_id}
                          - folders/{folder}/muteConfigs/{config_id}
                          - projects/{project}/muteConfigs/{config_id}
    """
    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.GetMuteConfigRequest()
    request.name = mute_config_name

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

API REST

Na API Security Command Center, use o método muteConfigs get para retornar a configuração de uma regra de silenciamento. O corpo da solicitação está vazio.

Para saber o CONFIG_ID de uma regra de silenciamento, primeiro execute uma chamada de API para Listar regras de silenciamento. A resposta inclui IDs de configuração para regras de silenciamento retornadas.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, use o endpoint v1 para chamar muteConfigs get:

GET https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/muteConfigs/CONFIG_ID

Se você estiver usando a API Security Command Center v2, use o endpoint v2 para chamar muteConfigs get:

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

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: somente para v2, especifica o local do Security Command Center em que a regra de silenciamento é armazenada. Se o campo de local for omitido, o valor padrão será global.
  • CONFIG_ID: o ID numérico da regra de silenciamento

Atualizar regras de silenciamento

É possível atualizar a descrição ou o filtro de descoberta de uma regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Não é possível alterar o ID, a organização pai, a pasta ou o projeto nem o local de uma regra de silenciamento. Para mudar qualquer um desses valores, é preciso criar uma nova regra de silenciamento.

Se você ativou as descobertas anteriormente, elas serão desativadas novamente se forem correspondidas por uma regra de desativação atualizada no console do Google Cloud. Para mais informações, consulte Descobertas ativadas substituem regras de desativação.

Para ver o exemplo de código que atualiza uma regra de silenciamento, consulte Atualizar uma regra de silenciamento.

Para atualizar uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Selecione o projeto ou a organização do Google Cloud que é o recurso pai da regra de silenciamento que você quer modificar. Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local diretamente abaixo do seletor de projetos para escolher o local do Security Command Center da regra de silenciamento. Exemplo:

    Captura de tela do seletor de local

  4. Clique no nome da regra de silenciamento que você quer modificar.

    Se você não selecionou o projeto ou a organização apropriada, talvez veja uma observação informando que não tem permissão para modificar a regra de desativação de som.

  5. Insira uma nova descrição e clique em Salvar.

  6. Atualize ou altere o filtro.

    Veja mais instruções em Criar regras de silenciamento.

  7. Para visualizar as descobertas que correspondem ao filtro atualizado, clique em Visualizar descobertas correspondentes.

    Uma tabela é carregada com descobertas que correspondem à nova consulta.

  8. Clique em Salvar.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para atualizar as regras de silenciamento, execute o comando gcloud scc muteconfigs update:

      gcloud scc muteconfigs update MUTE_CONFIG_ID \
        --PARENT=PARENT_ID \
        --location=LOCATION
        --description=RULE_DESCRIPTION \
        --filter=FILTER
    

    Substitua:

    • MUTE_CONFIG_ID: o ID da regra de silenciamento.
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project).
    • PARENT_ID: o ID da organização, pasta ou projeto.
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a regra de silenciamento será armazenada. O valor padrão é global.

      Se a residência de dados não estiver ativada, especificar a sinalização --location atualizará a configuração da regra de silenciamento usando a API Security Command Center v2, e o único valor válido para a sinalização será global.

    • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máx: 1.024 caracteres).

    • FILTER: a expressão que você define para filtrar as descobertas.

      Por exemplo, para silenciar OPEN_FIREWALL descobertas, seu filtro pode ser FILTER="category=\"OPEN_FIREWALL\"".

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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! %v", err)
	}
	fmt.Fprintf(w, "Mute rule updated %s", response.Name)
	return nil
}

Java

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


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

public class UpdateMuteRule {

  public static void main(String[] args) {
    // TODO: Replace the variables within {}

    // 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}
    String muteConfigName = "{any-one-of-the-above-formats}";
    updateMuteRule(muteConfigName);
  }

  // Updates an existing mute configuration.
  // The following can be updated in a mute config: description and filter.
  public static void updateMuteRule(String muteConfigName) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient securityCenterClient = SecurityCenterClient.create()) {

      MuteConfig updateMuteConfig =
          MuteConfig.newBuilder()
              .setName(muteConfigName)
              .setDescription("Updated mute config description")
              .build();

      UpdateMuteConfigRequest updateMuteConfigRequest =
          UpdateMuteConfigRequest.newBuilder()
              .setMuteConfig(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
              .setUpdateMask(FieldMask.newBuilder().addPaths("description").build())
              .build();

      MuteConfig response = securityCenterClient.updateMuteConfig(updateMuteConfigRequest);
      System.out.println(response);
    } catch (IOException e) {
      System.out.println("Mute rule update failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

def update_mute_rule(mute_config_name: str) -> None:
    """
    Updates an existing mute configuration.
    The following can be updated in a mute config: description, and filter/ mute rule.
    Args:
        mute_config_name: Specify the name of the mute config to delete.
                          Use any one of the following formats:
                          - organizations/{organization}/muteConfigs/{config_id}
                          - folders/{folder}/muteConfigs/{config_id}
                          - projects/{project}/muteConfigs/{config_id}
    """
    from google.cloud import securitycenter
    from google.protobuf import field_mask_pb2

    client = securitycenter.SecurityCenterClient()

    update_mute_config = securitycenter.MuteConfig()
    update_mute_config.name = mute_config_name
    update_mute_config.description = "Updated mute config description"

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

    request = securitycenter.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}")

API REST

Na API Security Command Center, use o método muteConfigs patch para atualizar uma regra de silenciamento. O corpo da solicitação é uma instância de MuteConfig.

Para saber o CONFIG_ID de uma regra de silenciamento, execute uma chamada de API para listar regras de silenciamento. A resposta inclui IDs de configuração para regras de silenciamento retornadas.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, use o endpoint v1 para chamar muteConfigs patch:

PATCH https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/muteConfigs/CONFIG_ID

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
    "type": "STATIC"
  }

Se você estiver usando a API Security Command Center v2, use o endpoint v2 para chamar muteConfigs patch:

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

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
  }

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: somente para v2, especifica o local do Security Command Center em que a regra de silenciamento é armazenada. Se o campo de local for omitido, o valor padrão será global.
  • CONFIG_ID: o ID numérico da regra de silenciamento
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máx: 1.024 caracteres).
  • FILTER: a expressão definida para filtrar descobertas

    Por exemplo, para silenciar descobertas OPEN_FIREWALL, seu filtro pode ser "category=\"OPEN_FIREWALL\"".

Novas descobertas que correspondem exatamente ao filtro estão ocultas, e o atributo mute para as descobertas está definido como MUTED.

A atualização das regras de silenciamento não ativa automaticamente o som de descobertas silenciadas pelas regras anteriores. É necessário ativar o som das descobertas manualmente.

Excluir regras de silenciamento

É possível excluir uma regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Antes de excluir regras de silenciamento, entenda o seguinte:

  • Não é possível recuperar as regras de silenciamento excluídas.
  • A exclusão de regras de silenciamento não ativa automaticamente o som das descobertas silenciadas. É necessário ativar o som das descobertas de forma manual ou programática.
  • As descobertas futuras que corresponderem aos filtros nas regras de silenciamento excluídas não serão silenciadas.

Para ver o exemplo de código que exclui uma regra de silenciamento, consulte Excluir uma regra de silenciamento.

Para excluir uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

    Seletor de projetos

  3. Se a residência de dados estiver ativada para o Security Command Center, use o seletor de local logo abaixo do seletor de projetos para escolher o local do Security Command Center em que a regra de silenciamento está armazenada. Exemplo:

    Captura de tela do seletor de local

  4. Clique no nome da regra de silenciamento que você quer excluir.

  5. Clique em Excluir

  6. Leia a caixa de diálogo e, se estiver tudo certo, clique em Excluir.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para excluir regras de silenciamento, execute o comando gcloud scc muteconfigs delete:

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

    Substitua:

    • MUTE_CONFIG_ID: o ID da configuração de desativação de som
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project);
    • PARENT_ID: o ID da organização, pasta ou projeto
    • LOCATION: se a residência de dados estiver ativada, especifique o local do Security Command Center em que a configuração da regra de silenciamento será armazenada. O valor padrão é global.

      Se a residência de dados não estiver ativada, especificar a sinalização --location vai excluir a regra de silenciamento usando a API Security Command Center v2, e o único valor válido para a sinalização será global.

  3. Confirme sua solicitação para excluir a regra de silenciamento.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv1"
	"cloud.google.com/go/securitycenter/apiv1/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

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.


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

public class DeleteMuteRule {

  public static void main(String[] args) {
    // TODO(Developer): Replace the following variables
    // parentPath: Use any one of the following options:
    //             - organizations/{organization_id}
    //             - folders/{folder_id}
    //             - projects/{project_id}
    String parentPath = String.format("projects/%s", "your-google-cloud-project-id");

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

    deleteMuteRule(parentPath, 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 muteConfigId) {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate MuteConfigName methods depending on the type of parent.
      // org -> MuteConfigName.ofOrganizationMuteConfigName()
      // folder -> MuteConfigName.ofFolderMuteConfigName()
      // project -> MuteConfigName.ofProjectMuteConfigName)
      client.deleteMuteConfig(MuteConfigName.ofProjectMuteConfigName(projectId, muteConfigId));

      System.out.println("Mute rule deleted successfully: " + muteConfigId);
    } catch (IOException e) {
      System.out.println("Mute rule deletion failed! \n Exception: " + e);
    }
  }
}

Python

O exemplo a seguir usa a API v1. Para modificar o exemplo para v2, substitua v1 por v2 e adicione /locations/LOCATION ao nome do recurso.

Para a maioria dos recursos, adicione /locations/LOCATION ao nome do recurso após /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso depois de /sources/SOURCE_ID, em que SOURCE_ID é o ID do serviço do Security Command Center que emitiu a descoberta.

def delete_mute_rule(mute_config_name: str) -> None:
    """
    Deletes a mute configuration given its resource name.
    Note: Previously muted findings are not affected when a mute config is deleted.
    Args:
        mute_config_name: Specify the name of the mute config to delete.
                          Use any one of the following formats:
                          - organizations/{organization}/muteConfigs/{config_id}
                          - folders/{folder}/muteConfigs/{config_id} or
                          - projects/{project}/muteConfigs/{config_id}
    """
    from google.cloud import securitycenter

    client = securitycenter.SecurityCenterClient()

    request = securitycenter.DeleteMuteConfigRequest()
    request.name = mute_config_name

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

API REST

Na API Security Command Center, use o método muteConfigs delete para excluir uma regra de silenciamento. O corpo da solicitação está vazio.

Para saber o CONFIG_ID de uma regra de silenciamento, execute uma chamada de API para Listar regras de silenciamento. A resposta inclui IDs de configuração para regras de silenciamento retornadas.

A menos que a residência de dados esteja ativada, você pode usar a v1 ou v2 da API Security Command Center. A API v2 está disponível como uma versão de pré-lançamento. Quando a residência de dados está ativada, a API v2 é a única API disponível.

Se você estiver usando a API Security Command Center v1, use o endpoint v1 para chamar muteConfigs delete:

DELETE https://securitycenter.googleapis.com/v1/PARENT/PARENT_ID/muteConfigs/CONFIG_ID

Se você estiver usando a API Security Command Center v2, use o endpoint v2 para chamar muteConfigs delete:

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

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: somente para v2, especifica o local do Security Command Center em que a regra de silenciamento é armazenada. Se o campo de local for omitido, o valor padrão será global.
  • CONFIG_ID: o ID numérico da regra de silenciamento

A seguir

Saiba mais sobre como filtrar notificações de descoberta.

Veja mais exemplos de filtros que você pode usar.