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.

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ê.

Os serviços de detecção do Security Command Center oferecem amplas avaliações de segurança de para a implantação do Google Cloud, mas talvez você descubra que certas descobertas apropriados 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. Silenciar as descobertas economiza tempo de analisar ou responder a descobertas de segurança para ativos isolados ou se enquadram em parâmetros de negócios aceitáveis.

A desativação de descobertas tem várias vantagens em relação à desativação de detectores:

  • É possível criar filtros personalizados para ajustar quais descobertas serão silenciadas.
  • É possível usar as regras de silenciamento para silenciar as descobertas de forma temporária ou indefinida.
  • 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.

Criar e gerenciar regras de silenciamento

As regras de silenciamento são configurações do Security Command Center que usam filtros criados para ignorar automaticamente as descobertas atuais e futuras com base nos critérios especificados por você. É possível criar filtros com regras de silenciamento estáticas ou dinâmicas.

As regras de silenciamento estáticas silenciam as descobertas futuras indefinidamente. As regras de desativação dinâmica silenciam descobertas futuras e atuais temporariamente até uma data especificada ou indefinidamente até que uma descoberta não corresponda mais à configuração.

Tipos de regras de silenciamento

O Security Command Center oferece suporte a configurações de regras de silenciamento estáticas e dinâmicas. Embora seja possível usar regras de silenciamento estáticas e dinâmicas simultaneamente, não recomendamos isso. As regras de silenciamento estáticas substituem as dinâmicas quando são aplicadas à mesma descoberta. Como resultado, as regras de silenciamento dinâmico não funcionam como esperado, o que pode criar confusão ao gerenciar suas descobertas. Portanto, recomendamos que você use um tipo de regra de silenciamento exclusivamente.

Recomendamos usar a desativação dinâmica, a menos que você já esteja usando regras estáticas de silenciamento. regras exclusivamente porque elas oferecem mais flexibilidade.

A tabela a seguir fornece uma comparação geral dos dois tipos de regras de silenciamento. Para mais detalhes, consulte Regras de silenciamento estáticas e Regras de silenciando dinâmico.

Regras estáticas de silenciamento Regras dinâmicas de silenciamento
Agir indefinidamente com base nas descobertas. Pode realizar ações encontrando temporariamente com um prazo de validade ou indefinidamente não há prazo de validade definido.
Não se aplica a descobertas existentes. Aplicar a descobertas atuais e novas.
têm precedência sobre as regras de silenciamento dinâmicas. Tem prioridade mais baixa e são substituídas por regras de silenciamento estáticas quando ambos os tipos se aplicam a uma descoberta.

Regras estáticas de silenciamento

  • As regras de silenciamento estáticas são válidas por tempo indeterminado. Quando uma descoberta corresponde à funcionalidade de silenciamento estática configuração, o Security Command Center define automaticamente a propriedade mute de a descoberta para MUTED até que você a altere manualmente.
  • As regras estáticas de silenciamento não afetam as descobertas atuais. Elas só se aplicam a resultados recém-criados ou atualizados após a definição da regra. Se você também quiser silenciar descobertas existentes semelhantes, use os mesmos filtros para silenciar descobertas.
  • As regras de silenciamento estáticas têm precedência sobre as regras dinâmicas de silenciamento. Portanto, todas as novas descobertas que correspondam a uma regra estática de silenciamento definida são consideradas silenciadas mesmo se elas também correspondem a uma regra de silenciamento dinâmica definida.

Regras de silenciamento dinâmicas

  • As regras de silenciamento dinâmico podem agir em uma descoberta temporariamente com um tempo de expiração ou indefinidamente se nenhum tempo de expiração for definido. Quando um cliente atual ou novo a descoberta criada corresponde à configuração de silenciamento dinâmico, o Security Command Center define automaticamente a propriedade mute da descoberta como MUTED até que o ou até que haja alterações na descoberta ou configuração em si. Quando uma regra de silenciamento dinâmico expira, o Security Command Center remove a regra da descoberta. Se a descoberta não corresponder a nenhuma outra regras dinâmicas de silenciamento, a propriedade mute será redefinida automaticamente para UNDEFINED.
  • As regras de desativação de som dinâmicas são aplicadas automaticamente às descobertas atuais que correspondem à sua configuração, bem como às descobertas recém-criadas ou atualizadas.
  • As regras dinâmicas de silenciamento têm prioridade mais baixa e são substituídas pelo silenciamento estático quando ambos os tipos se aplicam a uma descoberta.

