Aller au contenu principal

Limiter l'égresse réseau pour votre Workspace à l'aide d'un pare-feu

Cette page vous explique comment configurer les règles de pare-feu Virtual Private Cloud (VPC), les routes et le DNS privé pour restreindre la sortie réseau de votre Databricks Workspace sur Google Cloud aux services et destinations essentiels uniquement.

Avant de commencer, vous aurez besoin de :

  • Familiarité avec l'architecture Databricks. Voir Architecture de haut niveau.
  • Si vous prévoyez d'utiliser les commandes gcloud CLI, installez le SDK Google Cloud.
  • Vous devez disposer du rôle roles/iam.networkAdmin ou d'autorisations suffisantes.

Présentation de la configuration du pare-feu

Cette configuration utilise une approche de refus par default : bloquez tout le trafic sortant, puis autorisez sélectivement uniquement les connexions requises. La configuration comporte trois composants principaux :

  1. **Accès privé Google** : Permet aux VM d'atteindre Google Cloud Storage et d'autres services Google sur le réseau interne de Google. Cela permet à Databricks d'écrire des logs de workspace dans GCS sans nécessiter d'adresses IP publiques sur les nœuds de cluster.

  2. Routes Virtual Private Cloud (VPC) et DNS : acheminez le trafic de l'API Google via restricted.googleapis.com, qui fournit un accès uniquement aux services conformes aux VPC Service Controls. Cela empêche l'exfiltration de données vers des services Google non pris en charge.

  3. Règles de pare-feu pour les services Databricks : Autoriser le trafic sortant vers des endpoints spécifiques du plan de contrôle Databricks :

    • Plan de contrôle Databricks et ressources système gérées par Databricks
    • Communication intra-sous-réseau pour les fonctionnalités des clusters
    • Hive metastore hérité (port 3306), sauf si vous utilisez un Apache Hive metastore externe (hérité)
astuce

Les adresses IP du service du plan de contrôle varient selon la région. Gardez les adresses IP et les domaines des services et assets Databricks disponibles lorsque vous ajoutez des règles de pare-feu VPC. Vous aurez besoin des adresses IP et des ports régionaux pour votre workspace.

Configurer le pare-feu

Planifiez le dimensionnement de votre réseau Virtual Private Cloud (VPC)

Avant de créer votre Workspace, planifiez la taille de votre réseau pour garantir un espace IP suffisant pour vos workloads. La modification du sous-réseau après la création du workspace nécessite la mise à jour de la configuration réseau du workspace. Veuillez consulter Mettre à jour la configuration du réseau du Workspace.

Si le sous-réseau est trop petit, le workspace épuise son espace IP et provoque l'échec des jobs. Pour obtenir des conseils sur le dimensionnement de votre sous-réseau en fonction de la taille du cluster et du nombre de Workspace, consultez Dimensionnement du sous-réseau pour un nouveau Workspace.

Ajouter des règles de pare-feu Virtual Private Cloud (VPC)

Après avoir créé votre Workspace, configurez les règles de pare-feu pour implémenter le modèle de sécurité de refus par default. Remplacez les espaces réservés dans les commandes ci-dessous par vos valeurs spécifiques au Workspace :

Obtenez le nom de votre Virtual Private Cloud (VPC)

  1. Depuis la page du workspace de la console de compte, cliquez sur votre workspace pour le lancer.
  2. Copiez la partie numérique de l'URL après ?o=. Par exemple, si l'URL du workspace est https://1676665108650415.5.gcp.databricks.com/?o=1676665108650415#, l'ID du workspace est 1676665108650415.
  3. Votre nom Virtual Private Cloud (VPC) est databricks-managed-<workspace-ID>. Par exemple, databricks-managed-1676665108650415.

Alternativement, utilisez la page VPCs de la console Google Cloud pour visualiser et gérer les règles de pare-feu via l'interface utilisateur.

Bloquez toutes les sorties (refusées par default)

