VPC 서비스 제어를 구성합니다.

다음에서 지원:

이 가이드에서는 Google Security Operations에 VPC 서비스 제어를 구성하는 방법을 설명합니다.

VPC 서비스 제어를 사용하면 데이터 무단 반출을 방지하기 위해 서비스 경계를 설정할 수 있습니다. Google SecOps가 서비스 경계 외부의 리소스와 서비스에 액세스할 수 있도록 VPC 서비스 제어로 Google Security Operations를 구성합니다.

VPC 서비스 제어에 대한 자세한 내용은 VPC 서비스 제어 개요를 참조하세요. VPC 서비스 제어 지원 제품 표에서 Google Security Operations 항목을 참조할 수도 있습니다.

시작하기 전에

  • 조직 수준에서 VPC 서비스 제어를 구성하는 데 필요한 역할이 있는지 확인합니다.
  • VPC 서비스 제어와 함께 Google SecOps를 사용하려면 VPC 서비스 제어 규정 준수 기능만 사용할 수 있습니다. 다음은 VPC 서비스 제어 규정 준수 기능을 보여줍니다.

    • VPC 서비스 제어가 적용된 Google SecOps는 Google Cloud ID 인증, 서드 파티 ID 공급업체, 직원 ID 제휴만 지원합니다.
    • Google SecOps에서 VPC 서비스 제어를 사용하려면 Google SecOps 기능 RBAC를 사용 설정해야 합니다.
    • VPC 서비스 제어가 적용된 Google SecOps는 다음 공개 API만 지원합니다.

      • chronicle.googleapis.com
      • chronicleservicemanager.googleapis.com

      VPC 서비스 제어에 온보딩하려면 해당하는 모든 엔드포인트를 chronicle.googleapis.com API로 마이그레이션해야 합니다.

    • VPC 서비스 제어가 적용된 Google SecOps는 Google SecOps 통합 데이터 모델 (UDM) 데이터를 자체 관리형 BigQuery 프로젝트로 내보내거나 고급 BigQuery Export를 사용하는 경우에만 지원합니다.

    • VPC 서비스 제어는 Google SecOps 대시보드만 지원합니다.

    • v2 커넥터를 사용하는 GOOGLE_CLOUD_STORAGE_V2 소스 유형으로만 Cloud Storage 피드를 만들 수 있습니다.

    • Google SecOps가 VPC 서비스 제어 경계 내에서 제한된 경우 새 Pub/Sub 구독을 만들 때 Google SecOps에서는 Cloud Storage에 로그를 작성하고 CLOUD_PUB_SUB 피드 대신 GOOGLE_CLOUD_STORAGE_V2 또는 GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN을 사용해야 합니다.

  • 고객 관리 암호화 키 (CMEK)를 사용하는 Google SecOps 인스턴스의 경우 Cloud Key Management Service 프로젝트를 Google SecOps에 연결된 Google Cloud 프로젝트와 동일한 경계 내에 유지하거나 키를 Google SecOps에 연결된 Google Cloud 프로젝트 자체 내에 유지하는 것이 좋습니다.

  • 플랫폼의 SOAR 측에서 Google SecOps 인스턴스가 고객 관리 암호화 키 (CMEK)를 사용하는 경우 SOAR 인스턴스가 Google.com으로 마이그레이션되었는지 확인합니다.

  • Looker 또는 관리형 BigQuery Export와 같이 BigQuery로의 기존 SOAR 데이터 내보내기를 사용하는 경우 대신 Bring Your Own BigQuery (BYOBQ) 기능을 사용하는 것이 좋습니다. Looker 대시보드는 기존 기능이므로 대시보드를 대신 사용하는 것이 좋습니다. 기존 SOAR 데이터 내보내기를 BigQuery로 계속 사용하는 경우 VPC 서비스 제어 서비스 경계에서 전용 이그레스 규칙을 구성해야 합니다. SOAR_TENANT_PROJECT_ID 및 BQ_TLA_PROJECT_NUMBER와 같은 필수 규칙 및 프로젝트 정보를 가져오려면 고객 엔지니어 (CE)에게 문의하거나 지원 케이스를 엽니다.

