設定 VPC Service Controls

支援的服務:

本指南說明如何為 Google Security Operations 設定 VPC Service Controls。

VPC Service Controls 可讓您設定 service perimeter,防範資料遭竊。使用 VPC Service Controls 設定 Google Security Operations,讓 Google SecOps 存取 service perimeter 以外的資源和服務。

如要進一步瞭解 VPC Service Controls,請參閱「VPC Service Controls 總覽」。您也可以在 VPC Service Controls 支援的產品表格中,查看 Google Security Operations 項目。

事前準備

  • 確認您具備設定 VPC Service Controls 所需的角色 (組織層級)。
  • 如要搭配使用 Google SecOps 和 VPC Service Controls,您只能使用符合 VPC Service Controls 規範的功能。以下列出符合 VPC Service Controls 規範的功能:

    • Google SecOps 搭配 VPC Service Controls 時,僅支援 Google Cloud 身分驗證、第三方識別資訊提供者和員工身分聯盟。
    • 必須啟用 Google SecOps 功能 RBAC,才能搭配使用 VPC Service Controls 和 Google SecOps。
    • Google SecOps 搭配 VPC Service Controls 時,僅支援下列公開 API:

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

      如要啟用 VPC Service Controls,請務必將所有對應的端點遷移至 chronicle.googleapis.com API。

    • Google SecOps 搭配 VPC Service Controls 時,僅支援將 Google SecOps Unified Data Model (UDM) 資料匯出至自行管理的 BigQuery 專案,或使用進階 BigQuery Export。

    • VPC Service Controls 僅支援 Google SecOps 資訊主頁。

    • 使用第 2 版連接器時,只能建立 GOOGLE_CLOUD_STORAGE_V2 來源類型的 Cloud Storage 動態饋給。

    • 如果 Google SecOps 受到 VPC Service Controls perimeter 限制,當您建立新的 Pub/Sub 訂閱項目時,Google SecOps 會要求您將記錄寫入 Cloud Storage,並使用 GOOGLE_CLOUD_STORAGE_V2 或 GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN,而非 CLOUD_PUB_SUB 動態饋給。

  • 如果 Google SecOps 執行個體使用客戶自行管理的加密金鑰 (CMEK),強烈建議您將 Cloud Key Management Service 專案與連結 Google SecOps 的 Google Cloud 專案放在同一個 perimeter 內,或將金鑰放在連結 Google SecOps 的 Google Cloud 專案中。

  • 在平台的 SOAR 部分,如果 Google SecOps 執行個體使用客戶自行管理的加密金鑰 (CMEK),請確認 SOAR 執行個體已遷移至 Google.com。

  • 如果您使用舊版 SOAR 資料匯出至 BigQuery (例如 Looker 或代管 BigQuery 匯出),建議改用自備 BigQuery (BYOBQ) 功能。Looker 資訊主頁是舊版功能,因此 Google 也建議您改用資訊主頁。如果繼續使用舊版 SOAR 資料匯出至 BigQuery,則必須在 VPC Service Controls service perimeter 設定專屬輸出規則。如要取得必要的規則和專案資訊 (例如 SOAR_TENANT_PROJECT_ID 和 BQ_TLA_PROJECT_NUMBER),請與客戶工程師 (CE) 聯絡,或提交客服案件。

限制

  • Google SecOps Chronicle API 端點 ImportPushLogs 不支援 VPC Service Controls。不過,這項限制不會造成資料竊取風險,因為 ImportPushLogs 端點只會用於將資料推送至 Google SecOps 執行個體,而非存取資料。

  • Google SecOps 搭配 VPC Service Controls 時,不支援 Looker 資訊主頁。

  • Google Cloud Pub/Sub 不支援建立新的 Pub/Sub 訂閱項目,使用 Chronicle API 端點擷取記錄 (VPC Service Controls 支援產品表格中的 Pub/Sub 項目)。不過,任何現有的 Pub/Sub 訂閱項目 (在將 Google Cloud 專案移至 VPC Service Controls 範圍內之前建立) 都會繼續正常擷取記錄。

  • Google SecOps 搭配 VPC Service Controls 時,不支援舊版雲端 bucket 和第三方 API 資訊提供連接器。

設定輸入和輸出規則

根據 service perimeter 設定,設定輸入和輸出規則。詳情請參閱「service perimeter 總覽」。

如果遇到 VPC Service Controls 相關問題,請使用 VPC Service Controls 違規分析工具偵錯及分析問題。詳情請參閱「在違規分析工具中診斷存取遭拒問題」。

