Ce document explique comment configurer une connectivité privée entre les hôtes d'un réseau VPC ou d'un réseau sur site et les API et services Google compatibles avec VPC Service Controls.
Avant de lire ce document, nous vous recommandons de vous familiariser avec les concepts d'Accès privé à Google, les spécifications et la configuration du réseau. Consultez des exemples de schémas de topologie pour l'utilisation de l'accès privé à Google avec VPC Service Controls.
Avant de commencer
- Vous devez activer les API auxquelles vous souhaitez accéder via la page API et services de Google Cloud Console.
- Assurez-vous de disposer du rôle requis pour créer ou mettre à jour des sous-réseaux. Les propriétaires de projet, les collaborateurs et les entités principales IAM dotées du rôle d'administrateur réseau peuvent créer ou mettre à jour des sous-réseaux et attribuer des adresses IP. Pour en savoir plus sur les rôles, consultez la documentation sur les rôles IAM.
- Vérifiez qu'un réseau VPC est configuré pour l'accès privé à Google et l'accès privé à Google pour les hôtes sur site. Les réseaux VPC en mode automatique et en mode personnalisé sont tous les deux compatibles. Les anciens réseaux ne sont pas compatibles.
- Assurez-vous que les instances de VM d'un réseau VPC disposent d'une adresse IP privée (et non d'une adresse IP publique) et qu'elles se trouvent dans un sous-réseau sur lequel l'accès privé à Google est activé.
- Pour les hôtes sur site, assurez-vous de disposer d'un tunnel Cloud VPN existant ou d'une connexion Cloud Interconnect sur votre réseau VPC. Pour prendre en charge les hôtes sur site disposant d'adresses IPv6, consultez la section Compatibilité IPv6.
Présentation de la procédure
Pour configurer la connectivité privée, procédez comme suit :
- Configurez des routes pour les plages d'adresses IP
restricted.googleapis.com
. Pour en savoir plus, consultez la section Configurer des routes. - Configurez des règles de pare-feu pour autoriser le trafic approprié à atteindre les plages d'adresses IP
restricted.googleapis.com
. Pour en savoir plus, consultez la section Configurer les règles de pare-feu. - Configurez le DNS de sorte que le trafic vers les API Google pointe vers les plages d'adresses IP
restricted.googleapis.com
. Pour en savoir plus, consultez Configurez les paramètres DNS.
Prise en charge IPv6 pour restricted.googleapis.com
Vous pouvez accéder aux API Google à l'aide de la plage d'adresses IPv6 du domaine restricted.googleapis.com
: 2600:2d00:0002:1000::/64
.
Envisagez de configurer les adresses IPv6 si vous souhaitez utiliser le domaine restricted.googleapis.com
et que vous
ont des clients qui utilisent
des adresses IPv6. Les clients IPv6 disposant également d'adresses IPv4 configurées peuvent accéder aux API et services Google à l'aide des adresses IPv4. Tous les services n'acceptent pas le trafic provenant de clients IPv6.
Pour permettre aux clients IPv6 de votre environnement sur site d'accéder aux API Google à l'aide de restricted.googleapis.com
, vous devez configurer la connexion à votre réseau VPC afin qu'elle prenne en charge le protocole IPv6. Pour en savoir plus, consultez les pages suivantes :
- Compatibilité IPv6 avec les VPN haute disponibilité
- Compatibilité des protocoles IP avec Cloud Router
Les clients sur site peuvent envoyer des requêtes à partir de n'importe quelle adresse IPv6 GUA ou ULA, à l'exception de la plage ULA fda3:e722:ac3:cc00::/64
, qui est réservée à un usage interne.
Pour en savoir plus sur l'adresse IP virtuelle restricted.googleapis.com
, consultez la section Configurer
l'accès privé à Google.
Connectivité directe aux API et aux services
Certains services et API Google offrent une connectivité directe à partir de Compute Engine.
de machines virtuelles (VM), en contournant les serveurs Google Front End
(GFE). Pour autoriser ce trafic, vous devez vous assurer que vos routes et vos règles de pare-feu autorisent le trafic sortant à atteindre 34.126.0.0/18
et 2001:4860:8040::/42
.
Vous n'avez pas besoin de créer des enregistrements DNS pour ces adresses. Plusieurs services Google Cloud prennent en charge la connectivité directe pour améliorer les performances des API gRPC Google. Pour activer cette amélioration des performances, vous devez autoriser l'accès aux plages d'adresses IP spécifiées.
La connectivité directe n'est disponible qu'à partir des ressources Google Cloud. Vous ne pouvez pas utiliser la connectivité directe à partir d'hôtes sur site.
Les services offrant une connectivité directe sont compatibles avec VPC Service Controls.
Configurer des routes vers restricted.googleapis.com
Bien que VPC Service Controls soit appliqué pour les configurations compatibles et configurées,
quel que soit le domaine utilisé, restricted.googleapis.com
vous fournit
des risques supplémentaires
liés à l'exfiltration de données. restricted.googleapis.com
refuse l'accès aux API et services Google qui ne sont pas compatibles avec VPC Service Controls.
Pour l'accès privé à Google et l'accès privé à Google pour sur site
hôtes, votre réseau VPC doit inclure une route
restricted.googleapis.com
plages d'adresses IP dont le saut suivant est le saut par défaut
de votre passerelle Internet. Même si le saut suivant est une passerelle Internet par défaut, le trafic envoyé à restricted.googleapis.com
reste au sein du réseau de Google.
Si votre réseau VPC ne possède pas de route par défaut dont le saut suivant est la passerelle Internet par défaut, vous pouvez créer une route statique personnalisée dont la destination est la plage d'adresses IP restricted.googleapis.com
et dont le saut suivant est la passerelle Internet par défaut. Pour empêcher l'accès à Internet, vous devez supprimer les autres routes dont le saut suivant correspond à la passerelle Internet par défaut.
Pour plus d'informations sur l'utilisation des routes VPC, consultez la page Utiliser des routes de la documentation sur les VPC.
Configurer des routes statiques personnalisées dans un réseau VPC
Ajoutez des routes statiques personnalisées pour autoriser l'accès aux services gérés par Google Compatibilité avec VPC Service Controls.
gcloud compute routes create ROUTE_NAME \ --network=NETWORK_NAME \ --destination-range=DESTINATION_RANGE \ --next-hop-gateway=default-internet-gateway
Remplacez les éléments suivants :
ROUTE_NAME
: nom de la route personnaliséeNETWORK_NAME
: nom de votre réseau VPCDESTINATION_RANGE
: plage de destination de la route- Pour acheminer le trafic vers l'adresse IP virtuelle
restricted.googleapis.com
, utilisez le code suivant : plages:- Pour le trafic IPv4:
199.36.153.4/30
- Pour le trafic IPv6 :
2600:2d00:0002:1000::/64
- Pour le trafic IPv4:
- Pour acheminer le trafic vers des API qui permettent une connectivité directe, utilisez les plages suivantes :
- Pour le trafic IPv4:
34.126.0.0/18
- Pour le trafic IPv6 :
2001:4860:8040::/42
- Pour le trafic IPv4:
- Pour acheminer le trafic vers l'adresse IP virtuelle
Annoncer la route restreinte aux hôtes d'un réseau sur site
Si vous utilisez l'accès privé à Google pour les hôtes sur site, configurez les routes de sorte que le trafic des API Google transite par votre connexion Cloud VPN ou Cloud Interconnect. Pour annoncer les plages d'adresses IP VIP restreintes à votre réseau sur site, utilisez le mode d'annonce personnalisée de Cloud Router. La les plages d'adresses IP virtuelles limitées ne sont accessibles qu'aux hôtes sur site à votre réseau VPC via des adresses IP privées.
Vous pouvez ajouter cette route annoncée personnalisée à un routeur cloud (pour toutes les sessions BGP sur le routeur) ou à une session BGP sélectionnée (pour un tunnel Cloud VPN ou un rattachement de VLAN).
Les routes IPv6 ne sont annoncées que dans les sessions BGP où IPv6 est activé.
Pour créer une route annoncée personnalisée pour la plage restreinte pour toutes les sessions BGP d'un routeur cloud existant, procédez comme suit :
Console
Dans Google Cloud Console, accédez à la page Routeurs cloud.
Sélectionnez le routeur Cloud Router à mettre à jour.
Sur la page d'informations du routeur Cloud Router, sélectionnez Modifier.
Développez la section Routages annoncés.
Dans le champ Routes, sélectionnez Créer des routages personnalisés.
Pour continuer à diffuser les sous-réseaux disponibles dans Cloud Router, sélectionnez Diffuser tous les sous-réseaux visibles par Cloud Router. Cette option imite le comportement par défaut du routeur cloud.
Pour ajouter une route annoncée, sélectionnez Ajouter une route personnalisée.
Configurez l'annonce du routage.
- Source : sélectionnez Plage d'adresses IP personnalisée.
- Plage d'adresses IP:
- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 :
- Description: ajoutez une description pour
Restricted Google APIs IPs
Après avoir ajouté des routes, sélectionnez Enregistrer.
gcloud
Exécutez la commande update
en utilisant l'option --set-advertisement-ranges
ou --add-advertisement-ranges
pour spécifier les plages d'adresses IP personnalisées :
Pour définir des plages d'adresses IP personnalisées, utilisez l'option
--set-advertisement-ranges
. Toute route annoncée personnalisée existante est remplacée. L'exemple suivant met à jour le routeur cloudmy-router
pour annoncer tous les sous-réseaux et les plages d'adresses IPrestricted.googleapis.com
.gcloud compute routers update my-router \ --advertisement-mode CUSTOM \ --set-advertisement-groups ALL_SUBNETS \ --set-advertisement-ranges RANGES
Remplacez
RANGES
par les plages que vous souhaitez utiliser:- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 et IPv6 :
199.36.153.4/30,2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 :
Pour ajouter des plages d'adresses IP personnalisées à une annonce existante, utilisez l'indicateur
--add-advertisement-ranges
. Notez que cet indicateur nécessite que le mode d'annonce du routeur cloud soit déjà défini surcustom
. L'exemple suivant ajoute l'adresse IPrestricted.googleapis.com
aux annonces du routeur Cloud Router:gcloud compute routers update my-router \ --add-advertisement-ranges RANGES
Remplacez
RANGES
par les plages que vous souhaitez utiliser :- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 et IPv6 :
199.36.153.4/30,2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 :
Pour créer une route annoncée personnalisée pour la plage restreinte sur une session BGP spécifique d'un routeur Cloud Router existant, procédez comme suit:
Console
Dans Google Cloud Console, accédez à la page Routeurs cloud.
Sélectionnez le routeur cloud qui contient la session BGP à mettre à jour.
Sur la page d'informations du routeur cloud, sélectionnez la session BGP à mettre à jour.
Sur la page d'informations de la session BGP, sélectionnez Modifier.
Dans le champ Routages, sélectionnez Créer des routages personnalisés.
Sélectionnez Diffuser tous les sous-réseaux visibles par le routeur cloud pour continuer à annoncer les sous-réseaux disponibles pour le routeur cloud. Cette option imite le comportement par défaut du routeur cloud.
Sélectionnez Ajouter un routage personnalisé pour ajouter un routage diffusé.
Configurez l'annonce du routage.
- Source: sélectionnez Plage d'adresses IP personnalisée pour spécifier une adresse IP personnalisée la plage d'adresses IP.
- Plage d'adresses IP :
- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 :
- Description: ajoutez une description de
Restricted Google APIs IPs
.
Après avoir ajouté les routes, sélectionnez Enregistrer.
gcloud
Exécutez la commande update-bgp-peer
en utilisant l'option --set-advertisement-ranges
ou --add-advertisement-ranges
pour spécifier les plages d'adresses IP personnalisées.
Pour définir des plages d'adresses IP personnalisées, utilisez l'option
--set-advertisement-ranges
. Toutes les routes annoncées personnalisées existantes sont remplacées.Si vous ajoutez des plages personnalisées IPv6 et que le trafic IPv6 est désactivé pour la session BGP, vous pouvez l'activer avec l'option
--enable-ipv6
.L'exemple suivant met à jour la session BGP
my-bgp-session
sur le routeur cloudmy-router
pour annoncer tous les sous-réseaux et la plage d'adresses IP personnalisée :gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --advertisement-mode CUSTOM \ --set-advertisement-groups ALL_SUBNETS \ --set-advertisement-ranges RANGES
Remplacez
RANGES
par les plages que vous souhaitez utiliser:- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 et IPv6 :
199.36.153.4/30,2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 :
Pour ajouter des plages d'adresses IP personnalisées à des plages existantes, utilisez l'indicateur
--add-advertisement-ranges
. Notez que cet indicateur nécessite que le mode d'annonce du routeur cloud soit déjà défini surcustom
.Si vous ajoutez des plages personnalisées IPv6 et que le trafic IPv6 est désactivé pour la session BGP, vous pouvez l'activer avec l'option
--enable-ipv6
.L'exemple suivant ajoute les plages d'adresses VIP limitées aux annonces du routeur cloud :
gcloud compute routers update-bgp-peer my-router \ --peer-name my-bgp-session \ --add-advertisement-ranges RANGES
Remplacez
RANGES
par les plages que vous souhaitez utiliser :- Pour la connectivité IPv4 :
199.36.153.4/30
- Pour la connectivité IPv6 :
2600:2d00:0002:1000::/64
- Pour la connectivité IPv4 et IPv6 :
199.36.153.4/30,2600:2d00:0002:1000::/64
Pour plus d'informations sur le mode d'annonce personnalisée, voir Personnalisé routes annoncées.
- Pour la connectivité IPv4 :
Configurer des règles de pare-feu
Pour l'accès privé à Google, les instances de VM utilisent des adresses IP internes et n'ont pas besoin d'adresses IP externes pour atteindre les ressources d'API Google protégées. Les instances de VM peuvent toutefois disposer d'adresses IP externes ou répondre aux conditions d'accès à Internet. En plus des routes annoncées personnalisées, vous pouvez restreindre du trafic sortant des instances de VM de votre réseau VPC en créant des règles de pare-feu pour refuser le trafic sortant.
Par défaut, la règle implicite d'autorisation pour le trafic sortant autorise les instances de VM à envoyer du trafic vers n'importe quelle destination s'il existe une route applicable. Vous pouvez créer une règle de refus du trafic sortant pour bloquer tout le trafic sortant, Vous pouvez ensuite créer
les règles de sortie prioritaires autorisant le trafic vers des destinations sélectionnées dans votre
réseau VPC et à l'adresse IP restricted.googleapis.com
plages. Toutes les communications vers restricted.googleapis.com
s'effectuent sur TCP
port 443
.
Pour permettre au trafic Google Cloud d'atteindre les VIP restricted.googleapis.com
, ajoutez des règles de pare-feu pour les destinations suivantes :
- Pour le trafic IPv4 :
199.36.153.4/30
- Pour le trafic IPv6 :
2600:2d00:0002:1000::/64
Pour autoriser le trafic Google Cloud à atteindre les API et les services qui permettent une connectivité directe, ajoutez des règles de pare-feu pour les destinations suivantes :
- Pour le trafic IPv4 :
34.126.0.0/18
- Pour le trafic IPv6:
2001:4860:8040::/42
Pour en savoir plus sur l'utilisation des règles de pare-feu VPC, consultez Utilisez des règles de pare-feu VPC dans le Cloud nouvelle génération de pare-feu.
Configurez vos règles de pare-feu sur site pour autoriser le trafic provenant de vos hôtes sur site à accéder aux plages d'adresses IP restricted.googleapis.com
.
- Pour le trafic IPv4 :
199.36.153.4/30
- Pour le trafic IPv6:
2600:2d00:0002:1000::/64
La connectivité directe aux API et services Google n'est pas à partir de réseaux sur site.
Configurer les paramètres DNS
Vous pouvez utiliser des zones privées gérées pour vos réseaux VPC.
Les zones DNS privées de Cloud DNS vous permettent d'héberger une zone DNS accessible à partir de réseaux VPC autorisés.
Pour configurer le transfert à partir de certains serveurs de noms sur site, vous pouvez utiliser le
restricted.googleapis.com
plages d'adresses IP.
Vous pouvez ensuite créer une zone privée pour googleapis.com
avec un enregistrement A DNS qui mappe restricted.googleapis.com
et les enregistrements CNAME appropriés pour chaque nom *.googleapis.com
. Pour en savoir plus, consultez
Gérer les zones.
Pour l'accès sur site, vous pouvez configurer une règle de transfert entrant Cloud DNS pour permettre aux serveurs de noms sur site d'interroger une zone privée gérée Cloud DNS. Vous pouvez également configurer un serveur de noms sur site, tel que BIND :
Configurer le DNS avec Cloud DNS
Pour activer la résolution DNS pour les instances de VM de votre réseau VPC, les hôtes sur un réseau sur site ou les deux, utilisez Cloud DNS. Si vous utilisez à l'aide d'un VPC partagé, consultez la page Zones privées et VPC partagé. dans la documentation Cloud DNS. De plus, si vous utilisez un VPC partagé, nous vous recommandons d'inclure le projet hôte du réseau VPC partagé périmètre de service en tant que projets qui se connectent au réseau.
Configurer Cloud DNS à l'aide de zones privées
Vous pouvez utiliser des zones privées pour configurer Cloud DNS :
Créez une zone privée gérée pour votre réseau VPC.
gcloud dns managed-zones create ZONE_NAME \ --visibility=private \ --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \ --description=DESCRIPTION \ --dns-name=googleapis.com
Remplacez l'élément suivant :
ZONE_NAME
: nom de la zone que vous créez. Exemple :vpc
Ce nom est utilisé dans chacune des étapes suivantes.PROJECT_ID
: ID du projet contenant votre réseau VPCNETWORK_NAME
: nom de votre réseau VPC.DESCRIPTION
: une description lisible et facultative de la zone gérée
Lancez une transaction.
gcloud dns record-sets transaction start --zone=ZONE_NAME
Remplacez
ZONE_NAME
par le nom de la zone que vous avez créée à la première étape.Ajoutez des enregistrements DNS.
gcloud dns record-sets transaction add --name=*.googleapis.com. \ --type=CNAME restricted.googleapis.com. \ --zone=ZONE_NAME \ --ttl=300
Remplacez
ZONE_NAME
par le nom de la zone que vous avez créée à la première étape.gcloud dns record-sets transaction add --name=restricted.googleapis.com. \ --type=A
199.36.153.4
,199.36.153.5
,199.36.153.6
,199.36.153.7
\ --zone=ZONE_NAME \ --ttl=300Remplacez
ZONE_NAME
par le nom de la zone que vous avez créée à la première étape.Si vous configurez les adresses IPv6 pour
restricted.googleapis.com
, créez également le jeu d'enregistrements suivant :gcloud dns record-sets transaction add --name=restricted.googleapis.com. \ --type=AAAA 2600:2d00:0002:1000:: \ --zone=ZONE_NAME \ --ttl=300
Exécutez la transaction.
gcloud dns record-sets transaction execute --zone=ZONE_NAME
Remplacez
ZONE_NAME
par le nom de la zone que vous avez créée à la première étape.Facultatif. Pour que les hôtes sur site atteignent la plage restreinte d'adresses IP virtuelles, effectuez les opérations suivantes :
Créez une règle DNS et activez le transfert DNS entrant pour rendre les services de résolution de noms du réseau VPC accessibles en externe aux systèmes situés sur les réseaux sur site.
gcloud dns policies create POLICY_NAME \ --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \ --enable-inbound-forwarding \ --description=DESCRIPTION
Remplacez l'élément suivant :
POLICY_NAME
: nom de la zone que vous créez. Exemple :apipolicy
PROJECT_ID
: ID du projet contenant votre réseau VPCNETWORK_NAME
: nom de votre réseau VPC.DESCRIPTION
: une description lisible et facultative de la zone gérée
Sur votre réseau sur site, faites pointer le DNS sur site vers l'adresse IP du système de transfert Cloud DNS. Pour trouver l'adresse IP du système de transfert, utilisez la commande
compute addresses list
:gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \ --format='csv[no-heading](address, subnetwork)'
Configurer le DNS avec BIND
Si vous utilisez BIND pour la résolution DNS, vous pouvez le configurer pour résoudre les requêtes d'API Google vers les API Google limitées. Utilisez l'exemple de configuration BIND suivant, utilise des stratégies de réponse zones (RPZ) pour obtenir ce comportement:
Ajoutez les lignes suivantes à
/etc/bind/named.conf
:include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local";
Ajoutez les lignes suivantes à
/etc/bind/named.conf.options
:options { directory "/var/cache/bind"; dnssec-validation no; auth-nxdomain no; # conform to RFC 1035 listen-on-v6 { any; }; listen-on { any; }; response-policy { zone "googleapis.zone"; }; allow-query { any;}; };
Ajoutez les lignes suivantes à
/etc/bind/named.conf.local
:include "/etc/bind/named.conf.default-zones";
zone "googleapis.zone" { type master; file "/etc/bind/db.googleapis.zone"; allow-query {none;}; };
Ajoutez les lignes suivantes à
/etc/bind/db.googleapis.zone
:$TTL 1H @ SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h) NS LOCALHOST.
*.googleapis.com CNAME restricted.googleapis.com. restricted.googleapis.com CNAME rpz-passthru.
Configurer le DNS dans des cas particuliers
Lorsque vous devez configurer un DNS dans certains cas particuliers, gardez à l'esprit les points suivants :
- Les configurations BIND personnalisées ne sont pas compatibles avec Dataflow. Pour personnaliser la résolution DNS lors de l'utilisation de Dataflow avec VPC Service Controls, exploitez des zones privées Cloud DNS au lieu d'utiliser des serveurs BIND personnalisés. Pour utiliser votre propre résolution DNS sur site, envisagez d'employer une méthode de transfert DNS Google Cloud.
Vous devrez peut-être également configurer un DNS pour
gcr.io
si, par exemple, vous utilisez Google Kubernetes Engine (GKE). Pour en savoir plus, consultez la page Configurer Container Registry pour des clusters privés GKE.