제한사항

  • Google SecOps Chronicle API 엔드포인트 ImportPushLogs는 VPC 서비스 제어를 지원하지 않습니다. 하지만 ImportPushLogs 엔드포인트는 데이터를 Google SecOps 인스턴스로 푸시하는 데만 사용되고 데이터에 액세스하는 데는 사용되지 않으므로 이 제한사항으로 인해 데이터 무단 반출 위험이 발생하지 않습니다.

  • VPC 서비스 제어를 사용하는 Google SecOps는 Looker 대시보드를 지원하지 않습니다.

  • Google Cloud Pub/Sub는 Chronicle API 엔드포인트를 사용하여 로그를 수집하는 새 Pub/Sub 구독을 만드는 것을 지원하지 않습니다(VPC 서비스 제어 지원 제품 표의 Pub/Sub 항목). 하지만 기존 Pub/Sub 구독 (VPC 서비스 제어 경계 내로 Google Cloud 프로젝트를 이동하기 전에 생성됨)은 예상대로 로그를 계속 수집합니다.

  • VPC 서비스 제어를 사용하는 Google SecOps는 기존 클라우드 버킷 및 서드 파티 API 피드 커넥터를 지원하지 않습니다.

인그레스 및 이그레스 규칙 구성

서비스 경계 구성을 기반으로 인그레스 및 이그레스 규칙을 구성합니다. 자세한 내용은 서비스 경계 개요를 참조하세요.

VPC 서비스 제어에 문제가 발생하면 VPC 서비스 제어 위반 분석 도구를 사용하여 문제를 디버그하고 분석합니다. 자세한 내용은 위반 분석 도구에서 액세스 거부 진단을 참고하세요.

SOAR의 인그레스 규칙 구성

이 섹션에서는 플랫폼의 SOAR 측에 VPC 서비스 제어를 구성하는 방법을 설명합니다.

Google SecOps를 설정할 때 지정한 Google Cloud 사용자 계정에 대해 다음 인그레스 규칙을 구성합니다.

  - ingressFrom:
      identityType: ANY_SERVICE_ACCOUNT
      sources:
      - accessLevel: "*"
    ingressTo:
      operations:
      - serviceName: secretmanager.googleapis.com
        methodSelectors:
        - method: "*"
      resources:
      - projects/PROJECT_NUMBER

PROJECT_NUMBER를 Google SecOps에 연결된 Google Cloud 프로젝트 번호로 바꿉니다.

SIEM 규칙 구성

이 섹션에서는 플랫폼의 SIEM 측에 VPC 서비스 제어를 구성하는 방법을 설명합니다.

Cloud Storage 기반 V2 피드의 인그레스 및 이그레스 규칙

서비스 경계 구성을 기반으로 인그레스 및 이그레스 규칙을 구성합니다. 자세한 내용은 서비스 경계 개요를 참조하세요. 소스 Cloud Storage 버킷을 호스팅하는 Google Cloud 프로젝트 또는 Google SecOps에 연결된 Google Cloud 프로젝트 (BYOP)에서 VPC 서비스 제어가 사용 설정된 경우 경계 설정에 따라 필요한 인그레스 및 이그레스 규칙을 구성합니다.

케이스 소스 버킷 프로젝트 Google SecOps 연결 프로젝트 (BYOP) 소스 경계 규칙 BYOP 경계 규칙
케이스 1 경계 내 동일한 경계 내 없음 없음
케이스 2 CUSTOMER_SOURCE_PERIMETER 내 CUSTOMER_BYOP_PERIMETER (다른 경계) 규칙 A1 (인그레스) 및 규칙 A2 (이그레스) 규칙 B1 (이그레스)
케이스 3 CUSTOMER_SOURCE_PERIMETER 내 경계에 없음 규칙 A1 (인그레스) 및 규칙 A2 (이그레스) 없음
케이스 4 경계에 없음 CUSTOMER_BYOP_PERIMETER 내 없음 규칙 B1 (이그레스)

