Configurez VPC Service Controls

Compatible avec :

Ce guide explique comment configurer VPC Service Controls pour Google Security Operations.

VPC Service Controls vous permet de configurer un périmètre de service pour vous protéger contre l'exfiltration de données. Configurez Google Security Operations avec VPC Service Controls pour que Google SecOps puisse accéder aux ressources et aux services situés en dehors de son périmètre de service.

Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls. Vous pouvez également consulter l'entrée Google Security Operations dans le tableau des produits compatibles avec VPC Service Controls.

Avant de commencer

  • Assurez-vous de disposer des rôles requis pour configurer VPC Service Controls au niveau de l'organisation.
  • Pour utiliser Google SecOps avec VPC Service Controls, vous ne pouvez utiliser que des fonctionnalités compatibles avec VPC Service Controls. Voici la liste des fonctionnalités compatibles avec VPC Service Controls :

    • Google SecOps avec VPC Service Controls n'est compatible qu'avec l'authentification Google Cloud Identity, les fournisseurs d'identité tiers et la fédération des identités des employés.
    • La fonctionnalité RBAC de Google SecOps doit être activée pour utiliser VPC Service Controls avec Google SecOps.
    • Google SecOps avec VPC Service Controls n'est compatible qu'avec les API publiques suivantes :

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

      Pour intégrer VPC Service Controls, vous devez migrer tous les points de terminaison correspondants vers l'API chronicle.googleapis.com.

    • Google SecOps avec VPC Service Controls n'est compatible qu'avec l'exportation des données du modèle de données unifié (UDM) Google SecOps vers un projet BigQuery autogéré ou à l'aide de l'exportation BigQuery avancée.

    • VPC Service Controls n'est compatible qu'avec les tableaux de bord Google SecOps.

    • Vous ne pouvez créer des flux Cloud Storage qu'avec le type de source GOOGLE_CLOUD_STORAGE_V2 à l'aide de connecteurs v2.

    • Lorsque vous créez des abonnements Pub/Sub alors que Google SecOps est limité à un périmètre VPC Service Controls, Google SecOps vous oblige à écrire les journaux dans Cloud Storage et à utiliser GOOGLE_CLOUD_STORAGE_V2 ou GOOGLE_CLOUD_STORAGE_EVENT_DRIVEN au lieu de vos flux CLOUD_PUB_SUB.

  • Pour une instance Google SecOps utilisant des clés de chiffrement gérées par le client (CMEK), Google vous recommande vivement de conserver votre projet Cloud Key Management Service dans le même périmètre que votre projet Google Cloud associé à Google SecOps ou de conserver vos clés dans le projet Google Cloud associé à Google SecOps lui-même.

  • Pour la partie SOAR de la plate-forme, si votre instance Google SecOps utilise des clés de chiffrement gérées par le client (CMEK), vérifiez que votre instance SOAR est migrée vers Google.com.

  • Si vous utilisez des exportations de données SOAR anciennes vers BigQuery, par exemple pour Looker ou Managed BigQuery Export, Google vous recommande d'utiliser plutôt la fonctionnalité Bring Your Own BigQuery (BYOBQ). Les tableaux de bord Looker étant une ancienne fonctionnalité, Google vous recommande également d'utiliser les tableaux de bord à la place. Si vous continuez à utiliser les anciennes exportations de données SOAR vers BigQuery, vous devez configurer une règle de sortie dédiée dans votre périmètre de service VPC Service Controls. Pour obtenir les informations requises sur la règle et le projet, telles que SOAR_TENANT_PROJECT_ID et BQ_TLA_PROJECT_NUMBER, contactez votre ingénieur client ou ouvrez une demande d'assistance.

