Menonaktifkan temuan di Security Command Center

Halaman ini menjelaskan cara mengurangi volume temuan yang Anda terima di Security Command Center dengan menonaktifkan temuan.

Membisukan temuan akan menyembunyikannya dari tampilan default temuan Anda di konsolGoogle Cloud . Anda dapat membisukan temuan secara manual atau terprogram dan membuat filter untuk membisukan temuan yang ada dan mendatang secara otomatis berdasarkan kriteria yang Anda tentukan.

Layanan deteksi Security Command Center memberikan penilaian keamanan yang luas terhadap deployment Anda, tetapi Anda mungkin mendapati bahwa temuan tertentu tidak sesuai atau relevan untuk organisasi atau project Anda. Google Cloud Volume temuan yang tinggi juga dapat menyulitkan analis keamanan Anda untuk mengidentifikasi dan memperbaiki risiko paling penting secara efektif. Dengan membisukan temuan, Anda dapat menghemat waktu untuk meninjau atau merespons temuan keamanan untuk aset yang diisolasi atau berada dalam parameter bisnis yang dapat diterima.

Membisukan temuan memiliki beberapa keunggulan dibandingkan menonaktifkan detektor:

  • Anda dapat membuat filter kustom untuk menyempurnakan temuan yang diabaikan.
  • Anda dapat menggunakan aturan penonaktifan untuk menonaktifkan temuan untuk sementara atau tanpa batas waktu.
  • Membisukan temuan tidak akan menghentikan pemindaian aset yang mendasarinya. Temuan tetap dibuat, tetapi tetap tersembunyi hingga Anda memutuskan untuk melihatnya.

Izin

Untuk membisukan temuan, Anda memerlukan salah satu peran Identity and Access Management (IAM) berikut di tingkat organisasi, folder, atau project:

  • Melihat aturan penonaktifan:
    • Security Center Admin Viewer (roles/securitycenter.adminViewer)
    • Security Center Settings Viewer (roles/securitycenter.settingsViewer)
    • Security Center Mute Configurations Viewer (roles/securitycenter.muteConfigsViewer)
  • Melihat, membuat, memperbarui, dan menghapus aturan penonaktifan:
    • Security Center Admin (roles/securitycenter.admin)
    • Security Center Admin Editor (roles/securitycenter.adminEditor)
    • Security Center Settings Editor (roles/securitycenter.settingsEditor)
    • Security Center Mute Configurations Editor (roles/securitycenter.muteConfigsEditor)
  • Menonaktifkan temuan secara manual:
    • Security Center Findings Editor (roles/securitycenter.findingsEditor)

Anda juga dapat membuat dan memberikan peran khusus dengan beberapa atau semua izin berikut:

  • Izin baca aturan penonaktifan
    • securitycenter.muteconfigs.get
    • securitycenter.muteconfigs.list
  • Izin tulis aturan penonaktifan
    • securitycenter.muteconfigs.create
    • securitycenter.muteconfigs.update
    • securitycenter.muteconfigs.delete
  • Menemukan izin tulis
    • securitycenter.findings.setMute
    • securitycenter.findings.bulkMuteUpdate

Kemampuan Anda untuk menonaktifkan temuan sesuai dengan peran yang diberikan di tingkat organisasi, folder, atau project. Anda dapat membisukan temuan di folder atau project tertentu, dan membatasi kemampuan orang lain untuk membisukan temuan berdasarkan akses yang diberikan kepada mereka. Misalnya, jika Anda memiliki akses ke satu project, Anda hanya dapat membisukan temuan di project tersebut. Jika memiliki akses ke folder, Anda dapat membisukan temuan di subfolder atau project mana pun di dalam folder tersebut.

Untuk mempelajari peran Security Command Center lebih lanjut, lihat Kontrol akses.

Membuat dan mengelola aturan penonaktifan

Aturan nonaktif adalah konfigurasi Security Command Center yang menggunakan filter yang Anda buat untuk secara otomatis menonaktifkan temuan mendatang dan yang sudah ada berdasarkan kriteria yang Anda tentukan. Anda dapat membuat filter dengan aturan senyapkan statis atau dinamis.

Aturan penonaktifan statis akan menonaktifkan temuan di masa mendatang tanpa batas waktu. Aturan pembisuan dinamis membisukan temuan di masa mendatang dan yang sudah ada untuk sementara hingga tanggal tertentu atau tanpa batas waktu hingga temuan tidak lagi cocok dengan konfigurasi.

Jenis aturan penonaktifan

Security Command Center mendukung konfigurasi aturan nonaktif statis dan dinamis. Meskipun Anda dapat menggunakan aturan senyap statis dan dinamis secara bersamaan, sebaiknya jangan lakukan hal ini. Aturan senyap statis menggantikan aturan senyap dinamis saat diterapkan pada temuan yang sama. Akibatnya, aturan bisu dinamis tidak akan berfungsi seperti yang diharapkan, yang dapat menimbulkan kebingungan saat mengelola temuan Anda. Oleh karena itu, sebaiknya Anda menggunakan satu jenis aturan senyap saja.

Kecuali jika Anda sudah menggunakan aturan senyap statis, sebaiknya gunakan aturan senyap dinamis saja karena menawarkan fleksibilitas yang lebih besar.

Tabel berikut memberikan perbandingan umum dari dua jenis aturan senyapkan. Untuk mengetahui detail selengkapnya, lihat Aturan senyap statis dan Aturan senyap dinamis.

Aturan penonaktifan statis Aturan penonaktifan dinamis
Menindaklanjuti temuan tanpa batas waktu. Dapat bertindak berdasarkan temuan baik untuk sementara dengan waktu habis masa berlaku atau tanpa batas waktu jika tidak ada waktu habis masa berlaku yang ditetapkan.
Tidak berlaku untuk temuan yang ada. Diterapkan pada temuan yang sudah ada dan baru.
Lebih diutamakan daripada aturan penonaktifan dinamis. Memiliki prioritas yang lebih rendah dan digantikan oleh aturan senyapkan statis jika kedua jenis diterapkan pada temuan.

Aturan penonaktifan statis

  • Aturan penonaktifan statis berlaku tanpa batas. Jika temuan cocok dengan konfigurasi senyap statis Anda, Security Command Center akan otomatis menyetel properti mute temuan ke MUTED hingga Anda mengubahnya secara manual.
  • Aturan penonaktifan statis tidak memengaruhi temuan yang ada kecuali jika dibuat menggunakan konsol Google Cloud , yang dalam hal ini aturan akan secara retroaktif menonaktifkan temuan yang ada. Jika tidak, aturan hanya berlaku untuk temuan yang baru dibuat atau diperbarui setelah aturan ditentukan. Jika Anda juga ingin membisukan temuan yang ada dan serupa tanpa menggunakan konsol Google Cloud , gunakan filter yang sama untuk membisukan temuan secara massal.
  • Aturan penonaktifan statis lebih diutamakan daripada aturan penonaktifan dinamis. Oleh karena itu, semua temuan baru yang cocok dengan aturan senyap statis yang ditentukan dianggap disenyapkan meskipun juga cocok dengan aturan senyap dinamis yang ditentukan.