Veuillez créer une règle pour bloquer tout le trafic de sortie. Définissez la priorité sur 1 100 afin qu'elle s'applique après toutes les règles d'autorisation spécifiques (qui utilisent la priorité 1 000-1 099). Le blocage de tout le trafic sortant bloque également l'accès aux repository de packages publics, tels que pypi.org et Maven Central. Veuillez planifier cela avant d'activer une règle de refus général.

Bash
gcloud compute firewall-rules create deny-egress \
--action DENY \
--rules all \
--destination-ranges 0.0.0.0/0 \
--direction EGRESS \
--priority 1100 \
--network <vpc-name>
important

Set this rule's priority to 1100. Lower priority numbers are evaluated first, so setting a priority below your allow rules, 1000 or 1099, prevents Databricks from accessing essential services. This renders your workspace unusable.

astuce

If you need to access internal IP space (10.0.0.0/8, 172.16.0.0/20, or 192.168.0.0/16), add specific egress rules for those ranges with priority 1000-1099.

Autoriser les APIs Google (accès restreint)

Activez l'accès aux services Google Cloud via des points de terminaison conformes aux VPC Service Controls. Ces deux règles fonctionnent ensemble pour fournir un accès sécurisé aux APIs Google :

  • 199.36.153.4/30: Accès API restreint principal pour GCE
  • 34.126.0.0/18: point d'entrée pour les services conformes à VPC Service Controls
Bash
gcloud compute firewall-rules create to-google-apis \
--action ALLOW \
--rules all \
--destination-ranges 199.36.153.4/30 \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

gcloud compute firewall-rules create to-google-apis-entry-point \
--action ALLOW \
--rules tcp:443 \
--destination-ranges 34.126.0.0/18 \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

Autoriser la communication intra-sous-réseau

Autorisez le trafic au sein de votre sous-réseau Databricks pour un bon fonctionnement des clusters. Utilisez la plage IP principale pour les nœuds GCE à partir des configurations avancées de votre Workspace lors de la création.

Bash
gcloud compute firewall-rules create db-<subnet-name>-egress-intra-subnet \
--action ALLOW \
--rules all \
--destination-ranges <databricks-subnet-cidr> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>

Autoriser les services du plan de contrôle Databricks (si PSC n’est pas activé)

Autoriser la sortie vers les endpoints du plan de contrôle Databricks sur les ports 443 et 8443-8451. Obtenez les adresses IP régionales de votre Workspace à partir de adresses IP et domaines pour les services et assets Databricks.

Remplacez les adresses IP d'espace réservé :

  • <web-app-ips>: Adresses d'entrée régionales pour l'application web (généralement plusieurs blocs CIDR)
  • <scc-relay-ip>: Adresse IP régionale pour le relais de connectivité de cluster sécurisé
Bash
gcloud compute firewall-rules create to-databricks-control-plane \
--action ALLOW \
--rules tcp:443,tcp:8443-8451 \
--destination-ranges <web-app-ips>,<scc-relay-ip> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>
important

Databricks recommends using a firewall that supports FQDN-based rules instead of IP-based rules. Databricks IP addresses can change and may break workspace or cluster creation if firewall rules aren't updated.

Autoriser les points de terminaison Private Service Connect

Si vous avez activé Activer Private Service Connect pour votre Workspace, autorisez la sortie vers le sous-réseau Endpoint PSC au lieu des IP publiques du plan de contrôle.

Bash
gcloud compute firewall-rules create egress-to-databricks-psc-subnet \
--description "Allow egress traffic to Databricks Private Service Connect (PSC) endpoint subnet for workspace access over HTTPS." \
--direction EGRESS \
--priority 1000 \
--network <vpc-name> \
--allow tcp:443,tcp:8443-8451 \
--destination-ranges <psc-subnet-range>

Autoriser le Hive metastore hérité (facultatif)

Si vous utilisez le Hive metastore hérité, autorisez l’égresse vers l’IP du Hive metastore régional sur le port 3306. Si vous utilisez un Apache Hive metastore externe (hérité), créez plutôt une règle pour votre métastore externe.