Recomendamos o uso exclusivo das regras dinâmicas de silenciamento. A capacidade de silenciar temporariamente e reativar automaticamente as descobertas torna as regras de silenciamento dinâmico uma opção mais flexível do que as estáticas.

Se você estiver usando regras estáticas de silenciamento para reduzir o número de descobertas analisar manualmente e se quiser migrar para as regras dinâmicas de silenciamento, consulte Migrar do modo de silenciamento estático para o dinâmico regras.

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 as descobertas em Project A, mas o filtro em si é criado em Project B, ele pode não corresponder nenhuma descoberta.

Da mesma forma, se a residência de dados estiver ativado, o escopo de uma regra de silenciamento é limitado ao local do Security Command Center em que a regra de silenciamento está criados. Por exemplo, se você criar uma regra de silenciamento nos Estados Unidos (us), a regra de silenciamento não silencia as descobertas armazenadas em os 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 a criação de filtros, consulte Filtrar notificações.

Restrições da regra de silenciamento

As regras de silenciamento não são compatíveis com todas as propriedades de descoberta. Para uma lista de propriedades que as regras de silenciamento não são compatíveis. Consulte As propriedades de descoberta não são compatíveis com as regras de silenciamento.

É possível criar, 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.

Residência de dados e regras de 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 a que ela se aplica.

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 que você cria regras de silenciamento ou exportações de streaming.

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

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

Para acessar as regras de silenciamento no console do Google Cloud, primeiro você precisa definir o do console do Google Cloud para o local em que foram criados.

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

Para extrair um MuteConfig usando chamadas de API, faça o seguinte: você precisa especificar o local no nome completo do recurso o MuteConfig. Exemplo:

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

Da mesma forma, para extrair um muteConfig usando a CLI gcloud, é possível especificar o local usando a sinalização --locations. Exemplo:

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

Criar uma regra para ignorar

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

É possível criar regras de silenciamento estáticas ou dinâmicas usando o console do Google Cloud. a CLI gcloud ou o Security Command Center API. Recomendamos o uso exclusivo das regras dinâmicas de silenciamento na sua regra de silenciamento porque elas são mais flexíveis que as regras de silenciamento estáticas. Para um comparação dos tipos de regras de silenciamento, consulte Tipos de regras de silenciamento.

Para ver um exemplo de código que cria uma regra de silenciamento, consulte 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo local.

  4. Clique em Opções de silenciamento e selecione Gerenciar regras de silenciamento.

  5. Clique em Criar regra de silenciamento e selecione Regra de silenciamento dinâmica ou Regra estática de silenciamento. Para mais informações sobre os tipos de regra de silenciamento, consulte Tipos das regras de silenciamento.

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

  7. 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.

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

  8. Se você estiver criando uma regra de silenciamento estática ou uma regra dinâmica de silenciamento sem a expiração, continue para a próxima etapa. Se você estiver criando uma regra de desativação dinâmica para desativar temporariamente as descobertas, siga estas etapas:

    1. Marque a caixa de seleção Silenciar descobertas correspondentes temporariamente.
    2. Selecione ou insira a data de validade da regra de silenciamento dinâmico. Isso value indica por quanto tempo a regra silencia as descobertas correspondentes.
  9. 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.

    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 é exibido para que você possa criar a instrução de consulta usando o subatributo selecionado, um operador de consulta e um ou mais valores para o subatributo.
    3. Selecione o operador e um ou mais valores para o subatributo no painel. Para mais informações sobre os operadores e as funções de consulta que eles usam, consulte Operadores de consulta no menu "Adicionar filtros".
    4. Clique em Aplicar.

      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.
  10. Verifique a precisão do filtro. Para fazer alterações, exclua ou adicione propriedades e filtre os valores conforme necessário.

  11. Clique em Visualizar descobertas correspondentes.

    Uma tabela mostra descobertas que correspondem à sua consulta.

  12. Clique em Save.