Limites

  • Le point de terminaison de l'API Google SecOps Chronicle ImportPushLogs n'est pas compatible avec VPC Service Controls. Toutefois, cette limite ne présente pas de risque d'exfiltration de données, car le point de terminaison ImportPushLogs n'est utilisé que pour transférer des données vers une instance Google SecOps, et non pour y accéder.

  • Google SecOps avec VPC Service Controls n'est pas compatible avec les tableaux de bord Looker.

  • Google Cloud Pub/Sub ne permet pas de créer un abonnement Pub/Sub qui utilise les points de terminaison de l'API Chronicle pour ingérer des journaux (entrée Pub/Sub dans le tableau des produits compatibles avec VPC Service Controls). Toutefois, tous les abonnements Pub/Sub existants (créés avant de déplacer le projet Google Cloud dans le périmètre VPC Service Controls) continueront d'ingérer les journaux comme prévu.

  • Google SecOps avec VPC Service Controls n'est pas compatible avec les anciens connecteurs de flux d'API tiers et de buckets cloud.

Configurer les règles d'entrée et de sortie

Configurez des règles d'entrée et de sortie en fonction de la configuration du périmètre de service. Pour en savoir plus, consultez Présentation des périmètres de service.

Si vous rencontrez des problèmes avec VPC Service Controls, utilisez l'analyseur de cas de non-conformité de VPC Service Controls pour les déboguer et les analyser. Pour en savoir plus, consultez Diagnostiquer un refus d'accès dans l'analyseur des cas de non-respect.

Configurer la règle d'entrée pour SOAR

Cette section explique comment configurer VPC Service Controls pour le côté SOAR de la plate-forme.

Configurez la règle d'entrée suivante pour le compte utilisateur Google Cloud que vous avez spécifié lors de la configuration de Google SecOps :

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

Remplacez PROJECT_NUMBER par le numéro de votre projet Google Cloud associé à Google SecOps.

Configurer les règles pour la solution SIEM

Cette section explique comment configurer VPC Service Controls pour le côté SIEM de la plate-forme.

Règles d'Ingress et de sortie pour les flux V2 basés sur Cloud Storage

Configurez des règles d'entrée et de sortie en fonction de la configuration du périmètre de service. Pour en savoir plus, consultez Présentation des périmètres de service. Si VPC Service Controls est activé sur le projet Google Cloud qui héberge votre bucket Cloud Storage source ou sur votre projet Google Cloud associé à Google SecOps (BYOP), configurez les règles d'entrée et de sortie requises en fonction de la configuration de votre périmètre :

Cas Projet du bucket source Projet associé à Google SecOps (BYOP) Règles pour le périmètre source Règles pour le périmètre BYOP
Cas 1 Dans un périmètre Dans le même périmètre Aucun Aucun
Cas 2 Dans CUSTOMER_SOURCE_PERIMETER Dans CUSTOMER_BYOP_PERIMETER (périmètre différent) Règle A1 (Ingress) et règle A2 (sortie) Règle B1 (sortie)
Cas 3 Dans CUSTOMER_SOURCE_PERIMETER Pas dans un périmètre Règle A1 (Ingress) et règle A2 (sortie) Aucun
Cas 4 Pas dans un périmètre Dans CUSTOMER_BYOP_PERIMETER Aucun Règle B1 (sortie)

Remplacez ces espaces réservés dans les règles d'entrée et de sortie suivantes :

  • CUSTOMER_SOURCE_PROJECT_NUMBER : ID du projet numérique du projet Google Cloud qui héberge le bucket Cloud Storage source.
  • CUSTOMER_SOURCE_PERIMETER : périmètre VPC-SC protégeant le projet du bucket source.
  • CUSTOMER_BYOP_PROJECT_NUMBER : ID numérique de votre projet Google Cloud associé à Google SecOps (BYOP).
  • CUSTOMER_BYOP_PERIMETER : périmètre VPC-SC protégeant votre projet BYOP.
  • CHRONICLE_STS_SERVICE_AGENT : compte de service du Service de transfert de stockage (STS) affiché dans Google SecOps lors de la configuration du flux Cloud Storage V2 (par exemple, project-123456789@storage-transfer-service.).
A. Règles pour le périmètre du projet du bucket source (CUSTOMER_SOURCE_PERIMETER)

Appliquez ces règles pour les cas deux et trois, comme défini dans le tableau précédent.