設定 SOAR 的輸入規則

本節說明如何為平台的 SOAR 端設定 VPC Service Controls。

為設定 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 Service Controls。

Cloud Storage 基礎 V2 動態饋給的輸入和輸出規則

根據 service perimeter 設定,設定輸入和輸出規則。詳情請參閱「Service perimeter 總覽」。如果託管來源 Cloud Storage bucket 的 Google Cloud 專案,或與 Google SecOps 連結的 Google Cloud 專案 (BYOP) 啟用了 VPC Service Controls,請根據 perimeter 設定,設定必要的輸入和輸出規則:

案件 來源 bucket 專案 連結 Google SecOps 的專案 (BYOP) 來源 perimeter 的規則 BYOP 範圍規則
案例一 在 perimeter 內 在「相同」範圍內 無 無
案例 2 在 CUSTOMER_SOURCE_PERIMETER 位於CUSTOMER_BYOP_PERIMETER (不同 perimeter) 規則 A1 (輸入) 和規則 A2 (輸出) 規則 B1 (輸出)
案例三 在 CUSTOMER_SOURCE_PERIMETER 不在 perimeter 內 規則 A1 (輸入) 和規則 A2 (輸出) 無
案例四 不在 perimeter 內 在 CUSTOMER_BYOP_PERIMETER 無 規則 B1 (輸出)

在下列輸入和輸出規則中,替換這些預留位置:

  • CUSTOMER_SOURCE_PROJECT_NUMBER:託管來源 Cloud Storage bucket 的 Google Cloud 專案 ID。
  • CUSTOMER_SOURCE_PERIMETER:保護來源 bucket 專案的 VPC-SC perimeter。
  • 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 移轉服務 (STS) 服務帳戶 (例如 project-123456789@storage-transfer-service.iam.gserviceaccount.com)。
A. 來源 bucket 專案 perimeter 的規則 (CUSTOMER_SOURCE_PERIMETER)

請按照上表定義,將這些規則套用至案例二和三。

規則 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 專案 perimeter 規則 (CUSTOMER_BYOP_PERIMETER)

請按照上表定義,將這項規則套用至情況二和四。

規則 B1:輸出規則
  {
    "egressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ]
    },
    "egressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "*" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_SOURCE_PROJECT_NUMBER>"
      ]
    }
  }

如果遇到 VPC Service Controls 相關問題,請使用 VPC Service Controls 違規分析工具偵錯及分析問題。詳情請參閱「在違規分析工具中診斷存取遭拒問題」。

進階 BigQuery Export 的輸入規則

如果您使用進階 BigQuery Export 功能,請為設定 Google SecOps 時指定的 Google Cloud 使用者帳戶設定下列規則:

    - ingressFrom:
      identities:
      - serviceAccount:malachite-bq-export-entity-graph-batch-adv-bq@system.gserviceaccount.com
      - serviceAccount:malachite-customer-monitoring-exporter@system.gserviceaccount.com
      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 專案編號。

設定 Google SecOps 搭配 Security Command Center 的規則

本節說明如何為 Google SecOps 設定 VPC Service Controls,並搭配 Security Command Center 使用。

下列規則中的服務帳戶只會在 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.iam.gserviceaccount.com
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@security-center-api.iam.gserviceaccount.com
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-csc-hpsa.iam.gserviceaccount.com
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@gcp-sa-asm-hpsa.iam.gserviceaccount.com
        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.iam.gserviceaccount.com
        - serviceAccount: service-org-GOOGLE_ORGANIZATION_NUMBER@security-center-api.iam.gserviceaccount.com
        sources:
        - resource: projects/PROJECT_NUMBER
    

    更改下列內容:

    • GOOGLE_ORGANIZATION_NUMBER:您的 Google Cloud 組織編號
    • PROJECT_NUMBER:與 Google SecOps 連結的 Google Cloud 專案編號

設定客戶自行管理的加密金鑰 (CMEK) 輸入規則

本節說明如何為 Google SecOps 設定 VPC Service Controls,並使用客戶自行管理的加密金鑰 (CMEK)。CMEK 是您在 Cloud Key Management Service 中擁有、管理及儲存的加密金鑰。

設定下列輸入規則:

  - ingressFrom:
    identities:
    - serviceAccount: service-SECRET_MANAGER_PROJECT_NUMBER@gcp-sa-secretmanager.iam.gserviceaccount.com
    - serviceAccount: service-GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com
    - serviceAccount: bq-GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER@bigquery-encryption.iam.gserviceaccount.com
      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 的專案編號