gcloud

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

    Activate Cloud Shell

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

  2. Para 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" \
    --type=MUTE_TYPE \
    --expiry-time=TIMESTAMP
    

    Substitua:

    • CONFIG_ID: o nome da regra de silenciamento. O ID precisa usar caracteres alfanuméricos e hifens e ter entre 1 e 63 caracteres.
    • 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, o local do Security Command Center em que uma regra de desativação será criada. Se a residência de dados não estiver ativada, use o valor global.
    • RULE_DESCRIPTION: uma descrição do item silenciado de no máximo 1.024 caracteres.
    • FILTER: a expressão definida para filtrar descobertas. Por exemplo, para desativar descobertas OPEN_FIREWALL, seu filtro pode ser FILTER="category=\"OPEN_FIREWALL\"".
    • MUTE_TYPE: o tipo de regra de silenciamento que você quer criar. Os tipos de regra de desativação de som válidos são DYNAMIC e STATIC. O tipo de regra de desativação de som é definido como STATIC por padrão. Não é possível alterar o tipo de uma regra de silenciamento depois de criá-la.
    • TIMESTAMP: só se aplica se você estiver criando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para para mais informações sobre formatos de hora, consulte gcloud topic datetimes. Quando o som dinâmico for desativado a regra expirar, ela será removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione indefinidamente em resultados correspondentes, omita esse campo.

    A resposta inclui o ID da regra de silenciamento, que você pode usar 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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao 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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao 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",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Caso utilize a API Security Command Center v2, use a versão 2 endpoint para chamar muteConfigs create No corpo da solicitação, use a versão 2 MuteConfig definição:

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

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

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização pai. pasta ou projeto
  • LOCATION: se a residência dos dados estiver ativada, o Security Command Center local em que a regra de silenciamento será criada. se a residência de dados não estiver ativada, use o valor global
  • MUTE_CONFIG_ID: o nome da regra de silenciamento (entre 1 e 63 caracteres).
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 1.024 caracteres).
  • FILTER: a expressão que você define para filtrar. descobertas

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

  • MUTE_TYPE: o tipo de regra de silenciamento que você quer criar. Os tipos de regra de silenciamento válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

  • TIMESTAMP: só se aplica se você estiver criando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor deve ser definido para pelo menos um dia no no futuro, ou a solicitação será rejeitada. Para para mais informações sobre formatos de hora, consulte gcloud topic datetimes. Quando o som dinâmico for desativado a regra expirar, ela será removida de todas as descobertas correspondentes. Se você quiser que regra de silenciamento dinâmica para agir indefinidamente em descobertas correspondentes, omita essa .

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

Listar regras de silenciamento

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

Sua capacidade de listar regras de silenciamento para um determinado escopo depende do as permissões concedidas ao IAM, papéis de segurança na nuvem.

Se a residência de dados estiver ativada para o Security Command Center, o escopo do comando list também está limitado aos comandos Local do Security Command Center.

Para conferir um exemplo de código que lista regras de silenciamento, consulte Listar regras de silenciamento.

Para listar as regras de silenciamento de uma organização, pasta ou projeto, clique na guia do procedimento que você 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo local.

  4. Na seção Regras de silenciamento, você encontra detalhes sobre as regras de silenciamento ativas, incluindo o seguinte:

    • 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

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

  2. Para 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 para listar as regras de silenciamento
    • PARENT_ID: o ID da organização, pasta ou projeto pai
    • LOCATION: se a residência de dados estiver ativada, 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, use o valor global

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 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 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: se a residência dos dados estiver ativada, o Security Command Center local em que as regras de silenciamento serão listadas. se a residência de dados não estiver ativada, use o valor 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 conferir a configuração da regra de silenciamento usando o console do Google Cloud. a CLI gcloud ou a API Security Command Center.

Para acessar um exemplo de código que recupera uma configuração de regra de silenciamento, consulte Veja uma regra de silenciamento.

Para visualizar a configuração de uma regra de silenciamento, clique na guia do procedimento que você 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

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

  2. Para ver 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, o local do Security Command Center em que a configuração da regra de desativação será mostrada. Se a residência de dados não estiver ativada, use o valor global

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao 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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 desativação. O corpo da solicitação está vazio.

Para usar CONFIG_ID em regras 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 de pré-lançamento. Quando a residência de dados estiver ativada, a API v2 será a única API disponível.