Aturan penonaktifan dinamis

  • Aturan senyap dinamis dapat bertindak pada temuan baik untuk sementara dengan waktu habis masa berlaku atau tanpa batas waktu jika tidak ada waktu habis masa berlaku yang ditetapkan. Jika temuan yang ada atau baru dibuat cocok dengan konfigurasi senyap dinamis Anda, Security Command Center akan otomatis menyetel properti mute temuan ke MUTED hingga tanggal habis masa berlaku yang ditentukan atau hingga ada perubahan pada temuan atau konfigurasi itu sendiri. Saat aturan penonaktifan dinamis berakhir, Security Command Center akan menghapus aturan dari temuan. Jika temuan tidak cocok dengan aturan senyap dinamis lainnya, properti mute akan otomatis direset ke UNDEFINED.
  • Aturan nonaktif dinamis diterapkan secara otomatis ke temuan yang ada yang cocok dengan konfigurasi Anda, serta ke temuan yang baru dibuat atau diperbarui.
  • Aturan senyap dinamis memiliki prioritas yang lebih rendah dan digantikan oleh aturan senyap statis jika kedua jenis aturan tersebut berlaku untuk temuan.

Sebaiknya gunakan aturan senyap dinamis saja. Kemampuan untuk membisukan dan secara otomatis membunyikan temuan untuk sementara membuat aturan pembisuan dinamis menjadi opsi yang lebih fleksibel daripada aturan pembisuan statis.

Jika Anda menggunakan aturan nonaktifkan statis untuk mengurangi jumlah temuan yang Anda tinjau secara manual, dan Anda ingin bermigrasi ke aturan nonaktifkan dinamis, lihat Bermigrasi dari aturan nonaktifkan statis ke dinamis.

Cakupan aturan penonaktifan

Pertimbangkan cakupan aturan penonaktifan saat membuat filter.

Misalnya, jika filter ditulis untuk menonaktifkan temuan di Project A, tetapi filter itu sendiri dibuat di Project B, filter mungkin tidak cocok dengan temuan apa pun.

Demikian pula, jika aset data diaktifkan, cakupan aturan nonaktif dibatasi ke lokasi Security Command Center tempat aturan nonaktif dibuat. Misalnya, jika Anda membuat aturan penonaktifan di lokasi Amerika Serikat (us), maka aturan penonaktifan tidak akan menonaktifkan temuan yang disimpan di lokasi Uni Eropa (eu).

Untuk mengetahui informasi selengkapnya tentang cara membuat filter, lihat Memfilter notifikasi.

Batasan aturan penonaktifan

Aturan senyap tidak mendukung semua properti temuan. Untuk mengetahui daftar properti yang tidak didukung oleh aturan nonaktifkan, lihat Properti temuan yang tidak didukung untuk aturan nonaktifkan.

Anda dapat membuat, melihat, memperbarui, dan menghapus aturan senyap berdasarkan cakupan peran IAM Anda. Dengan peran tingkat organisasi, Anda akan melihat aturan senyap untuk semua folder dan project dalam organisasi. Jika memiliki peran tingkat folder, Anda dapat mengakses dan mengelola aturan senyap untuk folder tertentu serta semua subfolder dan project dalam folder tersebut. Peran tingkat project memungkinkan Anda mengelola aturan senyapkan di project tertentu.

Security Command Center Premium mendukung pemberian peran di tingkat organisasi, folder, dan project. Security Command Center Standard hanya mendukung pemberian peran di tingkat organisasi. Untuk mengetahui informasi selengkapnya, lihat Kontrol akses.

Residensi data dan aturan senyapkan

Jika residensi data diaktifkan, konfigurasi yang menentukan aturan nonaktif—resource muteConfig—tunduk pada kontrol residensi data dan disimpan di lokasi Security Command Center yang Anda pilih.

Untuk menerapkan aturan penonaktifan ke temuan di lokasi Security Command Center, Anda harus membuat aturan penonaktifan di lokasi yang sama dengan temuan yang akan diterapkan.

Karena filter yang digunakan dalam aturan senyapkan dapat berisi data yang tunduk pada kontrol domisili, pastikan Anda menentukan lokasi yang benar sebelum membuatnya. Security Command Center tidak membatasi lokasi tempat Anda membuat aturan nonaktif atau ekspor streaming.

Aturan senyapkan hanya disimpan di lokasi tempat aturan tersebut dibuat dan tidak dapat dilihat atau diedit di lokasi lain.

Setelah membuat aturan senyap, Anda tidak dapat mengubah lokasinya. Untuk mengubah lokasi, Anda harus menghapus aturan senyapkan dan membuatnya ulang di lokasi baru.

Untuk mempelajari cara menggunakan Security Command Center saat residensi data diaktifkan, lihat Endpoint regional Security Command Center.

Membuat aturan penonaktifan

Organisasi Anda dapat membuat maksimal 1.000 aturan senyap.

Sebaiknya gunakan aturan senyap dinamis secara eksklusif dalam konfigurasi aturan senyap Anda, karena lebih fleksibel daripada aturan senyap statis. Untuk perbandingan jenis aturan senyap, lihat Jenis aturan senyap.

Untuk membuat aturan senyap, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

Untuk membuat aturan senyap menggunakan Google Cloud konsol, klik tab untuk tingkat layanan Anda:

Standar atau Premium

  1. Di konsol Google Cloud , buka halaman Temuan Security Command Center.

    Buka Temuan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

  3. Klik Opsi senyapkan, lalu pilih Kelola aturan senyapkan.

  4. Klik Buat aturan senyap.

  5. Masukkan ID aturan Penonaktifan. Nilai ini wajib diisi.

  6. Masukkan Deskripsi aturan penonaktifan yang memberikan konteks mengapa temuan dinonaktifkan. Nilai ini bersifat opsional, tetapi direkomendasikan.

  7. Konfirmasi cakupan aturan senyap dengan memeriksa nilai Resource induk.

  8. Jika Anda membuat aturan penonaktifan statis atau aturan penonaktifan dinamis tanpa masa berlaku, lanjutkan ke langkah berikutnya. Jika Anda membuat aturan pembisuan dinamis untuk membisukan temuan sementara, selesaikan langkah-langkah berikut:

    1. Centang kotak Bisukan temuan yang cocok untuk sementara.
    2. Pilih atau masukkan tanggal habis masa berlaku untuk aturan senyap dinamis. Nilai ini menunjukkan berapa lama aturan akan menonaktifkan temuan yang cocok.
  9. Di kolom Findings query, buat pernyataan kueri dengan mengklik Tambahkan filter. Atau, Anda dapat mengetik pernyataan kueri secara manual.

    Dialog Pilih filter memungkinkan Anda memilih atribut dan nilai temuan yang didukung.

    1. Pilih atribut temuan atau ketik namanya di kotak Telusuri atribut temuan. Daftar sub-atribut yang tersedia akan ditampilkan.
    2. Pilih sub-atribut. Kolom pilihan ditampilkan tempat Anda dapat membuat pernyataan kueri menggunakan sub-atribut yang Anda pilih, operator kueri, dan satu atau beberapa nilai untuk sub-atribut.
    3. Pilih operator dan satu atau beberapa nilai untuk sub-atribut dari panel. Untuk mengetahui informasi selengkapnya tentang operator kueri dan fungsi yang digunakannya, lihat Operator kueri di menu Tambahkan filter.
    4. Klik Terapkan.

      Dialog akan ditutup dan kueri Anda diperbarui.

    5. Ulangi hingga kueri temuan berisi semua atribut yang Anda inginkan.
  10. Klik Pratinjau temuan yang cocok. Tabel menampilkan temuan yang cocok dengan kueri Anda.

  11. Klik Simpan.