Règle A1 : règle dIngress
  {
    "ingressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ],
      "sources": [
        {
          "accessLevel": "*"
        }
      ]
    },
    "ingressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "*" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_SOURCE_PROJECT_NUMBER>"
      ]
    }
  }
Règle A2 : règle de sortie
  {
    "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. Règles pour le périmètre du projet BYOP (CUSTOMER_BYOP_PERIMETER)

Appliquez cette règle pour les cas deux et quatre, tels que définis dans le tableau précédent.

Règle B1 : règle de sortie
  {
    "egressFrom": {
      "identities": [
        "serviceAccount:<CHRONICLE_STS_SERVICE_AGENT>"
      ]
    },
    "egressTo": {
      "operations": [
        {
          "serviceName": "storage.googleapis.com",
          "methodSelectors": [
            { "method": "*" }
          ]
        }
      ],
      "resources": [
        "projects/<CUSTOMER_SOURCE_PROJECT_NUMBER>"
      ]
    }
  }

Si vous rencontrez des problèmes avec VPC Service Controls, utilisez l'analyseur de cas de non-conformité de VPC Service Controls pour les déboguer et les analyser. Pour en savoir plus, consultez Diagnostiquer un refus d'accès dans l'analyseur des cas de non-respect.

Règle d'Ingress pour l'exportation BigQuery avancée

Si vous utilisez la fonctionnalité BigQuery Export avancée, configurez la règle suivante pour le compte utilisateur Google Cloud que vous avez spécifié lors de la configuration de Google SecOps :

    - 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

Remplacez PROJECT_NUMBER par le numéro de votre projet Google Cloud associé à Google SecOps.

Règle d'Ingress pour les tables de données

Si vous utilisez des tables de données, configurez la règle suivante pour le compte utilisateur Google Cloud que vous avez spécifié lors de la configuration de Google SecOps :

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

Remplacez PROJECT_NUMBER par le numéro de votre projet Google Cloud associé à Google SecOps.

Configurer les règles pour Google SecOps avec Security Command Center

Cette section explique comment configurer VPC Service Controls pour Google SecOps avec Security Command Center.

Les comptes de service des règles suivantes ne sont créés que lors du provisionnement de Google SecOps. Vous devez donc configurer les règles Security Command Center après le provisionnement, mais avant de commencer à utiliser Security Command Center.

Effectuez les tâches suivantes pour le compte utilisateur Google Cloud que vous avez spécifié lors de la configuration de Google SecOps :

  1. Configurez la règle d'entrée suivante :

    - 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
    

    Remplacez les éléments suivants :

    • GOOGLE_ORGANIZATION_NUMBER : numéro de votre organisation Google Cloud
    • PROJECT_NUMBER : numéro de votre projet Google Cloud associé à Google SecOps
  2. Configurez la règle de sortie suivante :

    - 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
    

    Remplacez les éléments suivants :

    • GOOGLE_ORGANIZATION_NUMBER : numéro de votre organisation Google Cloud
    • PROJECT_NUMBER : numéro de votre projet Google Cloud associé à Google SecOps

Configurer la règle d'entrée pour les clés de chiffrement gérées par le client (CMEK)

Cette section explique comment configurer VPC Service Controls pour Google SecOps avec des clés de chiffrement gérées par le client (CMEK). Les CMEK sont des clés de chiffrement que vous possédez, gérez et stockez dans Cloud Key Management Service.

Configurez la règle d'entrée suivante :

  - 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

Remplacez les éléments suivants :

  • SECRET_MANAGER_PROJECT_NUMBER : projet que Google utilise pour stocker les secrets de certaines fonctionnalités d'ingestion, que vous pouvez obtenir auprès de votre représentant Google SecOps
  • GOOGLE_MANAGED_BIGQUERY_PROJECT_NUMBER : projet que Google utilise pour stocker les ressources BigQuery pour certaines fonctionnalités d'exportation, que vous pouvez obtenir auprès de votre représentant Google SecOps
  • CMEK_PROJECT_NUMBER : numéro du projet stockant les CMEK