이 가이드에서는 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
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
다음을 바꿉니다.
ASSET_ID
: 업데이트할 애셋입니다.PARENT
: 애셋이 있는 리소스 계층 구조의 수준입니다.organization
,folder
또는project
를 사용합니다.PARENT_ID
: 상위 조직, 폴더 또는 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.LOCATION
: 데이터 상주가 사용 설정된 경우 저작물의 보안 마크를 업데이트할 Security Command Center 위치입니다. 데이터 상주가 사용 설정되지 않았으면global
값을 사용합니다.SECURITY_MARKS
: 보안 마크 및 값을 나타내는 쉼표로 구분된 키-값 쌍입니다(예:key_a=value_a,key_b=value_b
).UPDATE_MASK
: 애셋에 대해 업데이트할 보안 표시 필드의 쉼표로 구분된 목록입니다(예:marks.key_a,marks.key_b
).
Go
Python
Security Health Analytics 감지기의 전용 애셋 표시 방법은 정책 관리를 참조하세요.
애셋의 보안 표시 삭제
특정 보안 표시를 삭제하는 것은 이를 추가 또는 업데이트할 때와 비슷한 방식으로 실행되며 특히 필드 마스크를 사용하여 업데이트를 호출하는 방식과 비슷하지만 해당하는 값은 없습니다. 아래 예시에서는 key_a
와 key_b
키가 있는 보안 표시가 삭제됩니다.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: 업데이트할 애셋입니다.PARENT
: 애셋이 있는 리소스 계층 구조의 수준입니다.organization
,folder
또는project
를 사용합니다.PARENT_ID
: 상위 조직, 폴더 또는 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.LOCATION
: 데이터 상주가 사용 설정된 경우 저작물에서 보안 마크를 삭제할 Security Command Center 위치입니다. 데이터 상주가 사용 설정되지 않았으면global
값을 사용합니다.UPDATE_MASK
: 저작물에서 삭제할 보안 마크 필드의 쉼표로 구분된 목록입니다(예:marks.key_a,marks.key_b
).
Node.js
Python
동일한 요청에서 보안 표시 추가 및 삭제
보안 표시를 추가 및 업데이트하고 보안 표시를 삭제하는 기법은 동일한 요청으로 결합할 수 있습니다. 아래 예시에서 key_b
가 삭제되는 동안 key_a
이 업데이트됩니다.
gcloud
gcloud scc assets update-marks ASSET_ID \ --PARENT=PARENT_ID \ --location=LOCATION \ --update-mask=UPDATE_MASK
ASSET_ID
: 업데이트할 애셋입니다.PARENT
: 애셋이 있는 리소스 계층 구조의 수준입니다.organization
,folder
또는project
를 사용합니다.PARENT_ID
: 상위 조직, 폴더 또는 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.LOCATION
: 데이터 상주가 사용 설정된 경우 애셋의 보안 마크를 업데이트하고 삭제할 Security Command Center 위치입니다. 데이터 상주가 사용 설정되지 않은 경우global
값을 사용합니다.SECURITY_MARKS
: 업데이트하려는 보안 마크를 나타내는 쉼표로 구분된 키-값 쌍입니다(예:key_a=value_a
). 삭제하려는 보안 마크는 생략합니다.UPDATE_MASK
: 업데이트 또는 삭제할 보안 마크 필드의 쉼표로 구분된 목록입니다(예:marks.key_a,marks.key_b
).
Node.js
Python
발견 항목에 보안 표시 추가
발견 항목의 보안 표시 추가, 업데이트, 삭제는 애셋에 보안 표시를 업데이트하는 프로세스와 동일합니다. 유일하게 변경되는 사항은 API 호출에 사용된 리소스의 이름입니다. 애셋 리소스 대신 발견 항목 리소스 이름을 제공합니다.
예를 들어 발견 항목의 보안 표시를 업데이트하려면 다음 코드를 사용합니다.
gcloud
gcloud scc findings update-marks \ PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_NAME \ --security-marks=SECURITY_MARKS \ --update-mask=UPDATE_MASK
다음을 바꿉니다.
PARENT
: 발견 항목이 있는 리소스 계층 구조의 수준입니다.organizations
,folders
또는projects
를 사용합니다.PARENT_ID
: 상위 조직, 폴더 또는 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.SOURCE_ID
: 소스 ID입니다.LOCATION
: 데이터 상주가 사용 설정된 경우 발견 항목의 보안 마크를 업데이트할 Security Command Center 위치입니다. 데이터 상주가 사용 설정되지 않았으면global
값을 사용합니다.FINDING_NAME
: 업데이트할 발견 항목입니다.SECURITY_MARKS
: 보안 마크 및 값을 나타내는 쉼표로 구분된 키-값 쌍입니다(예:key_a=value_a,key_b=value_b
).UPDATE_MASK
: 애셋에 대해 업데이트할 보안 표시 필드의 쉼표로 구분된 목록입니다(예:marks.key_a,marks.key_b
).
자바
Node.js
Python
보안 표시는 일괄 스캔 중에 처리되며 실시간이 아니라 매일 두 번 실행됩니다. 보안 표시가 처리되고 발견 항목을 해결하거나 다시 여는 시정 조치 정책이 적용되기까지 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"
Go
자바
Node.js
Python
보안 표시 필터를 사용하여 발견 항목 나열
발견 항목에 보안 표시가 설정되면 ListFindings
API 호출의 필터 인수에서 사용할 수 있습니다. 예를 들어 key_a != value_a
가 있는 모든 애셋을 쿼리하려면 다음 코드를 사용합니다.
gcloud
gcloud scc findings list PARENT/PARENT_ID \ --location=LOCATION \ --source=SOURCE_ID \ --filter=FILTER
PARENT
: 발견 항목이 있는 리소스 계층 구조의 수준입니다.organizations
,folders
또는projects
를 사용합니다.PARENT_ID
: 상위 조직, 폴더 또는 프로젝트의 숫자 ID 또는 상위 프로젝트의 영숫자 ID입니다.LOCATION
: 데이터 상주가 사용 설정된 경우 발견 항목을 나열할 Security Command Center 위치입니다. 데이터 상주가 사용 설정되지 않았으면global
값을 사용합니다.SOURCE_ID
: 소스 ID입니다.FILTER
: 발견 항목에 적용할 필터입니다. 예를 들어 보안 표시key_a=value_a
가 있는 발견 항목을 제외하려면"NOT security_marks.marks.key_a=\"value_a\""
을 사용합니다.