Enterprise

  1. Di konsol Google Cloud , buka halaman Temuan Security Command Center.

    Buka Temuan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.
  3. Pilih minimal satu temuan.
  4. Klik Opsi senyapkan, lalu pilih Lihat aturan senyapkan.
  5. Klik Buat aturan senyap.
  6. Masukkan ID aturan Penonaktifan. Nilai ini wajib diisi.
  7. Masukkan Deskripsi aturan penonaktifan yang memberikan konteks mengapa temuan dinonaktifkan. Nilai ini bersifat opsional, tetapi direkomendasikan.
  8. Konfirmasi cakupan aturan senyap dengan memeriksa nilai Resource induk.
  9. Jika Anda membuat aturan penonaktifan statis atau aturan penonaktifan dinamis tanpa masa berlaku, lanjutkan ke langkah berikutnya. Jika Anda membuat aturan pembisuan dinamis untuk membisukan temuan sementara, selesaikan langkah-langkah berikut:
    1. Centang kotak Bisukan temuan kecocokan untuk sementara.
    2. Pilih atau masukkan tanggal habis masa berlaku untuk aturan senyap dinamis. Nilai ini menunjukkan berapa lama aturan akan menonaktifkan temuan yang cocok.
  10. Di kolom Findings query, buat pernyataan kueri dengan mengklik Tambahkan filter. Atau, Anda dapat mengetik pernyataan kueri secara manual.

    Dialog Pilih filter memungkinkan Anda memilih atribut dan nilai temuan yang didukung.

    1. Pilih atribut temuan atau ketik namanya di kotak Telusuri atribut temuan. Daftar sub-atribut yang tersedia akan ditampilkan.
    2. Pilih sub-atribut. Kolom pilihan ditampilkan tempat Anda dapat membuat pernyataan kueri menggunakan sub-atribut yang Anda pilih, operator kueri, dan satu atau beberapa nilai untuk sub-atribut.
    3. Pilih operator dan satu atau beberapa nilai untuk sub-atribut dari panel. Untuk mengetahui informasi selengkapnya tentang operator kueri dan fungsi yang digunakannya, lihat Operator kueri di menu Tambahkan filter.
    4. Klik Terapkan.

      Dialog akan ditutup dan kueri Anda diperbarui.

    5. Ulangi hingga kueri temuan berisi semua atribut yang Anda inginkan.
  11. Klik Pratinjau temuan yang cocok. Tabel menampilkan temuan yang cocok dengan kueri Anda.
  12. Klik Simpan.

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. Untuk membuat aturan senyap, jalankan perintah 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

    Ganti kode berikut:

    • CONFIG_ID: nama aturan senyap. ID harus menggunakan karakter alfanumerik dan tanda hubung, serta terdiri dari 1 hingga 63 karakter.
    • PARENT: cakupan dalam hierarki resource yang menjadi tujuan penerapan aturan senyap, organization, folder, atau project.
    • PARENT_ID: ID numerik organisasi, folder, atau project induk, atau ID alfanumerik project induk.
    • LOCATION: lokasi Security Command Center tempat membuat aturan nonaktif; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global.
    • RULE_DESCRIPTION: deskripsi aturan senyap tidak lebih dari 1.024 karakter.
    • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan. Misalnya, untuk membisukan temuan OPEN_FIREWALL, filter Anda dapat berupa FILTER="category=\"OPEN_FIREWALL\"".
    • MUTE_TYPE: jenis aturan senyap yang ingin Anda buat. Jenis aturan senyap yang valid adalah DYNAMIC dan STATIC. Jenis aturan senyap ditetapkan ke STATIC secara default. Anda tidak dapat mengubah jenis aturan senyap setelah membuatnya.
    • TIMESTAMP: hanya berlaku jika Anda membuat aturan penonaktifan dinamis. String tanggal/waktu yang menunjukkan kapan aturan mute dinamis berakhir. Nilai harus ditetapkan ke setidaknya satu hari di masa mendatang atau permintaan akan ditolak. Untuk informasi tentang format waktu, lihat gcloud topic datetimes. Jika masa berlaku aturan bisu dinamis berakhir, aturan tersebut akan dihapus dari semua temuan yang cocok. Jika Anda ingin aturan pembisuan dinamis berlaku tanpa batas pada temuan yang cocok, hilangkan kolom ini.

    Respons mencakup ID aturan senyap, yang dapat Anda gunakan untuk melihat, memperbarui, dan menghapus aturan senyap, seperti yang dijelaskan dalam Mengelola aturan senyap.

Terraform

Membuat aturan penonaktifan untuk organisasi:

