이 가이드에서는 Security Command Center API를 사용하여 보안 표시를 관리하는 방법을 설명합니다. 보안 표시(또는 '표시')는 Security Command Center에서 애셋 또는 발견 항목에 대한 맞춤설정 주석으로 이러한 객체에 고유한 비즈니스 컨텍스트를 추가할 수 있습니다.
Security Command Center에서 지원되는 애셋에서만 보안 표시를 추가하거나 업데이트할 수 있습니다. Security Command Center가 지원하는 애셋 목록은 Security Command Center의 지원되는 애셋 유형을 참조하세요.
시작하기 전에
보안 표시로 작업하려면 먼저 서비스 계정 및 SDK를 설정해야 합니다.
보안 표시를 추가하거나 변경하려면 사용하려는 표시 종류에 대한 권한이 포함된 Identity and Access Management 역할이 있어야 합니다.
- 애셋 마크: 애셋 보안 표시 작성자,
securitycenter.assetSecurityMarksWriter
- 발견 항목: 발견 항목 보안 표시 작성자,
securitycenter.findingSecurityMarksWriter
Security Command Center에서 IAM 역할에 대한 자세한 내용은 액세스 제어를 참조하세요. 보안 표시를 효율적으로 사용하는 방법은 Security Command Center 보안 표시 사용을 참조하세요.
애셋에 보안 표시 추가 또는 업데이트
Security Command Center API를 사용할 때 보안 표시 추가 및 업데이트는 동일한 작업입니다. 아래 예시는 두 개의 키-값 쌍 (key_a, value_a)
및 (key_b, value_b)
에 보안 표시를 추가하는 방법을 보여줍니다.
다음 코드는 필드 마스크를 사용하여 해당 값만 업데이트되도록 합니다. 필드 마스크가 제공되지 않으면 지정된 키와 값을 추가하기 전에 모든 보안 표시가 지워집니다.
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=value_a,key_b=value_b" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc assets update-marks --help
Python
자바
Go
Node.js
Security Health Analytics 감지기의 전용 애셋 표시 방법은 정책 관리를 참조하세요.
애셋의 보안 표시 삭제
특정 보안 표시를 삭제하는 것은 이를 추가 또는 업데이트할 때와 비슷한 방식으로 실행되며 특히 필드 마스크를 사용하여 업데이트를 호출하는 방식과 비슷하지만 해당하는 값은 없습니다. 아래 예시에서는 key_a
와 key_b
키가 있는 보안 표시가 삭제됩니다.
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --update-mask $UPDATE_MASK
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc assets update-marks --help
Python
자바
Go
Node.js
동일한 요청에서 보안 표시 추가 및 삭제
보안 표시를 추가 및 업데이트하고 보안 표시를 삭제하는 기법은 동일한 요청으로 결합할 수 있습니다. 아래 예시에서 key_b
가 삭제되는 동안 key_a
이 업데이트됩니다.
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=new_value_for_a" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc assets update-marks --help
gcloud
# ORGANIZATION=12344321 # ASSET=43211234 SECURITY_MARKS="key_a=new_value_for_a" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc assets update-marks $ASSET \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc assets update-marks --help
Python
자바
Go
Node.js
발견 항목에 보안 표시 추가
발견 항목의 보안 표시 추가, 업데이트, 삭제는 애셋에 보안 표시를 업데이트하는 프로세스와 동일합니다. 유일하게 변경되는 사항은 API 호출에 사용된 리소스의 이름입니다. 애셋 리소스 대신 발견 항목 리소스 이름을 제공합니다.
예를 들어 발견 항목의 보안 표시를 업데이트하려면 다음 코드를 사용합니다.
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 # FINDING_ID=testfindingid SECURITY_MARKS="key_a=value_a,key_b=value_b" UPDATE_MASK="marks.key_a,marks.key_b" gcloud scc findings update-marks $FINDING_ID \ --source $SOURCE \ --organization $ORGANIZATION \ --security-marks $SECURITY_MARKS \ --update-mask $UPDATE_MASK
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc findings update-marks --help
Python
자바
Go
Node.js
보안 표시는 일괄 스캔 중에 처리되며 실시간이 아니라 매일 두 번 실행됩니다. 보안 표시가 처리되고 발견 항목을 해결하거나 다시 여는 시정 조치 정책이 적용되기까지 12~24시간의 지연이 발생할 수 있습니다.
보안 표시 필터가 있는 애셋 나열
애셋에 보안 표시가 설정되면 ListAssets
API 호출의 필터 인수에서 사용할 수 있습니다. 예를 들어 key_a = value_a
가 있는 모든 애셋을 쿼리하려면 다음 코드를 사용합니다.
gcloud
# ORGANIZATION=12344321 FILTER="security_marks.marks.key_a = \"value_a\"" gcloud scc assets list $ORGANIZATION \ --filter "$FILTER"
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc assets list --help
Python
자바
Go
Node.js
보안 표시 필터를 사용하여 발견 항목 나열
발견 항목에 보안 표시가 설정되면 ListFindings
API 호출의 필터 인수에서 사용할 수 있습니다. 예를 들어 key_a != value_a
가 있는 모든 애셋을 쿼리하려면 다음 코드를 사용합니다.
gcloud
# ORGANIZATION=12344321 # SOURCE=43211234 FILTER="NOT security_marks.marks.key_a=\"value_a\"" gcloud scc findings list $ORGANIZATION \ --source $SOURCE \ --filter "$FILTER"
더 많은 예시를 보려면 다음을 실행하세요.
gcloud scc findings list --help