Se você estiver usando a API Security Command Center v1, utilize 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: se a residência de dados estiver ativada, o local do Security Command Center em que a configuração da regra de desativação será mostrada. Se a residência de dados não estiver ativada, use o valor 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 mudar o ID, a organização, a pasta ou o projeto pai ou o local de uma regra de silenciamento. Para mudar qualquer um desses valores, crie 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 Ativar som de descobertas individuais.

Para acessar um 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ê 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo 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. No caso das regras dinâmicas de silenciamento, atualize ou mude o prazo de validade da regra.

  7. Atualize ou altere o filtro.

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

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

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

  9. Clique em Save.

gcloud

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

    Activate Cloud Shell

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

  2. Para 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
        --type=MUTE_TYPE \
        --expiry-time=TIMESTAMP
    

    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 dos dados estiver ativada, o Security Command Center local em que a regra de silenciamento será atualizada. se a residência de dados não estiver ativada, use o valor global.
    • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 1.024 caracteres).
    • FILTER: a expressão definida para filtrar descobertas.

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

    • MUTE_TYPE: o tipo de regra de silenciamento que você está atualizado. Os tipos de regra de silenciamento válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

    • TIMESTAMP: só se aplica se você estiver atualizando uma regra de silenciamento dinâmica. A string de data/hora que indica quando o evento quando a regra de silenciamento expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para informações sobre formatos de hora, consulte gcloud topic datetimes. Quando o som dinâmico for desativado a regra expirar, ela será removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione indefinidamente em resultados correspondentes, omita esse campo.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao 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! %w", 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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao 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 usar CONFIG_ID em regras 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 disponível.

Se você usa a API Security Command Center v1, utilize o endpoint v1 para ligue para muteConfigs patch:

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

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

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",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: se a residência dos dados estiver ativada, o Security Command Center local em que a regra de silenciamento será atualizada. se a residência de dados não estiver ativada, use o valor global
  • CONFIG_ID: o ID numérico da regra de silenciamento
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 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\"".

  • MUTE_TYPE: o tipo de regra de silenciamento que você está atualizado. Os tipos de regra de desativação de som válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

  • TIMESTAMP: só se aplica se você estiver atualizando uma regra dinâmica de silenciamento. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido como pelo menos um dia no futuro, ou o será rejeitada. Para informações sobre formatos de hora, consulte gcloud topic datetimes. Quando uma regra de silenciamento dinâmica expira, ela é removida de todos os resultados correspondentes. Se você quiser que a regra de silenciamento dinâmico aja indefinidamente em descobertas correspondentes, omita esse campo.

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

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 estáticas não ativa automaticamente o som de descobertas silenciadas. É necessário ativar as descobertas de maneira manual ou programática.
  • A exclusão de regras de silenciamento dinâmicas remove automaticamente a regra de todas as descobertas correspondentes anteriores e ativa o som delas se não corresponderem a nenhuma outra regra.
  • As descobertas futuras que corresponderem aos filtros nas regras de silenciamento excluídas não serão silenciadas.

Para conferir um 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ê 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center e altere o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

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

  2. Para 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 dos dados estiver ativada, o Security Command Center local em que a regra de silenciamento será excluída. se a residência de dados não estiver ativada, use o valor 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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao 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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao 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 desativação. O corpo da solicitação está vazio.

Para acessar 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 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 do organização, pasta ou projeto
  • LOCATION: se a residência dos dados estiver ativada, o Security Command Center local em que a regra de silenciamento será excluída. se a residência de dados não estiver ativada, use o valor global
  • CONFIG_ID: o ID numérico da regra de silenciamento

Desativar o som de uma descoberta específica

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

Silenciar uma descoberta de forma estática 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 está oculta, mas permanece ativa até que vulnerabilidades, configurações incorretas ou ameaças sejam resolvidas. Além disso, silenciando estaticamente uma descoberta, você está substituindo quaisquer regras dinâmicas de silenciamento que se aplicam à descoberta.

Silenciar uma descoberta de combinação tóxica fecha a combinação tóxica correspondente caso.

Para silenciar todas as descobertas futuras que correspondam aos critérios especificados, consulte Criar regras de silenciamento.