resource "google_scc_v2_organization_mute_config" "default" {
  mute_config_id    = "my-config"
  organization = "123456789"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Organization mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

Membuat aturan penonaktifan untuk folder:

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

resource "google_scc_v2_folder_mute_config" "default" {
  mute_config_id    = "my-config"
  folder = google_folder.folder.folder_id
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Folder mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

Membuat aturan penonaktifan untuk project:

resource "google_scc_v2_project_mute_config" "default" {
  mute_config_id    = "my-config"
  project = "my-project-name"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Project mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

Go


import (
	"context"
	"fmt"
	"io"

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

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

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

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

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

Java


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

public class CreateMuteRule {

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

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

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

    createMuteRule(projectId, location, muteConfigId);
  }

  // Creates a mute configuration in a project under a given location.
  public static void createMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

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

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

Python

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

    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

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

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

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

REST

Di Security Command Center API, gunakan metode muteConfigs.create untuk membuat aturan nonaktif. Isi permintaan adalah instance MuteConfig:

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

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

Ganti kode berikut:

  • PARENT: resource induk untuk aturan senyap Anda (organizations, folders, atau projects)
  • PARENT_ID: ID organisasi induk, folder, atau project
  • LOCATION: lokasi Security Command Center tempat aturan nonaktif akan dibuat; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  • MUTE_CONFIG_ID: nama aturan senyap (antara 1 dan 63 karakter)
  • RULE_DESCRIPTION: deskripsi aturan pembisuan (maks: 1.024 karakter)
  • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan

    Misalnya, untuk membisukan temuan OPEN_FIREWALL, filter Anda dapat berupa "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: jenis aturan senyap yang ingin Anda buat. Jenis aturan senyap yang valid adalah DYNAMIC dan STATIC. Anda tidak dapat mengubah jenis aturan senyap setelah Anda membuatnya.

  • TIMESTAMP: hanya berlaku jika Anda membuat aturan penonaktifan dinamis. String tanggal/waktu yang menunjukkan kapan aturan mute dinamis berakhir. Nilai harus ditetapkan ke setidaknya satu hari di masa mendatang atau permintaan akan ditolak. Untuk informasi tentang format waktu, lihat gcloud topic datetimes. Jika masa berlaku aturan bisu dinamis berakhir, aturan tersebut akan dihapus dari semua temuan yang cocok. Jika Anda ingin aturan pembisuan dinamis berlaku tanpa batas pada temuan yang cocok, hilangkan kolom ini.

Respons mencakup ID konfigurasi senyap, yang dapat Anda gunakan untuk melihat, memperbarui, dan menghapus aturan senyap, seperti yang dijelaskan dalam Mengelola aturan senyap.

Temuan baru yang cocok persis dengan filter disembunyikan, dan atribut mute untuk temuan tersebut ditetapkan ke MUTED.

Properti temuan yang tidak didukung untuk aturan penonaktifan

Aturan nonaktif tidak mendukung semua properti temuan dalam filter. Luaskan bagian berikut untuk melihat daftar properti yang tidak didukung dalam filter aturan senyap.

Properti temuan yang tidak didukung

  • caiResource
  • canonicalName
  • createTime
  • description
  • eventTime
  • externalUri
  • gcpMetadata.folders1
  • libraryPaths
  • mute
  • muteAnnotation
  • muteInfo
  • muteInitiator
  • muteUpdateTime
  • name
  • nextSteps
  • originalProviderId
  • parent
  • processes.binaryPath
  • processes.libraryPaths
  • propertyDataTypes
  • resourceName
  • securityMarks
  • sourceProperties
  • state
  • workflowState
  • 1Properti gcpMetadata.folders berisi sub-kolom yang didukung dalam filter senyap.

Mencantumkan aturan penonaktifan

Anda dapat mencantumkan aturan nonaktif di organisasi, folder, atau project menggunakan Google Cloud konsol, gcloud CLI, atau Security Command Center API.

Kemampuan Anda untuk mencantumkan aturan senyapkan untuk cakupan tertentu bergantung pada izin yang diberikan ke peran IAM Anda.

Jika aset data diaktifkan untuk Security Command Center, cakupan perintah list juga dibatasi ke lokasi Security Command Center yang dipilih.

Untuk kode contoh yang mencantumkan aturan penonaktifan, lihat Mencantumkan aturan penonaktifan.

Untuk mencantumkan aturan senyap untuk organisasi, folder, atau project, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

  1. Di konsol Google Cloud , buka tab Aturan nonaktif di halaman Setelan Security Command Center.

    Buka Aturan penonaktifan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

  3. Di bagian Aturan senyapkan, Anda akan melihat detail untuk aturan senyapkan yang aktif, termasuk hal berikut:

    • Nama: ID aturan penonaktifan
    • Resource induk: resource tempat aturan senyap berada
    • Deskripsi: deskripsi aturan penonaktifan, jika tersedia
    • Terakhir diperbarui oleh: kepala sekolah yang terakhir memperbarui aturan
    • Terakhir diperbarui: tanggal dan waktu saat aturan terakhir diperbarui

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. Untuk mencantumkan aturan senyap, jalankan perintah gcloud scc muteconfigs list:

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

    Ganti kode berikut:

    • PARENT: organization, folder, atau project induk yang akan mencantumkan aturan senyap
    • PARENT_ID: ID organisasi induk, folder, atau project
    • LOCATION: lokasi Security Command Centertempat mencantumkan aturan nonaktif; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global

Go

import (
	"context"
	"fmt"
	"io"

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

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

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

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

Java


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

public class ListMuteRules {

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

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

    listMuteRules(projectId, location);
  }

  // Lists all mute rules present under the resource type in the given location.
  public static void listMuteRules(String projectId, String location) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

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

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

REST

Di Security Command Center API, gunakan metode muteConfigs.list untuk mencantumkan aturan nonaktif:

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

Ganti kode berikut:

  • PARENT: resource induk untuk aturan senyap Anda (organizations, folders, atau projects)
  • PARENT_ID: ID organisasi induk, folder, atau project
  • LOCATION: lokasi Security Command Centertempat mencantumkan aturan nonaktif; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global

Respons mencakup nama, deskripsi, dan ID konfigurasi penonaktifan untuk aturan penonaktifan Anda.

Melihat konfigurasi aturan penonaktifan

Anda dapat melihat konfigurasi aturan senyap menggunakan konsol Google Cloud , gcloud CLI, atau Security Command Center API.

Untuk kode contoh yang mengambil konfigurasi aturan penonaktifan, lihat Melihat aturan penonaktifan.

Untuk melihat konfigurasi aturan penonaktifan, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

  1. Di konsol Google Cloud , buka tab Aturan nonaktif di halaman Setelan Security Command Center.

    Buka Aturan penonaktifan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

  3. Di bagian Aturan penonaktifan, Anda akan melihat daftar aturan penonaktifan.

  4. Klik nama aturan yang ingin Anda lihat.

    Halaman akan terbuka dengan konfigurasi aturan senyap.

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. Untuk melihat konfigurasi aturan senyap, jalankan perintah gcloud scc muteconfigs get:

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

    Ganti kode berikut:

Go

import (
	"context"
	"fmt"
	"io"

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

// getMuteRule retrieves a mute configuration given its resource name.
func getMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// Use any one of the following resource paths to get mute configuration:
	//         - organizations/{organization_id}
	//         - folders/{folder_id}
	//         - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// Name of the mute config to retrieve.
	// muteConfigId := "mute-config-id"
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.GetMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

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

Java


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

public class GetMuteRule {

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

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

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

    getMuteRule(projectId, location, muteConfigId);
  }

  // Retrieves a mute configuration given its resource name.
  public static MuteConfig getMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      //  * organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      //  * folder -> MuteConfigName.ofFolderLocationMuteConfigName()

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

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

REST

Di Security Command Center API, gunakan metode muteConfigs.get untuk menampilkan konfigurasi aturan nonaktif:

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

Ganti kode berikut:

Memperbarui aturan penonaktifan

Anda dapat memperbarui deskripsi atau filter temuan aturan nonaktif menggunakan konsol Google Cloud , gcloud CLI, atau Security Command Center API.

Anda tidak dapat mengubah ID; organisasi, folder, atau project induk; atau lokasi aturan senyap. Untuk mengubah salah satu nilai ini, Anda harus membuat aturan senyap baru.

Jika sebelumnya Anda membatalkan pembisuan temuan, temuan tersebut akan dibisukan lagi jika cocok dengan aturan pembisuan yang diperbarui di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Membatalkan bisu temuan individual.

Untuk kode contoh yang memperbarui aturan penonaktifan, lihat bagian Memperbarui aturan penonaktifan.

Untuk memperbarui aturan penonaktifan, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

  1. Di konsol Google Cloud , buka tab Aturan nonaktif di halaman Setelan Security Command Center.

    Buka Aturan penonaktifan

  2. Pilih Google Cloud project atau organisasi yang merupakan resource induk untuk aturan senyap yang ingin Anda ubah.

  3. Klik nama aturan senyap yang ingin Anda ubah.

    Jika tidak memilih project atau organisasi yang sesuai, Anda mungkin melihat catatan yang memberi tahu Anda bahwa Anda tidak memiliki izin untuk mengubah aturan senyap.

  4. Masukkan deskripsi baru, lalu klik Simpan.

  5. Untuk aturan senyap dinamis, perbarui atau ubah waktu habis masa berlaku aturan.

  6. Perbarui atau ubah filter.

    Untuk mengetahui petunjuknya, lihat Membuat aturan senyap.

  7. Untuk melihat temuan yang cocok dengan filter yang diperbarui, klik Pratinjau Temuan yang Cocok.

    Tabel dimuat dengan temuan yang cocok dengan kueri baru.

  8. Klik Simpan.

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. Untuk memperbarui aturan senyap, jalankan perintah 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
    

    Ganti kode berikut:

    • MUTE_CONFIG_ID: ID untuk aturan senyap.
    • PARENT: resource induk untuk aturan senyap Anda (organization, folder, atau project).
    • PARENT_ID: ID untuk organisasi, folder, atau project.
    • LOCATION: lokasi Security Command Center tempat aturan nonaktif akan diperbarui; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global.
    • RULE_DESCRIPTION: deskripsi aturan pembisuan (maks: 1.024 karakter).
    • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan.

      Misalnya, untuk membisukan temuan OPEN_FIREWALL, filter Anda dapat berupa FILTER="category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: jenis aturan senyap yang Anda perbarui. Jenis aturan senyap yang valid adalah DYNAMIC dan STATIC. Anda tidak dapat mengubah jenis aturan senyap setelah dibuat.

    • TIMESTAMP: hanya berlaku jika Anda memperbarui aturan bisu dinamis. String tanggal/waktu yang menunjukkan kapan aturan mute dinamis berakhir. Nilai harus ditetapkan ke setidaknya satu hari di masa mendatang atau permintaan akan ditolak. Untuk mengetahui informasi tentang format waktu, lihat gcloud topic datetimes. Jika masa berlaku aturan bisu dinamis berakhir, aturan tersebut akan dihapus dari semua temuan yang cocok. Jika Anda ingin aturan pembisuan dinamis berlaku tanpa batas pada temuan yang cocok, hilangkan kolom ini.

Go


import (
	"context"
	"fmt"
	"io"

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

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

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

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

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

Java


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

public class UpdateMuteRule {

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

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

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

    updateMuteRule(projectId, location, muteConfigId);
  }

  // Updates an existing mute configuration.
  // The following can be updated in a mute config: description and filter.
  public static void updateMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient securityCenterClient = SecurityCenterClient.create()) {

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

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

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

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

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

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

REST

Di Security Command Center API, gunakan metode muteConfigs.patch untuk memperbarui aturan nonaktif. Isi permintaan adalah instance MuteConfig:

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

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

Ganti kode berikut:

  • PARENT: resource induk untuk aturan senyap Anda (organizations, folders, atau projects)
  • PARENT_ID: ID untuk organisasi, folder, atau project
  • LOCATION: lokasi Security Command Center tempat aturan nonaktif akan diperbarui; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  • CONFIG_ID: ID numerik aturan senyap
  • RULE_DESCRIPTION: deskripsi aturan senyap (maks: 1.024 karakter)
  • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan

    Misalnya, untuk membisukan temuan OPEN_FIREWALL, filter Anda dapat berupa "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: jenis aturan senyap yang Anda perbarui. Jenis aturan senyap yang valid adalah DYNAMIC dan STATIC. Anda tidak dapat mengubah jenis aturan senyap setelah dibuat.

  • TIMESTAMP: hanya berlaku jika Anda memperbarui aturan bisu dinamis. String tanggal/waktu yang menunjukkan kapan aturan senyap dinamis berakhir. Nilai harus ditetapkan setidaknya satu hari ke depan atau permintaan akan ditolak. Untuk mengetahui informasi tentang format waktu, lihat gcloud topic datetimes. Jika masa berlaku aturan bisu dinamis berakhir, aturan tersebut akan dihapus dari semua temuan yang cocok. Jika Anda ingin aturan pembisuan dinamis berlaku tanpa batas pada temuan yang cocok, hapus kolom ini.

Temuan baru yang cocok persis dengan filter akan disembunyikan, dan atribut mute untuk temuan tersebut ditetapkan ke MUTED.

Menghapus aturan penonaktifan

Anda dapat menghapus aturan senyap menggunakan konsol Google Cloud , gcloud CLI, atau Security Command Center API.

Sebelum menghapus aturan senyap, pahami hal berikut:

  • Anda tidak dapat memulihkan aturan senyap yang dihapus.
  • Menghapus aturan penonaktifan statis tidak akan secara otomatis mengaktifkan kembali temuan yang dinonaktifkan. Anda harus membatalkan bisu temuan secara manual atau terprogram.
  • Menghapus aturan senyap dinamis akan otomatis menghapus aturan dari semua temuan yang sebelumnya cocok dan mengaktifkan suaranya jika tidak cocok dengan aturan tambahan.
  • Temuan mendatang yang cocok dengan filter dalam aturan senyap yang dihapus tidak akan disenyapkan.

Untuk kode contoh yang menghapus aturan penonaktifan, lihat Menghapus aturan penonaktifan.

Untuk menghapus aturan senyap, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

  1. Di konsol Google Cloud , buka tab Aturan nonaktif di halaman Setelan Security Command Center.

    Buka Aturan penonaktifan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

  3. Klik nama aturan senyap yang ingin Anda hapus.

  4. Klik Delete.

  5. Baca dialognya dan, jika sudah yakin, klik Hapus.

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. Untuk menghapus aturan senyap, jalankan perintah gcloud scc muteconfigs delete:

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

    Ganti kode berikut:

    • MUTE_CONFIG_ID: ID untuk konfigurasi senyap
    • PARENT: resource induk untuk aturan senyap Anda (organization, folder, atau project)
    • PARENT_ID: ID untuk organisasi, folder, atau project
    • LOCATION: lokasi Security Command Center tempat aturan nonaktif akan dihapus; jika residensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  3. Konfirmasi permintaan Anda untuk menghapus aturan senyapkan.

Go


import (
	"context"
	"fmt"
	"io"

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

// deleteMuteRule deletes a mute configuration given its resource name.
// Note: Previously muted findings are not affected when a mute config is deleted.
func deleteMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// parent: Use any one of the following options:
	//             - organizations/{organization_id}
	//             - folders/{folder_id}
	//             - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// muteConfigId: Specify the name of the mute config to delete.
	// muteConfigId := "mute-config-id"
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.DeleteMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

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

Java


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

public class DeleteMuteRule {

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

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

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

    deleteMuteRule(projectId, location, muteConfigId);
  }

  // Deletes a mute configuration given its resource name.
  // Note: Previously muted findings are not affected when a mute config is deleted.
  public static void deleteMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      // folder -> MuteConfigName.ofFolderLocationMuteConfigName()
      // organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      client.deleteMuteConfig(
          MuteConfigName.ofProjectLocationMuteConfigName(projectId, location, muteConfigId));

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

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

REST

Di Security Command Center API, gunakan metode muteConfigs.delete untuk menghapus aturan nonaktif:

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

Ganti kode berikut:

  • PARENT: resource induk untuk aturan senyap Anda (organizations, folders, atau projects)
  • PARENT_ID: ID untuk organisasi, folder, atau project
  • LOCATION: lokasi Security Command Center tempat aturan nonaktif akan dihapus; jika residensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  • CONFIG_ID: ID numerik aturan senyap

Membisukan temuan satu per satu

Anda dapat membisukan temuan tertentu secara statis menggunakan Google Cloud konsol, gcloud CLI, atau Security Command Center API.

Membisukan temuan secara statis tidak memengaruhi apakah temuan tersebut aktif atau tidak. Jika temuan aktif dibisukan, atribut state tetap tidak berubah: state="ACTIVE". Temuan disembunyikan, tetapi tetap aktif hingga kerentanan, kesalahan konfigurasi, atau ancaman yang mendasarinya diselesaikan. Selain itu, dengan menonaktifkan temuan secara statis, Anda menggantikan aturan penonaktifan dinamis yang berlaku untuk temuan tersebut.

Membisukan temuan kombinasi toksik akan menutup kasus kombinasi toksik yang sesuai.

Untuk menonaktifkan semua temuan mendatang yang cocok dengan kriteria yang Anda tentukan, lihat Membuat aturan nonaktif.

Untuk kode contoh guna menonaktifkan temuan, lihat Menonaktifkan temuan.

Untuk membisukan temuan tertentu secara statis, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

  1. Di konsol Google Cloud , buka halaman Temuan Security Command Center.

    Buka Temuan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

  3. Jika Anda tidak melihat temuan yang perlu dibisukan di panel Findings query results, pilih kategori temuan di bagian Category pada panel Quick filters.

  4. Centang kotak di samping temuan yang perlu Anda nonaktifkan. Anda dapat memilih satu atau beberapa temuan.

  5. Di panel tindakan Findings query results, klik Mute options, lalu pilih Apply mute override.

    Atribut mute untuk temuan yang dipilih disetel ke MUTED dan temuan dihapus dari panel Findings query results.

Atau, Anda dapat menonaktifkan temuan dari panel detailnya:

  1. Di panel Finding query results pada halaman Findings, di kolom Category, klik nama temuan tertentu. Panel detail temuan akan terbuka.
  2. Klik Ambil tindakan.
  3. Dari menu Lakukan tindakan, pilih Terapkan penggantian bisu.

    Jika Anda memilih Nonaktifkan temuan seperti ini, halaman Buat aturan nonaktif akan terbuka dan Anda dapat membuat aturan nonaktif untuk temuan dengan jenis yang sama atau yang menyertakan atribut Indicator yang sama.

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. Untuk menyetel status nonaktif temuan ke MUTED, gunakan perintah set-mute di gcloud CLI:

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

    Ganti kode berikut:

Go

import (
	"context"
	"fmt"
	"io"

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

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

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

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

Java


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

public class SetMuteFinding {

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

    setMute(findingPath);
  }

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

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

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

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

REST

Di Security Command Center API, gunakan metode findings.setMute untuk membisukan temuan. Isi permintaan adalah enum yang menunjukkan status senyap yang dihasilkan:

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

{
  "mute": "MUTED"
}

Ganti kode berikut:

Setelah Anda membisukan temuan, atribut mute-nya akan ditetapkan ke MUTED.

Mengaktifkan temuan satu per satu

Anda dapat membatalkan pembisuan temuan individual secara statis menggunakan konsol Google Cloud , gcloud CLI, atau Security Command Center API.

Membatalkan membisukan temuan berguna jika Anda perlu mencegah temuan disembunyikan oleh aturan pembisuan yang terlalu luas, atau oleh aturan yang mungkin terlalu rumit untuk diubah guna mengecualikan temuan yang Anda anggap penting.

Untuk kode contoh guna membunyikan kembali temuan, lihat Membunyikan kembali temuan.

Temuan yang tidak dibisukan akan dibisukan kembali hanya jika temuan tersebut dibisukan secara manual. Aturan nonaktif yang dibuat dengan gcloud CLI atau Security Command Center API tidak akan memengaruhi temuan yang diaktifkan kembali oleh pengguna.

Untuk kode contoh guna membunyikan kembali temuan, lihat Membunyikan kembali temuan.

Konsol

  1. Di konsol Google Cloud , buka halaman Temuan Security Command Center.

    Buka Temuan

  2. Jika perlu, pilih Google Cloud project atau organisasi Anda.

    Halaman Temuan akan terbuka dengan kueri default yang ditampilkan di bagian Pratinjau kueri. Kueri default memfilter temuan yang disenyapkan, jadi Anda perlu mengedit kueri sebelum temuan yang disenyapkan muncul di panel Hasil kueri temuan.

  3. Di sebelah kanan bagian Pratinjau kueri, klik Edit kueri untuk membuka Editor kueri.

  4. Di kolom Query editor, ganti pernyataan mute yang ada dengan berikut:

    mute="MUTED"
  5. Klik Terapkan. Temuan di panel Hasil kueri temuan diperbarui untuk hanya menyertakan temuan yang disenyapkan.

  6. Jika perlu, filter temuan yang dibisukan lainnya. Misalnya, di panel Quick filters di bagian Category, pilih nama temuan yang perlu Anda aktifkan suaranya untuk memfilter semua kategori temuan lainnya.

  7. Centang kotak di samping temuan yang ingin Anda aktifkan suaranya. Anda dapat memilih satu atau beberapa temuan.

  8. Di panel tindakan Hasil kueri temuan, klik Opsi Sembunyikan, lalu pilih Terapkan penggantian batal sembunyikan.

    Atribut mute untuk temuan yang dipilih disetel ke UNMUTED dan temuan dihapus dari panel Findings query results.

Atau, Anda dapat mengaktifkan kembali temuan dari panel detailnya:

  1. Di panel Finding query results pada halaman Findings, di kolom Category, klik nama temuan tertentu. Panel detail temuan akan terbuka.
  2. Klik Ambil tindakan.
  3. Dari menu Lakukan tindakan, pilih Terapkan penggantian kebisuan.

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. Untuk menyetel status nonaktif temuan ke UNMUTED, gunakan perintah set-mute di gcloud CLI:

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

    Ganti kode berikut:

    • FINDING_ID: ID temuan yang ingin Anda nonaktifkan

      Untuk mengambil ID temuan, gunakan Security Command Center API untuk mencantumkan temuan. ID temuan adalah bagian terakhir dari atribut canonicalName, misalnya, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: resource induk (project, folder, atau organization ), peka huruf besar/kecil

    • PARENT_ID: ID organisasi induk, folder, atau project

    • LOCATION: lokasi Security Command Center tempat temuan akan diaktifkan suaranya; jika residensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global

    • SOURCE_ID: ID sumber

      Untuk mengetahui petunjuk tentang cara mengambil ID sumber, lihat Mendapatkan ID sumber.

Go


import (
	"context"
	"fmt"
	"io"

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

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

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

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

Java


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

public class SetUnmuteFinding {

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

    setUnmute(findingPath);
  }

  // Unmute an individual finding.
  // Unmuting a finding that isn't muted has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setUnmute(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

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

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

Python

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

    client = securitycenter_v2.SecurityCenterClient()

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

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

REST

Di Security Command Center API, gunakan metode findings.setMute untuk membatalkan pembisuan temuan. Isi permintaan adalah enum yang menunjukkan status senyap yang dihasilkan:

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

{
  "mute": "UNMUTED"
}

Ganti kode berikut:

  • PARENT: resource induk (organizations, folders, atau projects)
  • PARENT_ID: ID organisasi induk, folder, atau project
  • LOCATION: lokasi Security Command Center tempat temuan akan diaktifkan suaranya; jika residensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  • SOURCE_ID: ID numerik untuk sumber

    Untuk mengetahui petunjuk tentang cara mengambil ID sumber, lihat Mendapatkan ID sumber.

  • FINDING_ID: ID temuan yang ingin Anda nonaktifkan.

    Untuk mengambil ID temuan, gunakan Security Command Center API untuk mencantumkan temuan. ID temuan adalah bagian terakhir dari atribut canonicalName, misalnya, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

Temuan yang dipilih tidak lagi disembunyikan, dan atribut mute untuk temuan ditetapkan ke UNMUTED.

Menghapus penggantian status nonaktif dari temuan individual

Anda menerapkan penggantian status senyap saat Anda sengaja mengubah status senyap temuan untuk menyenyapkan atau membatalkan penyenyapan temuan secara statis. Misalnya, Anda mungkin ingin menerapkan penggantian status nonaktif untuk menyembunyikan temuan tingkat keparahan rendah yang tidak perlu dibuatkan aturan nonaktif dinamis.

Anda dapat menghapus penggantian status nonaktif dari temuan individual menggunakan konsol Google Cloud , gcloud CLI, atau Security Command Center API.

Sebelum menghapus penggantian status bisu dari temuan, pahami hal-hal berikut:

  • Temuan memiliki penggantian status bisu jika dibisukan atau dibunyikan secara statis. Anda dapat menerapkan penggantian status senyap ke temuan apa pun secara manual atau otomatis dengan aturan senyap statis.
  • Penggantian status nonaktif diterapkan ke temuan tanpa batas waktu dan diprioritaskan daripada aturan nonaktif yang cocok.
  • Menghapus penggantian status nonaktif dari temuan akan mereset status nonaktif temuan tersebut sehingga dapat diproses oleh aturan nonaktif statis atau dinamis.
  • Menghapus penggantian status senyap dari temuan berbeda dengan membatalkan senyap temuan. Saat Anda mengaktifkan kembali temuan (menerapkan penggantian nonaktif), aturan nonaktif tidak dapat menonaktifkan temuan tersebut hingga Anda menghapus penggantian status nonaktif secara manual.

Untuk menghapus penggantian pembisuan dari temuan tertentu, lakukan langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Temuan Security Command Center.

    Buka Temuan

  2. Pilih project atau organisasi Google Cloud Anda.

  3. Di sebelah kanan bagian Pratinjau kueri, klik Edit kueri untuk membuka Editor kueri.

  4. Di kolom Query editor, ganti pernyataan mute yang ada dengan berikut:

    mute="MUTED" OR mute="UNMUTED"
  5. Klik Terapkan. Temuan di panel Hasil kueri temuan diperbarui untuk menyertakan temuan yang dinonaktifkan dan diaktifkan secara statis.

  6. Jika perlu, filter temuan lainnya. Misalnya, di panel Filter cepat di bagian Kategori, pilih nama temuan yang perlu Anda reset untuk memfilter semua kategori temuan lainnya.

  7. Centang kotak di samping temuan yang ingin Anda reset. Anda dapat memilih satu atau beberapa temuan.

  8. Di panel tindakan Hasil kueri temuan, klik Opsi Sembunyikan, lalu pilih Hapus penggantian penyembunyian.

    Atribut mute untuk temuan yang dipilih disetel ke UNDEFINED dan temuan dihapus dari panel Findings query results.

Atau, Anda dapat mengaktifkan kembali temuan dari panel detailnya:

  1. Di panel Finding query results pada halaman Findings, di kolom Category, klik nama temuan tertentu. Panel detail temuan akan terbuka.
  2. Klik Ambil tindakan.
  3. Dari menu Lakukan tindakan, pilih Hapus penggantian bisu.

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. Untuk menyetel status nonaktif temuan ke UNDEFINED, gunakan perintah set-mute di gcloud CLI:

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

    Ganti kode berikut:

    • FINDING_ID: ID temuan yang ingin Anda reset

      Untuk mengambil ID temuan, gunakan Security Command Center API untuk mencantumkan temuan. ID temuan adalah bagian terakhir dari atribut canonicalName, misalnya, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: resource induk (project, folder, atau organization ), peka huruf besar/kecil

    • PARENT_ID: ID organisasi induk, folder, atau project

    • LOCATION: lokasi Security Command Center tempat penghapusan penggantian status senyap dari temuan; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global

    • SOURCE_ID: ID sumber

      Untuk mengetahui petunjuk tentang cara mengambil ID sumber, lihat Mendapatkan ID sumber.

REST

Di Security Command Center API, gunakan metode findings.setMute untuk mereset status senyap temuan. Isi permintaan adalah enum yang menunjukkan status senyap yang dihasilkan:

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

{
  "mute": "UNDEFINED"
}

Ganti kode berikut:

  • PARENT: resource induk (organizations, folders, atau projects)
  • PARENT_ID: ID organisasi induk, folder, atau project
  • LOCATION: lokasi Security Command Center tempat penghapusan penggantian status senyap dari temuan; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global
  • SOURCE_ID: ID numerik untuk sumber

Java


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

public class 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;
    }
  }
}

Menonaktifkan atau mereset beberapa temuan yang ada

Anda dapat melakukan operasi membisukan massal berikut untuk beberapa temuan yang ada dengan menggunakan perintah gcloud CLI gcloud scc findings bulk-mute atau metode bulkMute Security Command Center API:

  • Menonaktifkan beberapa temuan yang ada. Menonaktifkan temuan yang ada secara massal akan menonaktifkannya secara statis dan menggantikan aturan penonaktifan dinamis yang berlaku untuk temuan tersebut. Jika Anda perlu membisukan temuan serupa di masa mendatang, buat aturan pembisuan.

  • Menghapus penggantian status nonaktif pada beberapa temuan yang ada. Dengan menghapus penggantian status senyap pada temuan, Anda mereset status senyap dari MUTED (disenyapkan secara statis) atau UNMUTED (tidak disenyapkan secara statis) ke UNDEFINED. Kemampuan ini dapat berguna jika Anda bermigrasi dari aturan bisu statis ke dinamis.

Tentukan kumpulan temuan yang perlu Anda nonaktifkan dengan menentukan filter temuan. Filter senyapkan massal tidak mendukung semua properti temuan. Untuk mengetahui daftar properti yang tidak didukung, lihat Properti temuan yang tidak didukung untuk aturan nonaktif.

Jika aset data diaktifkan untuk Security Command Center, operasi membisukan massal dibatasi cakupannya ke lokasi Security Command Center tempat operasi tersebut dieksekusi.

Untuk kode contoh yang menonaktifkan temuan secara massal, lihat Menonaktifkan temuan secara massal.

Untuk membisukan atau mereset temuan secara massal, klik tab untuk prosedur yang ingin Anda gunakan:

Konsol

Di konsol Google Cloud , Anda hanya dapat menonaktifkan temuan secara massal dengan membuat aturan penonaktifan. Di konsol Google Cloud , membuat aturan nonaktif akan menonaktifkan temuan yang ada dan temuan di masa mendatang.

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. Untuk membisukan atau mereset beberapa temuan secara massal, jalankan perintah gcloud scc findings bulk-mute:

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

    Ganti kode berikut:

    • PARENT: cakupan dalam hierarki resource yang menjadi tujuan penerapan aturan senyap, organization, folder, atau project.
    • PARENT_ID: ID numerik organisasi, folder, atau project induk, atau ID alfanumerik project induk.
    • LOCATION: lokasi Security Command Center tempat membisukan atau mereset temuan secara massal; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global.
    • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan.

      Misalnya, untuk membisukan semua temuan OPEN_FIREWALL dan PUBLIC_IP_ADDRESS yang ada dengan tingkat keparahan rendah di project internal-test, filter Anda dapat berupa "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: nilai yang menunjukkan apakah temuan diredam secara statis atau tidak. Nilai yang valid adalah MUTED dan UNDEFINED. Nilai ditetapkan ke MUTED secara default. Tetapkan nilai ini ke UNDEFINED hanya jika Anda mereset status senyap beberapa temuan yang ada.

REST

Di Security Command Center API, gunakan metode findings.bulkMute untuk membisukan atau mereset status bisu beberapa temuan yang ada. Isi permintaan berisi ekspresi yang digunakan untuk memfilter temuan:

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

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

Ganti kode berikut:

  • PARENT: resource induk (organizations, folders, atau projects).
  • PARENT_ID: ID organisasi induk, folder, atau project.
  • LOCATION: lokasi Security Command Center tempat membisukan atau mereset temuan secara massal; jika retensi data diaktifkan, gunakan eu, ksa, atau us; jika tidak, gunakan nilai global.
  • FILTER: ekspresi yang Anda tentukan untuk memfilter temuan.

    Misalnya, untuk membisukan semua temuan OPEN_FIREWALL dan PUBLIC_IP_ADDRESS yang ada dengan tingkat keparahan rendah di project internal-test, filter Anda dapat berupa "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

  • MUTE_STATE: nilai yang menunjukkan apakah temuan disenyapkan atau tidak. Nilai yang valid adalah MUTED atau UNDEFINED. Nilai ini ditetapkan ke MUTED secara default. Tetapkan nilai ini ke UNDEFINED hanya jika Anda mereset status senyap beberapa temuan yang ada.

Semua temuan yang ada di resource yang Anda pilih, dan yang cocok persis dengan filter, akan disembunyikan. Atribut mute untuk temuan ditetapkan ke MUTED.

Menonaktifkan temuan tidak akan mengubah statusnya. Jika temuan aktif dibisukan, temuan tersebut disembunyikan tetapi tetap aktif hingga kerentanan, kesalahan konfigurasi, atau ancaman yang mendasarinya diselesaikan.

Melihat temuan yang diabaikan di Google Cloud konsol

Anda dapat melihat temuan yang disembunyikan di konsol Google Cloud dengan mengedit kueri temuan untuk memilih temuan yang menyertakan nilai properti mute="MUTED".

Misalnya, kueri temuan berikut hanya menampilkan temuan aktif yang disembunyikan:

state="ACTIVE"
AND mute="MUTED"

Untuk menampilkan semua temuan aktif, baik yang disenyapkan maupun tidak, hapus atribut mute dari kueri sepenuhnya:

state="ACTIVE"

Secara default, kueri temuan di konsol Google Cloud hanya menampilkan temuan yang tidak dibisukan.

Melihat temuan yang dinonaktifkan menurut jenis aturan penonaktifan

Bagian berikut menjelaskan cara membuat kueri temuan aktif menurut jenis aturan nonaktif.

Untuk mengetahui informasi selengkapnya tentang mencantumkan temuan tertentu, lihat Memfilter temuan.

Temuan kueri yang dinonaktifkan oleh aturan penonaktifan statis

Untuk menampilkan temuan aktif yang disenyapkan oleh aturan penyenyapan statis setelah waktu yang ditentukan, gunakan kueri berikut dan periksa atribut muteInitiator untuk menentukan apakah temuan disenyapkan oleh aturan penyenyapan statis.

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

Ganti TIMESTAMP dengan string tanggal/waktu yang menunjukkan awal periode waktu yang ingin Anda kueri. Untuk informasi tentang format waktu, lihat gcloud topic datetimes.

Temuan kueri yang dinonaktifkan oleh aturan penonaktifan dinamis

Untuk menampilkan temuan aktif yang disenyapkan oleh aturan penyenyapan dinamis setelah waktu tertentu, gunakan kueri berikut:

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

Ganti kode berikut:

  • TIMESTAMP: String tanggal/waktu yang menunjukkan awal jangka waktu yang ingin Anda kueri. Untuk mengetahui informasi tentang format waktu, lihat gcloud topic datetimes.
  • PARENT_ID: ID organisasi, folder, atau project induk, yang ditentukan dalam format organizations/123, folders/456, atau projects/789.
  • CONFIG_ID: nama aturan senyap. ID harus menggunakan karakter alfanumerik dan tanda hubung, serta terdiri dari 1 hingga 63 karakter.

Untuk mengetahui informasi selengkapnya tentang pengeditan kueri temuan, lihat Membuat atau mengedit kueri temuan di dasbor.

Menemukan properti yang terkait dengan membisukan

Bagian ini mencantumkan properti temuan yang terkait dengan status senyap suatu temuan, dan menjelaskan pengaruhnya terhadap operasi senyap:

  • mute: ditetapkan ke UNDEFINED saat temuan dibuat dan perubahan dalam skenario berikut:
    • MUTED: temuan dinonaktifkan secara manual atau berdasarkan aturan penonaktifan.
    • UNMUTED: pengguna mengaktifkan kembali temuan.
  • muteUpdateTime: waktu saat temuan dibisukan atau tidak dibisukan.
  • muteInitiator: ID untuk aturan pembisuan atau akun utama yang membisukan temuan.
  • muteInfo: informasi penonaktifan tentang temuan, seperti jenis aturan penonaktifan (statis atau dinamis) dan aturan penonaktifan mana yang cocok dengan temuan.
  • muteInfo.staticMute: status senyap statis menggantikan aturan senyap dinamis yang berlaku untuk temuan ini.
    • state: status penonaktifan statis yang dapat ditetapkan dengan menonaktifkan temuan secara langsung atau aturan penonaktifan statis.
    • applyTime: waktu saat status nonaktif statis diterapkan ke temuan.
  • muteInfo.dynamicMuteRecords: Catatan aturan bisu dinamis yang cocok dengan temuan.
    • muteConfig: nama resource relatif aturan senyap, yang diwakili oleh konfigurasi senyap yang membuat rekaman. Contoh, organizations/123/muteConfigs/examplemuteconfig.
    • matchTime: waktu saat aturan penonaktifan dinamis cocok dengan temuan.

Menghentikan notifikasi dan ekspor temuan yang dibisukan

Jika Anda mengaktifkan notifikasi temuan, temuan yang dibisukan baru atau yang diperbarui yang cocok dengan filter notifikasi Anda tetap diekspor ke Pub/Sub.

Untuk menghentikan ekspor dan notifikasi temuan yang disenyapkan, gunakan atribut mute untuk mengecualikan temuan yang disenyapkan dalam filter NotificationConfig. Misalnya, filter berikut hanya mengirim notifikasi untuk temuan aktif yang tidak dibisukan atau yang atribut bisunya belum ditetapkan:

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

Langkah berikutnya

Pelajari lebih lanjut cara memfilter notifikasi temuan.

Lihat contoh filter lainnya yang dapat Anda gunakan.