개별 발견 항목 숨기기

이 문서에서는 Security Command Center에서 개별 발견 항목을 정적으로 숨기거나, 숨기기를 취소하거나, 발견 항목을 일괄적으로 숨기는 방법을 설명합니다.

필요한 역할

발견 사항을 숨기거나 숨김 해제하는 데 필요한 권한을 얻으려면 관리자에게 조직, 폴더 또는 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

개별 발견 사항 숨기기

Google Cloud 콘솔, gcloud CLI 또는 Security Command Center API를 사용하여 개별 발견 사항을 정적으로 숨길 수 있습니다.

발견 사항을 정적으로 숨겨도 활성화 여부에는 영향을 주지 않습니다. 활성 발견 사항을 숨겨도 state 속성은 변경되지 않습니다(state="ACTIVE"). 발견 사항이 숨겨지지만 취약점, 구성 오류, 위협이 해결될 때까지 활성 상태로 유지됩니다. 또한 발견 사항을 정적으로 숨기면 발견 사항에 적용되는 모든 동적 숨기기 규칙이 재정의됩니다.

유해한 조합 발견 사항을 숨기면 해당 유해한 조합 케이스가 종료됩니다.

지정한 기준과 일치하는 모든 향후 발견 사항을 숨기려면 숨기기 규칙 관리를 참고하세요.

발견 사항을 숨기는 샘플 코드는 발견 사항 숨기기를 참조하세요.

개별 발견 사항을 정적으로 숨기려면 사용하려는 절차의 탭을 클릭합니다.