Bash
gcloud compute firewall-rules create to-databricks-managed-hive \
--action ALLOW \
--rules tcp:3306 \
--destination-ranges <metastore-ip> \
--direction EGRESS \
--priority 1000 \
--network <vpc-name>
important

We recommend using What is Unity Catalog? instead of the legacy Hive metastore.

Autoriser l'entrée intra-sous-réseau

Autorise le trafic entrant au sein du sous-réseau Databricks afin que les nœuds du cluster puissent communiquer entre eux. Utilisez la plage CIDR principale de votre sous-réseau comme plage source.

Bash
gcloud compute firewall-rules create db-<subnet-name>-ingress \
--action ALLOW \
--rules all \
--source-ranges <databricks-subnet-cidr> \
--direction INGRESS \
--priority 1000 \
--network <vpc-name>

Ajouter des règles personnalisées (facultatif)

Ajoutez les règles d’égression supplémentaires dont votre organisation a besoin pour les sources de données et les autres systèmes. Définissez toutes les règles personnalisées ALLOW avec des valeurs de priorité de 1000 à 1099 afin que le pare-feu les évalue avant la règle de refus général à 1100.

Vos règles de pare-feu devraient ressembler à ce qui suit :

Name

Type

Filters

Protocols and ports

Action

Priority

to-google-apis

Egress

IP ranges: 199.36.153.4/30

All

Allow

1000

to-databricks-control-plane

Egress

IP ranges: Regional Control Plane IP ranges or PSC Endpoint IPs

tcp:443, 8443-8451

Allow

1000

db-<subnet-name>-egress-intra-subnet

Egress

IP ranges: Workspace subnet range

All

Allow

1000

deny-egress

Egress

IP ranges: 0.0.0.0/0

All

Deny

1100

db-<subnet-name>-ingress

Ingress

IP ranges: Workspace subnet range

All

Allow

1000

Name

Type

Filters

Protocols and ports

Action

Priority

to-google-apis

Egress

IP ranges: 199.36.153.4/30

All

Allow

1000

to-databricks-control-plane

Egress

IP ranges: Regional Control Plane IP ranges or PSC Endpoint IPs

tcp:443, 8443-8451

Allow

1000

db-<subnet-name>-egress-intra-subnet

Egress

IP ranges: Workspace subnet range

All

Allow

1000

deny-egress

Egress

IP ranges: 0.0.0.0/0

All

Deny

1100

db-<subnet-name>-ingress

Ingress

IP ranges: Workspace subnet range

All

Allow

1000

Mettre à jour les routes Virtual Private Cloud (VPC)

Ajoutez des routes statiques personnalisées pour diriger le trafic de l'API Google à travers les plages VIP restreintes. Chaque route utilise la passerelle internet par default comme saut suivant. Cette configuration garantit que les VM sans IP publiques peuvent atteindre les Endpoint d'API restreints de Google.

Créez des routes pour les plages de destination suivantes :

  • 199.36.153.4/30: Private Google Access API Endpoint pour restricted.googleapis.com
  • 34.126.0.0/18: Point d'entrée d'API restreint pour restricted.googleapis.com
Bash
# Route for Private Google Access API endpoints
gcloud compute routes create allow-private-google-access \
--network <vpc-name> \
--destination-range 199.36.153.4/30 \
--next-hop-gateway default-internet-gateway \
--description "Route for Private Google Access (199.36.153.4/30)"

# Route for Restricted API entry points
gcloud compute routes create allow-restricted-google-apis \
--network <vpc-name> \
--destination-range 34.126.0.0/18 \
--next-hop-gateway default-internet-gateway \
--description "Route for restricted.googleapis.com entry point (34.126.0.0/18)"

Pour plus d'informations sur la façon dont Cloud NAT interagit avec l'accès privé de Google, consultez Interactions du produit NAT dans la documentation Google Cloud.

Configurer le DNS privé pour les Google APIs restreintes