다음 인그레스 및 이그레스 규칙에서 이러한 자리표시자를 바꿉니다.

  • CUSTOMER_SOURCE_PROJECT_NUMBER: 소스 Cloud Storage 버킷을 호스팅하는 Google Cloud 프로젝트의 숫자 프로젝트 ID입니다.
  • CUSTOMER_SOURCE_PERIMETER: 소스 버킷 프로젝트를 보호하는 VPC-SC 경계입니다.
  • CUSTOMER_BYOP_PROJECT_NUMBER: Google SecOps에 연결된 Google Cloud 프로젝트 (BYOP)의 숫자 프로젝트 ID입니다.
  • CUSTOMER_BYOP_PERIMETER: BYOP 프로젝트를 보호하는 VPC-SC 경계입니다.
  • CHRONICLE_STS_SERVICE_AGENT: Cloud Storage V2 피드를 구성할 때 Google SecOps에 표시되는 Storage Transfer Service (STS) 서비스 계정입니다 (예: project-123456789@storage-transfer-service.).
A. 소스 버킷 프로젝트 경계 규칙 (CUSTOMER_SOURCE_PERIMETER)

앞의 표에 정의된 대로 사례 2 및 3에 이 규칙을 적용합니다.

규칙 A1: 인그레스 규칙
  {
    "ingressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ],
      "sources": [
        {
          "accessLevel": "*"
        }
      ]
    },
    "ingressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "*" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_SOURCE_PROJECT_NUMBER>"
      ]
    }
  }
규칙 A2: 이그레스 규칙
  {
    "egressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ]
    },
    "egressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "google.storage.objects.create" },
            { "method": "google.storage.objects.delete" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_BYOP_PROJECT_NUMBER>"
      ]
    }
  }
B. BYOP 프로젝트 경계 규칙 (CUSTOMER_BYOP_PERIMETER)

앞의 표에 정의된 대로 2번 및 4번 케이스에 이 규칙을 적용합니다.

규칙 B1: 이그레스 규칙
  {
    "egressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ]
    },
    "egressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "*" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_SOURCE_PROJECT_NUMBER>"
      ]
    }
  }

VPC 서비스 제어에 문제가 발생하면 VPC 서비스 제어 위반 분석 도구를 사용하여 문제를 디버그하고 분석합니다. 자세한 내용은 위반 분석 도구에서 액세스 거부 진단을 참고하세요.

고급 BigQuery Export의 인그레스 규칙

고급 BigQuery Export 기능을 사용하는 경우 Google SecOps를 설정할 때 지정한 Google Cloud 사용자 계정에 다음 규칙을 구성합니다.

    - ingressFrom:
      identities:
      - serviceAccount:malachite-bq-export-entity-graph-batch-adv-bq@
      - serviceAccount:malachite-customer-monitoring-exporter@
      sources:
      - accessLevel: "*"
    ingressTo:
      operations:
      - serviceName: bigquery.googleapis.com
        methodSelectors:
        - method: "*"
      resources:
      - projects/PROJECT_NUMBER

PROJECT_NUMBER를 Google SecOps에 연결된 Google Cloud 프로젝트 번호로 바꿉니다.

데이터 테이블의 인그레스 규칙

데이터 테이블을 사용하는 경우 Google SecOps를 설정할 때 지정한 Google Cloud 사용자 계정에 대해 다음 규칙을 구성합니다.

  - ingressFrom:
      identities:
      - user:malachite-data-plane-api@prod.google.com
      sources:
      - accessLevel: "*"
    ingressTo:
      operations:
      - serviceName: storage.googleapis.com
        methodSelectors:
        - method: "*"
      resources:
      - projects/PROJECT_NUMBER

