Security Command Center와 Google SecOps 통합
이 문서에서는 Security Command Center를 Google Security Operations (Google SecOps)와 통합하는 방법을 설명합니다.
통합 버전: 13.0
시작하기 전에
통합을 사용하려면 맞춤 Identity and Access Management (IAM) 역할과 Google Cloud 서비스 계정이 필요합니다. 기존 서비스 계정을 사용하거나 새 계정을 만들 수 있습니다.
IAM 역할 만들기 및 구성
통합을 위한 커스텀 IAM 역할을 만들고 구성하려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 IAM 역할 페이지로 이동합니다.
역할 만들기를 클릭하여 통합에 필요한 권한이 있는 커스텀 역할을 만듭니다.
새 커스텀 역할의 경우 제목, 설명, 고유 ID를 입력합니다.
역할 출시 단계를 정식 버전으로 설정합니다.
생성된 역할에 다음 권한을 추가합니다.
securitycenter.assets.listsecuritycenter.findings.listsecuritycenter.findings.setMutesecuritycenter.findings.setState
API 키 만들기 및 구성
API 키를 만들려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 API 및 서비스 > 사용자 인증 정보 > 사용자 인증 정보 만들기로 이동합니다.
API 키를 선택합니다. 생성된 API 키가 포함된 대화상자가 표시됩니다. API 키를 복사하여 안전하게 저장합니다.
API 키의 API 제한을 구성하려면 다음 단계를 완료하세요.
키 제한 > API 제한사항 > 키 제한을 클릭합니다.
API 목록에서 Security Command Center API를 선택하고 해당 제한사항을 구성한 후 저장을 클릭합니다.
API 키에 대한 액세스 권한 부여
Security Command Center에 API 키 액세스 권한을 부여하려면 다음 단계를 완료하세요.
Google Cloud 콘솔에서 IAM 및 관리자 > 서비스 계정으로 이동합니다.
Security Command Center 통합에서 사용하는 서비스 계정을 선택합니다.
서비스 계정의 이메일 주소를 클릭합니다.
액세스 권한 부여를 선택합니다.
새 구성원 필드에 서비스 계정의 이메일 주소를 입력합니다.
보안 센터에서
Security Center Findings Editor역할을 선택하고 저장을 클릭합니다.
통합 매개변수
Security Command Center 통합에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 | 
|---|---|
API Root | 
   필수 항목입니다. Security Command Center 인스턴스의 API 루트입니다.  | 
  
Organization ID | 
   (선택사항) Security Command Center 통합에 사용할 조직 ID입니다.  | 
  
Project ID | 
    (선택사항) Security Command Center 인스턴스의 프로젝트 ID입니다.  | 
  
Quota Project ID | 
    (선택사항)  Google Cloud API 및 결제에 사용하는 Google Cloud 프로젝트 ID입니다. 이 매개변수를 사용하려면 서비스 계정에 
     이 매개변수의 값을 설정하지 않으면 통합에서 Google Cloud 서비스 계정에서 프로젝트 ID를 가져옵니다.  | 
  
User's Service Account | 
    필수 항목입니다. 서비스 계정 키 JSON 파일의 콘텐츠입니다. 이 매개변수 또는  이 매개변수를 구성하려면 서비스 계정을 만들 때 다운로드한 서비스 계정 키 JSON 파일의 전체 콘텐츠를 제공하세요.  | 
  