콘솔

  1. Google Cloud 콘솔에서 Security Command Center 발견 사항 페이지로 이동합니다.

    발견 항목으로 이동

  2. 필요한 경우 Google Cloud 프로젝트 또는 조직을 선택합니다.
  3. 발견 사항 쿼리 결과 패널에 숨기려는 발견 사항이 표시되지 않으면 빠른 필터 패널의 카테고리 섹션에서 발견 사항 카테고리를 선택하세요.
  4. 숨기려는 발견 사항을 선택합니다. 하나 이상의 발견 사항을 선택할 수 있습니다.
  5. 발견 사항 쿼리 결과 작업 모음에서 숨기기 옵션을 클릭한 후 숨기기 재정의 적용을 선택합니다.

    선택한 발견 항목의 mute 속성이 MUTED로 설정되고 발견 항목 쿼리 결과 패널에서 발견 항목이 삭제됩니다. 또는 세부정보 패널에서 발견 사항을 숨길 수 있습니다.

  6. 발견 사항 페이지의 발견 사항 쿼리 결과 패널에 있는 카테고리 열에서 개별 발견 사항 이름을 클릭합니다. 발견 사항의 세부정보 패널이 열립니다.

  7. 조치 취하기를 클릭합니다.

  8. 실행 메뉴에서 숨기기 재정의 적용을 선택합니다.

    대신 이와 같은 발견 사항 제외를 선택하면 제외 규칙 만들기 페이지가 열리고, 이 페이지에서 동일한 유형의 발견 사항, 또는 동일한 Indicator 속성을 포함한 발견 사항에 대해 제외 규칙을 만들 수 있습니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. 발견 사항의 숨기기 상태를 MUTED로 설정하고 gcloud CLI에서 set-mute 명령어를 사용합니다.

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

    다음을 바꿉니다.

    • FINDING_ID: 숨기려는 발견 사항의 ID입니다.

      발견 사항 ID를 찾으려면 Security Command Center API를 사용해서 발견 사항을 나열합니다. 발견 사항 ID는 canonicalName 속성의 마지막 부분입니다. 예를 들면 projects/123456789012/sources/1234567890123456789/findings`/5ee30aa342e799e4e1700826de053aa9입니다.

    • PARENT: 상위 리소스(project, folder, organization)입니다. 대소문자를 구분합니다.

    • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID

    • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.

    • SOURCE_ID: 소스 ID입니다.

      소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.

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

Security Command Center API에서 findings.setMute 메서드를 사용하여 발견 사항을 숨깁니다. 요청 본문은 발견 상목 숨기기 상태를 나타내는 enum입니다.

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

{
  "mute": "MUTED"
}

다음을 바꿉니다.

  • PARENT: 상위 리소스(organizations, folders, projects)입니다.
  • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID
  • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.
  • SOURCE_ID: 소스의 숫자 ID입니다.

    소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.

  • FINDING_ID: 숨기려는 발견 사항의 ID입니다.

    발견 사항 ID를 찾으려면 Security Command Center API를 사용해서 발견 사항을 나열합니다. 발견 사항 ID는 canonicalName 속성의 마지막 부분입니다. 예를 들면 projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9입니다.

발견 사항을 숨기면 mute 속성이 MUTED로 설정됩니다.

개별 발견 사항 숨기기 취소

Google Cloud 콘솔, gcloud CLI 또는 Security Command Center API를 사용하여 개별 발견 사항의 정적 숨기기를 취소할 수 있습니다.

발견 사항의 숨기기 취소는 너무 광범위한 제외 규칙이나 중요하다고 생각하는 발견 사항을 제외하기 위해 수정하기에는 너무 복잡한 규칙으로 인해 발견 사항이 숨겨지는 것을 방지해야 할 때 유용합니다.

숨기기 취소된 발견 사항은 발견 사항이 수동으로 숨겨진 경우에만 다시 숨겨집니다. gcloud CLI 또는 Security Command Center API를 통해 생성된 숨기기 규칙은 사용자가 숨기기 취소한 발견 사항에 영향을 주지 않습니다.

발견 사항 숨기기를 취소하는 샘플 코드는 발견 사항 숨기기 취소를 참조하세요.

콘솔

Google Cloud 콘솔을 사용하여 개별 발견 항목의 숨기기를 취소하려면 서비스 등급의 탭을 클릭합니다.

  1. Google Cloud 콘솔에서 Security Command Center 발견 사항 페이지로 이동합니다.

    발견 항목으로 이동

  2. 필요한 경우 Google Cloud 프로젝트 또는 조직을 선택합니다. 발견 항목 페이지가 열리고 쿼리 미리보기 섹션에 기본 쿼리가 표시됩니다. 기본 쿼리는 숨겨진 발견 사항을 필터링하므로 숨겨진 발견 사항이 발견 사항 쿼리 결과 패널에 표시되기 전에 쿼리를 수정해야 합니다.
  3. 쿼리 미리보기 섹션의 오른쪽에 있는 쿼리 수정을 클릭하여 쿼리 편집기를 엽니다.
  4. 쿼리 편집기 필드에서 기존 숨기기 문을 다음으로 바꿉니다.
    mute="MUTED"
  5. 적용을 클릭합니다. 숨겨진 발견 사항만 포함하도록 발견 사항 쿼리 결과 패널의 발견 사항이 업데이트됩니다.
  6. 필요한 경우 숨겨진 다른 발견 사항을 필터링합니다. 예를 들어 카테고리빠른 필터 패널에서 숨기기 취소해야 하는 발견 사항의 이름을 선택하여 다른 모든 발견 사항 카테고리를 필터링합니다.
  7. 숨기기를 취소하려는 발견 사항을 선택합니다. 하나 이상의 발견 사항을 선택할 수 있습니다.
  8. 발견 사항 쿼리 결과 작업 모음에서 숨기기 옵션을 클릭한 후 숨기기 취소 재정의 적용을 선택합니다. 선택한 발견 항목의 mute 속성이 UNMUTED로 설정되고 발견 항목 쿼리 결과 패널에서 발견 항목이 삭제됩니다. 또는 세부정보 패널에서 발견 사항을 숨기기 취소할 수 있습니다.
  9. 발견 사항 페이지의 발견 사항 쿼리 결과 패널에 있는 카테고리 열에서 개별 발견 사항 이름을 클릭합니다. 발견 사항의 세부정보 패널이 열립니다.
  10. 조치 취하기를 클릭합니다.
  11. 조치 취하기 메뉴에서 숨기기 취소 재정의 적용을 선택합니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. 발견 사항의 숨기기 상태를 UNMUTED로 설정하고 gcloud CLI에서 set-mute 명령어를 사용합니다.

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

    다음을 바꿉니다.

    • FINDING_ID: 숨기려는 발견 사항의 ID입니다.

      발견 사항 ID를 찾으려면 Security Command Center API를 사용해서 발견 사항을 나열합니다. 발견 사항 ID는 canonicalName 속성의 마지막 부분입니다. 예를 들면 projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9입니다.

    • PARENT: 상위 리소스(project, folder, organization)입니다. 대소문자를 구분합니다.

    • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID

    • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.

    • SOURCE_ID: 소스 ID입니다.

      소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.

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

Security Command Center API에서 findings.setMute 메서드를 사용하여 발견 사항 숨기기를 취소합니다. 요청 본문은 발견 상목 숨기기 상태를 나타내는 enum입니다.

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

{
  "mute": "UNMUTED"
}

다음을 바꿉니다.

  • PARENT: 상위 리소스(organizations, folders, projects)입니다.
  • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID
  • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.
  • SOURCE_ID: 소스의 숫자 ID입니다.

    소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.

  • FINDING_ID: 숨기려는 발견 사항의 ID입니다.

    발견 사항 ID를 찾으려면 Security Command Center API를 사용해서 발견 사항을 나열합니다. 발견 사항 ID는 canonicalName 속성의 마지막 부분입니다. 예를 들면 projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9입니다.

선택한 발견 사항이 더 이상 숨겨져 있지 않으면 발견 사항의 mute 속성이 UNMUTED로 설정됩니다.

개별 발견 사항에서 숨기기 상태 재정의 삭제

발견 사항을 정적으로 숨기거나 숨기기 취소하기 위해 발견 사항의 숨기기 상태를 의도적으로 수정하는 경우 숨기기 상태 재정의를 적용합니다. 예를 들어 동적 제외 규칙을 만들 가치가 없는 심각도가 낮은 발견 사항을 숨기기 위해 숨기기 상태 재정의를 적용할 수 있습니다.

Google Cloud 콘솔, gcloud CLI, Security Command Center API를 사용하여 개별 발견 사항에서 숨기기 상태 재정의를 삭제할 수 있습니다.

발견 사항에서 숨기기 상태 재정의를 삭제하기 전에 다음 사항에 유의하세요.

  • 정적으로 숨겨지거나 숨기기 취소된 경우 발견 사항에 숨기기 상태 재정의가 있습니다. 정적 숨기기 규칙을 사용하여 수동 또는 자동으로 모든 발견 사항에 숨기기 상태 재정의를 적용할 수 있습니다.
  • 숨기기 상태 재정의는 발견 사항에 무기한 적용되며 일치하는 숨기기 규칙보다 우선 적용됩니다.
  • 발견 사항에서 숨기기 상태 재정의를 삭제하면 정적 또는 동적 숨기기 규칙에서 처리할 수 있도록 발견 사항의 숨기기 상태가 재설정됩니다.
  • 발견 사항에서 숨기기 상태 재정의를 삭제하는 것은 발견 사항을 숨기기 취소하는 것과 다릅니다. 발견 사항 숨기기를 취소(숨기기 취소 재정의를 적용)하면 숨기기 상태 재정의를 수동으로 삭제할 때까지 숨기기 규칙에서 해당 발견 사항을 숨길 수 없습니다.

개별 발견 사항에서 숨기기 재정의를 삭제하려면 다음 단계를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Security Command Center 발견 사항 페이지로 이동합니다.

    발견 항목으로 이동

  2. Google Cloud 프로젝트 또는 조직을 선택합니다.
  3. 쿼리 미리보기 섹션의 오른쪽에 있는 쿼리 수정을 클릭하여 쿼리 편집기를 엽니다.
  4. 쿼리 편집기 필드에서 기존 숨기기 문을 다음으로 바꿉니다.
    mute="MUTED" OR mute="UNMUTED"
  5. 적용을 클릭합니다. 정적으로 숨겨졌다가 숨기기 취소된 발견 사항을 포함하도록 발견 사항 쿼리 결과 패널의 발견 사항이 업데이트됩니다.
  6. 필요한 경우 다른 발견 사항을 필터링합니다. 예를 들어 카테고리빠른 필터 패널에서 재설정해야 하는 발견 사항의 이름을 선택하여 다른 모든 발견 사항 카테고리를 필터링합니다.
  7. 재설정하려는 발견 사항을 선택합니다. 하나 이상의 발견 사항을 선택할 수 있습니다.
  8. 발견 사항 쿼리 결과 작업 모음에서 숨기기 옵션을 클릭한 후 숨기기 재정의 삭제를 선택합니다. 선택한 발견 항목의 mute 속성이 UNDEFINED로 설정되고 발견 항목 쿼리 결과 패널에서 발견 항목이 삭제됩니다. 또는 세부정보 패널에서 발견 사항을 숨기기 취소할 수 있습니다.
  9. 발견 사항 페이지의 발견 사항 쿼리 결과 패널에 있는 카테고리 열에서 개별 발견 사항 이름을 클릭합니다. 발견 사항의 세부정보 패널이 열립니다.
  10. 조치 취하기를 클릭합니다.
  11. 실행 메뉴에서 숨기기 재정의 삭제를 선택합니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. 발견 사항의 숨기기 상태를 UNDEFINED로 설정하고 gcloud CLI에서 set-mute 명령어를 사용합니다.

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

    다음을 바꿉니다.

    • FINDING_ID: 재설정하려는 발견 사항의 ID

      발견 사항 ID를 찾으려면 Security Command Center API를 사용해서 발견 사항을 나열합니다. 발견 사항 ID는 canonicalName 속성의 마지막 부분입니다. 예를 들면 projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9입니다.

    • PARENT: 상위 리소스(project, folder, organization)입니다. 대소문자를 구분합니다.

    • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID

    • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.

    • SOURCE_ID: 소스 ID입니다.

      소스 ID 가져오기에 대한 안내는 소스 ID 가져오기를 참조하세요.

REST

Security Command Center API에서 findings.setMute 메서드를 사용하여 발견 사항의 숨기기 상태를 재설정합니다. 요청 본문은 발견 상목 숨기기 상태를 나타내는 enum입니다.

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

{
  "mute": "UNDEFINED"
}

다음을 바꿉니다.

  • PARENT: 상위 리소스(organizations, folders, projects)입니다.
  • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID
  • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.
  • SOURCE_ID: 소스의 숫자 ID입니다.

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

여러 기존 발견 사항 숨기기 또는 재설정

gcloud scc findings bulk-mute gcloud CLI 명령어 또는 Security Command Center API의 bulkMute 메서드를 사용하여 여러 기존 발견 사항에 대해 다음과 같은 일괄 숨기기 작업을 실행할 수 있습니다.

  • 여러 기존 발견 사항을 숨깁니다. 기존 발견 사항을 일괄적으로 숨기면 정적으로 숨겨지고 발견 사항에 적용되는 모든 동적 숨기기 규칙이 재정의됩니다. 이후에도 비슷한 발견 사항을 숨기려면 숨기기 규칙을 만드세요.

  • 여러 기존 발견 사항에서 숨기기 상태 재정의를 삭제합니다. 발견 사항에서 숨기기 상태 재정의를 삭제하면 숨기기 상태가 MUTED(정적으로 숨김) 또는 UNMUTED(정적으로 숨기기 취소)에서 UNDEFINED로 재설정됩니다. 이 기능은 정적 숨기기 규칙에서 동적 숨기기 규칙으로 마이그레이션하는 경우에 유용할 수 있습니다.

발견 사항 필터를 정의하여 숨겨야 하는 발견 사항 집합을 지정합니다. 대량 숨기기 필터에서는 일부 발견 사항 속성이 지원되지 않습니다. 지원되지 않는 속성 목록은 숨기기 규칙에 지원되지 않는 발견 사항 속성을 참조하세요.

데이터 레지던시가 Security Command Center에 사용 설정된 경우 일괄 숨기기 작업 범위는 해당 작업이 실행되는 Security Command Center 위치로 제한됩니다.

발견 사항을 일괄로 숨기는 샘플 코드는 발견 사항 일괄 숨기기를 참조하세요.

발견 사항을 일괄적으로 숨기거나 재설정하려면 사용하려는 절차의 탭을 클릭합니다.

콘솔

Google Cloud 콘솔에서 숨기기 규칙 만들기로만 발견 사항을 일괄로 숨길 수 있습니다.Google Cloud 콘솔에서 숨기기 규칙을 만들면 기존 및 이후의 발견 항목이 숨겨집니다.

gcloud

  1. Google Cloud 콘솔에서 Cloud Shell을 활성화합니다.

    Cloud Shell 활성화

    Google Cloud 콘솔 하단에 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. Cloud Shell은 Google Cloud CLI가 사전 설치된 셸 환경으로, 현재 프로젝트의 값이 이미 설정되어 있습니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  2. 여러 개의 발견 사항을 일괄로 숨기거나 재설정하려면 gcloud scc findings bulk-mute 명령어를 실행합니다.

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

    다음을 바꿉니다.

    • PARENT: 제외 규칙이 적용되는 리소스 계층 구조의 범위입니다(organization, folder, project).
    • PARENT_ID: 상위 조직, 폴더, 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.
    • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.
    • FILTER: 발견 사항을 필터링하기 위해 정의하는 표현식입니다.

      예를 들어 internal-test 프로젝트에서 심각도가 낮은 기존의 모든 OPEN_FIREWALLPUBLIC_IP_ADDRESS 발견 사항을 숨기려면 "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"" 필터를 사용할 수 있습니다.

    • MUTE_STATE: 발견 사항이 정적으로 숨겨졌는지 여부를 나타내는 값입니다. 유효한 값은 MUTEDUNDEFINED입니다. 기본적으로 값은 MUTED로 설정됩니다. 여러 기존 발견 사항의 숨기기 상태를 재설정하는 경우에만 이 값을 UNDEFINED로 설정합니다.

REST

Security Command Center API에서 findings.bulkMute 메서드를 사용하여 기존 여러 발견 사항을 숨기거나 숨기기 상태를 재설정합니다. 요청 본문에는 발견 사항을 필터링하는 데 사용되는 표현식이 포함되어 있습니다.

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

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

다음을 바꿉니다.

  • PARENT: 상위 리소스(organizations, folders, projects)입니다.
  • PARENT_ID: 상위 조직, 폴더 또는 프로젝트의 ID
  • LOCATION: 발견 사항을 숨기거나 숨기기 해제하려는 Security Command Center 위치입니다. 데이터 레지던시가 사용 설정된 경우 eu, sa, us를 사용하고, 그렇지 않으면 global 값을 사용합니다.
  • FILTER: 발견 사항을 필터링하기 위해 정의하는 표현식입니다.

    예를 들어 internal-test 프로젝트에서 심각도가 낮은 기존의 모든 OPEN_FIREWALLPUBLIC_IP_ADDRESS 발견 사항을 숨기려면 "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"" 필터를 사용할 수 있습니다.

  • MUTE_STATE: 발견 사항이 숨겨졌는지 여부를 나타내는 값입니다. 유효한 값은 MUTED 또는 UNDEFINED입니다. 이 값은 기본적으로 MUTED로 설정됩니다. 여러 기존 발견 사항의 숨기기 상태를 재설정하는 경우에만 이 값을 UNDEFINED로 설정합니다.

선택한 리소스에 있는 모든 기존 발견 사항 그리고 필터와 정확하게 일치하는 발견 사항이 숨겨집니다. 발견 사항의 mute 속성은 MUTED로 설정됩니다.

발견 사항을 숨겨도 발견 사항 상태가 변경되지 않습니다. 활성 발견 사항을 숨기면 발견 사항이 숨겨지더라도 기본 취약점, 잘못된 구성, 위협이 해결될 때까지 활성 상태로 유지됩니다.

Google Cloud 콘솔에서 숨겨진 발견 사항 보기

발견 사항 쿼리를 수정하여 mute="MUTED" 속성 값이 포함된 발견 사항을 선택하면 Google Cloud 콘솔에서 숨겨진 발견 사항을 볼 수 있습니다.

예를 들어 다음 발견 사항 쿼리는 숨겨진 활성 발견 사항만 표시합니다.

state="ACTIVE"
AND mute="MUTED"

숨김 및 숨기기 취소된 모든 활성 발견 사항을 표시하려면 쿼리에서 mute 속성을 완전히 생략합니다.

state="ACTIVE"

기본적으로 Google Cloud 콘솔의 발견 사항 쿼리는 숨겨지지 않은 발견 사항만 표시합니다.

제외 규칙 유형으로 숨겨진 발견 사항 보기

다음 섹션에서는 제외 규칙 유형별로 활성 발견 사항을 쿼리하는 방법을 설명합니다.

특정 발견 사항 나열에 대한 자세한 내용은 발견 사항 필터링을 참조하세요.

정적 숨기기 규칙으로 숨겨진 발견 사항 쿼리

지정된 시간 후 정적 숨기기 규칙에 의해 숨겨진 활성 발견 사항을 표시하려면 다음 쿼리를 사용하고 muteInitiator 속성을 검사하여 발견 사항이 정적 숨기기 규칙에 의해 숨겨졌는지 확인합니다.

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

TIMESTAMP를 쿼리하려는 기간의 시작 시점을 나타내는 날짜/시간 문자열로 바꿉니다. 시간 형식에 대한 자세한 내용은 gcloud topic datetimes를 참고하세요.

동적 숨기기 규칙으로 숨겨진 발견 사항 쿼리

지정된 시간 후에 동적 제외 규칙에 의해 숨겨진 활성 발견 사항을 표시하려면 다음 쿼리를 사용합니다.

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

다음을 바꿉니다.

  • TIMESTAMP: 쿼리하려는 기간의 시작 시점을 나타내는 날짜/시간 문자열입니다. 시간 형식에 관한 자세한 내용은 gcloud topic datetimes을 참고하세요.
  • PARENT_ID: organizations/123, folders/456 또는 projects/789 형식으로 지정된 상위 조직, 폴더 또는 프로젝트의 ID입니다.
  • CONFIG_ID: 제외 규칙 이름입니다. ID는 영숫자 문자와 하이픈을 사용해야 하며 1~63자(영문 기준) 사이여야 합니다.

발견 사항 쿼리 수정 방법에 대한 자세한 내용은 대시보드에서 발견 사항 쿼리 만들기 또는 수정을 참조하세요.

숨겨진 발견 사항에 대한 알림 및 내보내기 중지

발견 사항 알림을 사용 설정하면 알림 필터와 일치하는 새 숨겨진 발견 사항이나 업데이트된 숨겨진 발견 사항을 계속 Pub/Sub로 내보냅니다.

숨겨진 발견 사항에 대해 내보내기 및 알림을 중지하려면 mute 속성을 사용하여 NotificationConfig 필터로 숨겨진 발견 사항을 제외해야 합니다. 예를 들어 다음 필터는 숨겨지지 않았거나 숨기기 속성이 설정되지 않은 활성 발견 사항에 대해서만 알림을 전송합니다.

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