PROJECT_NUMBER를 Google SecOps에 연결된 Google Cloud 프로젝트 번호로 바꿉니다.

Security Command Center를 사용하여 Google SecOps 규칙 구성

이 섹션에서는 Security Command Center를 사용하여 Google SecOps에 VPC 서비스 제어를 구성하는 방법을 설명합니다.

다음 규칙의 서비스 계정은 Google SecOps 프로비저닝 중에만 생성되므로 프로비저닝 후 Security Command Center를 사용하기 전에 Security Command Center 규칙을 구성해야 합니다.

Google SecOps를 설정할 때 지정한 Google Cloud 사용자 계정에 대해 다음 작업을 완료합니다.

  1. 다음 인그레스 규칙을 구성합니다.

    - ingressFrom:
        identities:
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-chronicle-soar.
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@security-center-api.
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-csc-hpsa.
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-asm-hpsa.
        sources:
        - accessLevel: "*"
      ingressTo:
        operations:
        - serviceName: chronicle.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: securitycenter.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: compute.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: cloudasset.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: monitoring.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: iam.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: orgpolicy.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: serviceusage.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: dns.googleapis.com
          methodSelectors:
          - method: "*"
        resources:
        - projects/PROJECT_NUMBER
    

    다음을 바꿉니다.

    • GOOGLE_ORGANIZATION_NUMBER: Google Cloud 조직 번호입니다.
    • PROJECT_NUMBER: Google SecOps에 연결된 Google Cloud 프로젝트 번호
  2. 다음 이그레스 규칙을 구성합니다.

    - egressTo:
        operations:
        - serviceName: pubsub.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: securitycenter.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: cloudasset.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: iam.googleapis.com
          methodSelectors:
          - method: "*"
        - serviceName: compute.googleapis.com
          methodSelectors:
          - method: "*"
        resources:
        - "*"
      egressFrom:
        identities:
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-chronicle-soar.
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@security-center-api.
        sources:
        - resource: projects/PROJECT_NUMBER
    

    다음을 바꿉니다.

    • GOOGLE_ORGANIZATION_NUMBER: Google Cloud 조직 번호입니다.
    • PROJECT_NUMBER: Google SecOps에 연결된 Google Cloud 프로젝트 번호

고객 관리 암호화 키 (CMEK)의 인그레스 규칙 구성

이 섹션에서는 고객 관리 암호화 키 (CMEK)를 사용하여 Google SecOps에 VPC 서비스 제어를 구성하는 방법을 설명합니다. CMEK는 사용자가 소유하고 Cloud Key Management Service에서 관리 및 저장하는 암호화 키입니다.

다음 인그레스 규칙을 구성합니다.

  - ingressFrom:
    identities:
    - serviceAccount: service-SECRET_MANAGER_PROJECT_NUMBER@gcp-sa-secretmanager.
    - serviceAccount: service-GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER@gs-project-accounts.
    - serviceAccount: bq-GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER@bigquery-encryption.
      sources:
      - accessLevel: "*"
    ingressTo:
      operations:
      - serviceName: secretmanager.googleapis.com
        methodSelectors:
        - method: "*"
      - serviceName: cloudkms.googleapis.com
        methodSelectors:
        - method: "*"
      resources:
      - projects/CMEK_PROJECT_NUMBER

다음을 바꿉니다.

  • SECRET_MANAGER_PROJECT_NUMBER: Google에서 일부 수집 기능의 보안 비밀을 저장하는 데 사용하는 프로젝트로, Google SecOps 담당자에게 문의하여 확인할 수 있습니다.
  • GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER: Google에서 일부 내보내기 기능의 BigQuery 리소스를 저장하는 데 사용하는 프로젝트로, Google SecOps 담당자에게 문의하여 확인할 수 있습니다.
  • CMEK_PROJECT_NUMBER: CMEK를 저장하는 프로젝트 번호