Workload Identity Email | 
    (선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는  이 매개변수를 설정하는 경우  워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에   | 
  
Verify SSL | 
    필수 항목입니다. 선택하면 Security Command Center 서버에 연결할 때 통합에서 SSL 인증서를 검증합니다. 기본적으로 선택되어 있습니다.  | 
  
Google SecOps에서 통합을 구성하는 방법에 대한 안내는 통합 구성을 참고하세요.
필요한 경우 이후 단계에서 변경할 수 있습니다. 통합 인스턴스를 구성한 후 플레이북에서 사용할 수 있습니다. 여러 인스턴스를 구성하고 지원하는 방법에 관한 자세한 내용은 여러 인스턴스 지원을 참고하세요.
작업
작업에 대한 자세한 내용은 내 Workdesk에서 대기 중인 작업에 응답 및 수동 작업 실행을 참고하세요.
발견 항목 세부정보 가져오기
발견 항목 세부정보 가져오기 작업을 사용하여 Security Command Center의 발견 항목에 관한 세부정보를 가져옵니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
발견 항목 세부정보 가져오기 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 | 
|---|---|
Finding Name | 
    필수 항목입니다. 세부정보를 반환할 이름 찾기 이 매개변수는 여러 값을 쉼표로 구분된 목록으로 허용합니다. 이름을 찾는 예는 다음과 같습니다. organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID | 
  
작업 출력
발견 항목 세부정보 가져오기 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 | 
|---|---|
| 케이스 월 연결 | 사용할 수 없음 | 
| 케이스 월 링크 | 사용할 수 없음 | 
| 케이스 월 테이블 | 사용 가능 | 
| 보강 테이블 | 사용할 수 없음 | 
| JSON 결과 | 사용 가능 | 
| 출력 메시지 | 사용 가능 | 
| 스크립트 결과 | 사용 가능 | 
케이스 월 테이블
발견 항목 세부정보 가져오기 작업은 다음 표를 반환할 수 있습니다.
표 제목: 발견 항목 세부정보
표 열:
- 카테고리
 - 상태
 - 심각도
 - 유형
 
JSON 결과
다음 예는 Get Finding Details 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
출력 메시지
발견 항목 세부정보 가져오기 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 | 
|---|---|
 
 
  | 
      작업이 완료되었습니다. | 
Error executing action "Get Finding Details". Reason: ERROR_REASON | 
      작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다.  | 
    
스크립트 결과
다음 표에는 발견 세부정보 가져오기 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 | 
|---|---|
is_success | 
      True 또는 False | 
    
애셋 취약점 나열
애셋 취약점 목록 작업을 사용하여 Security Command Center의 항목과 관련된 취약점을 나열합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
애셋 취약점 목록 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 | 
|---|---|
Asset Resource Names | 
    필수 항목입니다. 데이터를 반환할 애셋의 리소스 이름입니다. 이 매개변수는 여러 값을 쉼표로 구분된 목록으로 허용합니다.  | 
  
Timeframe | 
    (선택사항) 취약점 또는 잘못된 구성을 검색할 기간입니다. 가능한 값은 다음과 같습니다. 
 기본값은   | 
  
Record Types | 
    (선택사항) 반환할 레코드 유형입니다. 가능한 값은 다음과 같습니다. 
 기본값은   | 
  
Output Type | 
    (선택사항) 모든 애셋의 JSON 결과에 반환할 출력 유형입니다. 가능한 값은 다음과 같습니다. 
 기본값은   | 
  
Max Records To Return | 
    (선택사항) 레코드 유형별로 반환할 최대 레코드 수입니다. 기본값은   | 
  
작업 출력
애셋 취약점 나열 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 | 
|---|---|
| 케이스 월 연결 | 사용할 수 없음 | 
| 케이스 월 링크 | 사용할 수 없음 | 
| 케이스 월 테이블 | 사용 가능 | 
| 보강 테이블 | 사용할 수 없음 | 
| JSON 결과 | 사용 가능 | 
| 출력 메시지 | 사용 가능 | 
| 스크립트 결과 | 사용 가능 | 
케이스 월 테이블
애셋 취약점 목록 작업은 다음 표를 반환할 수 있습니다.
표 제목: ASSET_ID 취약점
표 열:
- 카테고리
 - 설명
 - 심각도
 - 이벤트 시간
 - CVE
 
표 제목: ASSET_ID 잘못된 구성
표 열:
- 카테고리
 - 설명
 - 심각도
 - 이벤트 시간
 - 권장사항
 
JSON 결과
다음 예시에서는 애셋 취약점 목록 작업을 사용할 때 수신되는 JSON 결과 출력을 보여줍니다.
{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
출력 메시지
애셋 취약점 나열 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 | 
|---|---|
 
 
  | 
      작업이 완료되었습니다. | 
Error executing action "List Asset Vulnerabilities". Reason:
      ERROR_REASON | 
      작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다.  | 
    
스크립트 결과
다음 표에는 List Asset Vulnerabilities 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 | 
|---|---|
is_success | 
      True 또는 False | 
    
핑
Ping 작업을 사용하여 Security Command Center에 대한 연결을 테스트합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
없음
작업 출력
Ping 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 | 
|---|---|
| 케이스 월 연결 | 사용할 수 없음 | 
| 케이스 월 링크 | 사용할 수 없음 | 
| 케이스 월 테이블 | 사용할 수 없음 | 
| 보강 테이블 | 사용할 수 없음 | 
| JSON 결과 | 사용할 수 없음 | 
| 출력 메시지 | 사용 가능 | 
| 스크립트 결과 | 사용 가능 | 
출력 메시지
Ping 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 | 
|---|---|
Successfully connected to the Security Command Center server
      with the provided connection parameters! | 
      작업이 완료되었습니다. | 
Failed to connect to the Security Command Center server! Error
      is ERROR_REASON | 
      작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다.  | 
    
스크립트 결과
다음 표에는 Ping 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 | 
|---|---|
is_success | 
      True 또는 False | 
    
발견 항목 업데이트
발견 항목 업데이트 작업을 사용하여 Security Command Center에서 발견 항목을 업데이트합니다.
이 작업은 Google SecOps 항목에서 실행되지 않습니다.
작업 입력
결과 업데이트 작업에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 | 
|---|---|
Finding Name | 
    필수 항목입니다. 업데이트할 이름을 찾는 중입니다. 이 매개변수는 여러 값을 쉼표로 구분된 목록으로 허용합니다. 이름을 찾는 예는 다음과 같습니다.   | 
  
Mute Status | 
    (선택사항) 발견 항목의 숨기기 상태입니다. 가능한 값은 다음과 같습니다. 
  | 
  
State Status | 
    (선택사항) 발견 항목 상태입니다. 가능한 값은 다음과 같습니다. 
  | 
  
작업 출력
결과 업데이트 작업은 다음 출력을 제공합니다.
| 작업 출력 유형 | 가용성 | 
|---|---|
| 케이스 월 연결 | 사용할 수 없음 | 
| 케이스 월 링크 | 사용할 수 없음 | 
| 케이스 월 테이블 | 사용할 수 없음 | 
| 보강 테이블 | 사용할 수 없음 | 
| JSON 결과 | 사용할 수 없음 | 
| 출력 메시지 | 사용 가능 | 
| 스크립트 결과 | 사용 가능 | 
출력 메시지
발견 항목 업데이트 작업은 다음 출력 메시지를 반환할 수 있습니다.
| 출력 메시지 | 메시지 설명 | 
|---|---|
 
 
  | 
      작업이 완료되었습니다. | 
Error executing action "Update finding". Reason: ERROR_REASON | 
      작업이 실패했습니다. 서버, 입력 매개변수 또는 사용자 인증 정보에 대한 연결을 확인합니다.  | 
    
스크립트 결과
다음 표에는 결과 업데이트 작업을 사용할 때 스크립트 결과 출력 값이 나와 있습니다.
| 스크립트 결과 이름 | 값 | 
|---|---|
is_success | 
      True 또는 False | 
    
커넥터
Google SecOps에서 커넥터를 구성하는 방법에 관한 자세한 내용은 데이터 수집 (커넥터)을 참고하세요.
Google Security Command Center - 발견 항목 커넥터
Google Security Command Center - 발견 항목 커넥터를 사용하여 Security Command Center에서 발견 항목에 관한 정보를 가져옵니다.
동적 목록 필터는 카테고리와 함께 작동합니다.
커넥터 입력
Google Security Command Center - 발견 항목 커넥터에는 다음 매개변수가 필요합니다.
| 매개변수 | 설명 | 
|---|---|
Product Field Name | 
    필수 항목입니다. 제품 이름이 저장된 필드의 이름입니다. 제품 이름은 주로 매핑에 영향을 미칩니다. 커넥터의 매핑 프로세스를 간소화하고 개선하기 위해 기본값은 코드에서 참조되는 대체 값으로 확인됩니다. 이 매개변수의 잘못된 입력은 기본적으로 대체 값으로 처리됩니다. 기본값은   | 
  
Event Field Name | 
    필수 항목입니다. 이벤트 이름 (하위 유형)을 결정하는 필드의 이름입니다. 기본값은   | 
  
Environment Field Name | 
    (선택사항) 환경 이름이 저장된 필드의 이름입니다. 환경 필드가 누락된 경우 커넥터는 기본값을 사용합니다.  | 
  
Environment Regex Pattern | 
    (선택사항) 
 기본값  정규 표현식 패턴이 null이거나 비어 있거나 환경 값이 null인 경우 최종 환경 결과는 기본 환경입니다.  | 
  
Script Timeout (Seconds) | 
    필수 항목입니다. 현재 스크립트를 실행하는 Python 프로세스의 제한 시간 한도(초)입니다. 기본값은   | 
  
API Root | 
   필수 항목입니다. Security Command Center 인스턴스의 API 루트입니다. 기본값은   | 
  
Organization ID | 
   (선택사항) Security Command Center 통합에 사용할 조직의 ID입니다.  | 
  
Project ID | 
    (선택사항) Security Command Center 인스턴스의 프로젝트 ID입니다.  | 
  
Quota Project ID | 
    (선택사항)  Google Cloud API 및 결제에 사용하는 Google Cloud 프로젝트 ID입니다. 이 매개변수를 사용하려면 서비스 계정에 
     이 매개변수의 값을 설정하지 않으면 통합에서 Google Cloud 서비스 계정에서 프로젝트 ID를 가져옵니다.  | 
  
User's Service Account | 
    필수 항목입니다. 서비스 계정 키 JSON 파일의 콘텐츠입니다. 이 매개변수 또는  이 매개변수를 구성하려면 서비스 계정을 만들 때 다운로드한 서비스 계정 키 JSON 파일의 전체 콘텐츠를 제공하세요.  | 
  
Workload Identity Email | 
    (선택사항) 서비스 계정의 클라이언트 이메일 주소입니다. 이 매개변수 또는  이 매개변수를 설정하는 경우  워크로드 아이덴티티 제휴를 사용하여 서비스 계정을 가장하려면 서비스 계정에   | 
  
Finding Class Filter
     | 
    (선택사항) 커넥터가 처리할 발견 클래스입니다. 가능한 값은 다음과 같습니다. 
 값을 설정하지 않으면 커넥터가 모든 클래스의 발견 항목을 수집합니다. 기본값은   | 
  
Lowest Severity To Fetch | 
    (선택사항) 가져올 알림의 가장 낮은 심각도입니다. 이 매개변수를 구성하지 않으면 커넥터가 모든 심각도 수준의 알림을 수집합니다. 커넥터는 정의되지 않은 심각도의 알림을  가능한 값은 다음과 같습니다. 
 기본값은   | 
  
Max Hours Backwards | 
    (선택사항) 현재로부터 몇 시간 전의 발견 항목을 가져올지 나타냅니다. 이 매개변수는 커넥터를 처음 사용 설정한 후의 초기 커넥터 반복 또는 만료된 커넥터 타임스탬프의 대체 값에 적용될 수 있습니다. 최댓값은  기본값은   | 
  
Max Findings To Fetch
     | 
    (선택사항) 모든 커넥터 반복에서 처리할 발견 항목 수입니다. 최댓값은  기본값은   | 
  
Use dynamic list as a blacklist | 
    필수 항목입니다. 선택하면 커넥터가 동적 목록을 차단 목록으로 사용합니다. 기본적으로 선택되지 않습니다.  | 
  
Verify SSL
     | 
    필수 항목입니다. 선택하면 Security Command Center 서버에 연결할 때 통합에서 SSL 인증서를 검증합니다. 기본적으로 선택되지 않습니다.  | 
  
Proxy Server Address | 
    (선택사항) 사용할 프록시 서버의 주소입니다.  | 
  
Proxy Username | 
    (선택사항) 인증할 프록시 사용자 이름입니다.  | 
  
Proxy Password | 
    (선택사항) 인증할 프록시 비밀번호입니다.  | 
  
커넥터 규칙
Google Security Command Center - 발견 항목 커넥터는 프록시를 지원합니다.
도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가로부터 답변을 받으세요.