Para conferir um exemplo de código para silenciar uma descoberta, consulte Silenciar uma descoberta.

Para silenciar estaticamente uma descoberta individual, clique na guia do procedimento que 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.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center e altere o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo 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 Opções de silenciamento. e selecione Aplicar substituição de silenciamento.

    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 Aplicar substituição de silenciamento.

    Se você selecionar Silenciar descobertas como esta, a opção Criar regra de silenciamento é aberta uma página onde é possível criar uma regra de silenciamento para as descobertas do mesmo ou que incluam os mesmos Indicator .

gcloud

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

    Activate Cloud Shell

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

  2. Para 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, para 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 pai. pasta ou projeto

    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será silenciada. Se a residência de dados não estiver ativada, use o valor global

    • SOURCE_ID: o ID da origem

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

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders, ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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, can also unmute or reset the mute state of a finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: UNDEFINED/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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders, ou projects.

Para descobertas, adicione /locations/LOCATION ao 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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 é uma enumeração que indica o estado de desativação de som 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 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 do pai. organização, pasta ou projeto.
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será silenciada. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem.

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

  • 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, para exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

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

Ativar som de descobertas individuais

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

Desfazer o silenciamento de uma descoberta é útil quando você precisa impedir que ela seja ocultada por uma regra de silenciamento muito ampla ou por uma regra que pode ser muito complexa para modificar e excluir descobertas que você considera importantes.

Para conferir um exemplo de código para ativar o som de uma descoberta, consulte Deixar de ignorar uma descoberta.

As descobertas não silenciadas serão silenciadas novamente apenas se forem silenciadas manualmente. As regras de silenciamento criadas com a CLI gcloud ou a API Security Command Center não vão afetar as descobertas não silenciadas pelos usuários.

Para conferir um exemplo de código para desativar uma descoberta, consulte Desativar uma descoberta.

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.

    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. Opcional: se a residência de dados estiver ativada para o Security Command Center e altere o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo 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 Aplicar substituição de ativação de 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 Aplicar substituição de ativação de som.

gcloud

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

    Activate Cloud Shell

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

  2. Para 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, para 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 dos dados estiver ativada, o Security Command Center local em que o som da descoberta será ativado. se a residência de dados não estiver ativada, use o valor 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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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, can also unmute or reset the mute state of a finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: UNDEFINED/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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao 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 uma descoberta. O corpo da solicitação é um tipo enumerado que indica o resultado sem som.

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 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, 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 pai. pasta ou projeto
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será ativada. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem

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

  • 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.

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

Remover uma substituição do estado de silenciamento de descobertas individuais

Você aplica uma substituição do estado de silenciamento quando modifica intencionalmente o silenciamento de uma descoberta. para desativar ou ativar o som da descoberta estaticamente. Por exemplo, talvez você queira aplicar uma substituição de estado de silenciamento para ocultar uma descoberta de baixa gravidade que não vale criando uma regra dinâmica de silenciamento.

É possível remover uma substituição do estado de silenciamento de uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Antes de remover a substituição do estado de silenciamento de uma descoberta, entenda o seguinte:

  • Uma descoberta tem uma substituição de estado de silenciamento se ela for silenciada ou não silenciada de forma estática. Você pode aplicar uma substituição do estado de silenciamento a qualquer descoberta manual ou automaticamente com o regras estáticas de silenciamento.
  • Uma substituição de estado de silenciamento é aplicada a uma descoberta indefinidamente e tem prioridade sobre qualquer regra de silenciamento correspondente.
  • Remover a substituição do estado de silenciamento de uma descoberta redefine esse estado para que ele possa ser processado por regras estáticas ou dinâmicas de silenciamento.
  • Remover a substituição do estado de silenciamento de uma descoberta é diferente de desativar o silenciamento. Ao ativar o som de uma descoberta (aplicar uma substituição de ativação do som), as regras de silenciamento não pode desativar o som dessa descoberta até que você remova manualmente a substituição desse estado.

Para remover a substituição de desativação de uma descoberta individual, faça o seguinte:

Console

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

    Acesse Descobertas

  2. Selecione a organização ou o projeto do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais será exibida. Selecione o novo 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" OR mute="UNMUTED"
  6. Clique em Aplicar. As descobertas no painel Resultados da consulta de descobertas são atualizadas para incluir descobertas silenciadas e não silenciadas.

  7. Se necessário, filtre outras descobertas. Por exemplo, na Painel Filtros rápidos em Categoria, selecione o nome da descobrir que você precisa redefinir para filtrar todas as outras categorias de descoberta.

  8. Marque a caixa de seleção ao lado da descoberta que você quer redefinir. É 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 Remover substituições de silenciamento.

    O atributo mute das descobertas selecionadas está definido como UNDEFINED, 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 Realizar ação, selecione Remover substituições de silenciamento.

gcloud

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

    Activate Cloud Shell

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

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

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

    Substitua:

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

      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, o local do Security Command Center em que o estado de desativação será removido de uma descoberta. Se a residência de dados não estiver ativada, use o valor global

    • SOURCE_ID: o ID da origem

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

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao 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, can also unmute or reset the mute state of a finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: UNDEFINED/MUTE/UNMUTE.
func setMuteUndefined(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_UNDEFINED}

	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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders. ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 SetMuteUndefinedFinding {

  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}";
    setMuteUndefined(findingPath);
  }

  // Reset mute state of an individual finding.
  // If a finding is already reset, resetting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE/UNDEFINED.
  public static Finding setMuteUndefined(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder().setName(findingPath).setMute(Mute.UNDEFINED).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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

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

def set_undefined_finding(finding_path: str) -> None:
    """
      Reset mute state of an individual finding.
      Resetting a finding that isn't muted or unmuted has no effect.
      Various mute states are: UNDEFINED/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.UNDEFINED

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

API REST

Na API Security Command Center, use o método setMute para redefinir o som desativado. o estado atual de uma descoberta. O corpo da solicitação é uma enumeração que indica o estado de desativação de som 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 estiver ativada, a API v2 será 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": "UNDEFINED"
}

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": "UNDEFINED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects);
  • PARENT_ID: o ID da organização pai. pasta ou projeto
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que será possível remover a substituição do estado de desativação de uma descoberta. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem

Silenciar ou redefinir várias descobertas

É possível executar as seguintes operações de desativação em massa para várias descobertas existentes usando o comando gcloud scc findings bulk-mute da CLI gcloud ou o método bulkMute da API Security Command Center:

  • Silenciar várias descobertas. Se as descobertas existentes forem silenciadas em massa, elas serão silenciadas estaticamente e substitui qualquer regra dinâmica de silenciamento que se aplica à descoberta. Se será necessário silenciar descobertas futuras semelhantes, criar um silenciamento específica.

  • Remover a substituição do estado de silenciamento em várias descobertas atuais. Ao remover o substituição do estado de silenciamento em uma descoberta, você está redefinindo o estado silenciado MUTED (silenciado estaticamente) ou UNMUTED (som ativado estaticamente) para UNDEFINED. Esse recurso pode ser útil se você estiver migrando de estático para dinâmico regras de silenciamento.

Especifique o conjunto de descobertas que você precisa silenciar definindo uma 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 conferir uma lista de propriedades sem suporte, consulte Propriedades de descoberta sem suporte para regras de silenciamento.

Se a residência de dados estiver ativada para o Security Command Center, as operações serão silenciadas em massa têm escopo limitado ao local do Security Command Center onde são executadas.

Para conferir um exemplo de código que silencia descobertas em massa, consulte Silenciar descobertas em massa.

Para desativar ou redefinir as 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. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

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

  2. Para desativar ou redefinir 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" \
    --mute-state=MUTE_STATE
    

    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 pai. pasta ou projeto especificado no formato organizations/123, folders/456 ou projects/789.
    • LOCATION: se a residência dos dados estiver ativada, o Security Command Center local em que é possível silenciar ou redefinir as descobertas em massa. se a residência de dados não estiver ativada, use o valor global.

    • FILTER: a expressão definida para filtrar 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.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: o valor que indica se a descoberta está silenciada estaticamente ou não. Os valores válidos são: MUTED e UNDEFINED. O valor é definido como MUTED por padrão. Defina esse valor como UNDEFINED apenas se você estiver redefinindo o estado de desativação de vários resultados existentes.

Go

O exemplo a seguir usa a API v1. Para modificar o exemplo para a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao 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 a 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 depois de /PARENT/PARENT_ID, em que PARENT é organizations, folders ou projects.

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 exemplo da v2, substitua v1 por v2 e adicione /locations/LOCATION, que é o nome do recurso.

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

Para descobertas, adicione /locations/LOCATION ao nome do recurso após /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 desativar ou redefinir o estado de desativação de várias descobertas. O corpo da solicitação contém a expressão usada para filtrar 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 de pré-lançamento. Quando a residência de dados estiver ativada, a API v2 será 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",
  "muteState": "MUTE_STATE"
}

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",
  "muteState": "MUTE_STATE"
}

Substitua:

  • PARENT: o recurso pai. (organizations, folders ou projects).
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que as descobertas serão silenciadas ou redefinidas em massa. Se a residência de dados não estiver ativada, use o valor global.
  • FILTER: a expressão definida para filtrar 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.projectDisplayName=\"internal-test\"".

  • MUTE_STATE: o valor que indica se a descoberta está silenciada ou não. Os valores válidos são MUTED ou UNDEFINED. O é definido como MUTED por padrão. Definir este valor apenas como UNDEFINED se você estiver redefinindo o estado mudo de várias descobertas.

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.

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.

Conferir descobertas silenciadas por tipo de regra

As seções a seguir descrevem como consultar descobertas ativas por tipo de regra de silenciamento.

Para mais informações sobre como listar descobertas específicas, consulte Filtrar descobertas.

Descobertas de consulta silenciadas por regras estáticas de silenciamento

Para mostrar descobertas ativas que foram silenciadas por uma regra de silenciamento estática após um período especificado, use a consulta a seguir e inspecione o atributo muteInitiator para determinar se a descoberta foi silenciada por uma regra de silenciamento estática.

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

Substitua TIMESTAMP pela string de data/hora que indica o início do período que você quer consultar. Para informações sobre formatos de tempo, consulte gcloud topic datetimes.

Resultados de consulta silenciados por regras de silenciamento dinâmicas

Para mostrar descobertas ativas que foram silenciadas por uma regra de silenciamento dinâmica após um período especificado, use a seguinte consulta:

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

Substitua:

  • TIMESTAMP: a string de data/hora que indica o início do período que você quer consultar. Para informações sobre formatos de hora, consulte gcloud topic datetimes.
  • PARENT_ID: o ID da organização pai, pasta, ou projeto, especificados no formato de organizations/123, folders/456 ou projects/789.
  • CONFIG_ID: o nome da regra de silenciamento. O ID precisa usar caracteres alfanuméricos e hifens e ter entre 1 e 63 caracteres.

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

Como encontrar propriedades relacionadas ao silenciamento

Esta seção lista as propriedades de descoberta relacionadas ao estado mudo dos uma descoberta 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.
  • muteUpdateTime: o tempo em que o som de uma descoberta é desativado ou ativado.
  • muteInitiator: o identificador da regra principal ou de silenciamento que desativou o som de um descoberta.
  • muteInfo: informações de silenciamento sobre a descoberta, como o tipo de regra de silenciamento (estático ou dinâmico) e quais regras de silenciamento foram atendidas.
  • muteInfo.staticMute: um estado de silenciamento estático substitui qualquer regra de silenciamento dinâmico que se aplique a essa descoberta.
    • state: um estado de silenciamento estático que pode ser definido silenciando a descoberta diretamente ou uma regra de silenciamento estática.
    • applyTime: o momento em que o estado de desativação estática foi aplicado à descoberta.
  • muteInfo.dynamicMuteRecords: o registro de uma regra de silenciamento dinâmico que corresponde à descoberta.
    • muteConfig: é o nome do recurso relativo da regra de desativação, representado pela configuração de desativação que criou o registro. Por exemplo, organizations/123/muteConfigs/examplemuteconfig.
    • matchTime: horário em que uma regra de silenciamento dinâmica correspondeu à descoberta.

Interromper notificações e exportações de descobertas silenciadas

Se você ativar as notificações de descoberta, as descobertas silenciadas novas ou atualizadas que correspondem aos filtros de notificação ainda serão exportadas para o Pub/Sub.

Para interromper as exportações e 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\""

A seguir

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

Veja mais exemplos de filtros que você pode usar.