Configurez une zone DNS privée pour rediriger tout le trafic de l'API Google vers restricted.googleapis.com. Cela garantit que les machines virtuelles Databricks accèdent uniquement aux APIs Google compatibles avec les contrôles de services VPC, empêchant l'exfiltration de données vers des services non pris en charge. Pour plus d'informations, consultez les options d'accès privé Google dans la documentation Google Cloud.

Créez une zone DNS privée pour googleapis.com

Configurez une zone gérée privée Cloud DNS avec le domaine googleapis.com. Associez cette zone au Virtual Private Cloud (VPC) où vos charges de travail s'exécutent. Cela garantit que votre zone DNS privée résout les requêtes pour *.googleapis.com, et non le DNS public.

Bash
# Create a private DNS managed zone
gcloud dns managed-zones create restricted-apis-zone \
--description "Private DNS zone for restricted.googleapis.com" \
--dns-name "googleapis.com." \
--visibility private \
--networks "projects/<project-id>/global/networks/<vpc-name>"

Ajoutez des enregistrements A pour restricted.googleapis.com

Ajoutez des enregistrements A avec les quatre VIP (de 199.36.153.4à199.36.153.7) pour restricted.googleapis.com.

Bash
# Add A records for restricted.googleapis.com VIPs
gcloud dns record-sets create "restricted.googleapis.com." \
--type A \
--ttl 300 \
--zone restricted-apis-zone \
--rrdatas "199.36.153.4" "199.36.153.5" "199.36.153.6" "199.36.153.7"

Rediriger le trafic de l'API à l'aide de CNAME

Dans la zone DNS privée, créez un enregistrement CNAME générique (*.googleapis.com) pointant vers restricted.googleapis.com. Cela force tout le trafic d'API Google (par exemple, storage.googleapis.com, bigquery.googleapis.com) à se résoudre vers le VIP restreint.

Bash
# Create a wildcard CNAME record pointing to restricted.googleapis.com
gcloud dns record-sets create "*.googleapis.com." \
--type CNAME \
--ttl 300 \
--zone restricted-apis-zone \
--rrdatas "restricted.googleapis.com."
important

This configuration routes all Google API requests through the restricted endpoint. Only VPC Service Controls-compliant APIs are accessible. This configuration blocks services like Gmail or Maps.

Valider la configuration

Testez votre configuration de pare-feu pour vérifier que le workspace fonctionne correctement avec l'accès réseau restreint :

  1. Créer et start une ressource de compute polyvalente.
  2. Confirmez qu'il start avec succès et atteint l'état Running .
  3. Associez un Notebook à la ressource de compute et exécutez un test simple tel que SELECT 1+1.

Automatiser le déploiement avec Terraform

Pour les déploiements de production ou la gestion de plusieurs Workspace, Databricks recommande d'utiliser Terraform pour automatiser la configuration du pare-feu décrite ci-dessus. L'Architecture de référence de sécurité (SRA) fournit des modules Terraform prêts pour la production qui automatisent :

  • règles de pare-feu Virtual Private Cloud (VPC) pour l'égression refusée par default, l'accès au plan de contrôle Databricks et les APIs Google restreintes.
  • Routes Virtual Private Cloud (VPC) pour l’accès privé Google
  • Zones DNS privées et enregistrements pour restricted.googleapis.com

Pour commencer :

  1. Clonez le repository SRA : git clone https://github.com/databricks/terraform-databricks-sra.git.
  2. Examinez le module de déploiement de workspace GCP.
  3. Configurez le module avec vos valeurs spécifiques au projet.
  4. Appliquez la configuration Terraform pour provisionner votre workspace avec des règles de pare-feu.
remarque

L'Architecture de référence de sécurité (SRA) est pilotée par la communauté et n'est pas officiellement prise en charge par Databricks.

astuce

Les règles de pare-feu bloquent ou autorisent le trafic vers des destinations spécifiques — elles ne limitent pas le débit du trafic. Si vous souhaitez limiter le trafic plutôt que de le bloquer, consultez Limites de ressources pour les limites de débit d'API, ou Configurer les limites de débit pour les services d'IA à l'aide de Unity AI Gateway pour la limitation de débit des Endpoint de passerelle d'IA.