Utiliser des règles de pare-feu
Cette page décrit les commandes permettant d'utiliser les règles de pare-feu, et propose plusieurs exemples d'utilisation.
Avant de commencer
Pour en savoir plus sur les règles de pare-feu, telles que les règles implicites et les règles générées par le système pour les réseaux par défaut, consultez la page Présentation des règles de pare-feu.
Avant de configurer les règles de pare-feu, consultez la section Composants des règles de pare-feu pour vous familiariser avec les composants des pare-feu, tels qu'ils sont utilisés dans Google Cloud.
Créer des règles de pare-feu
Les règles sont définies au niveau du réseau et s'appliquent seulement au réseau sur lequel elles ont été créées. Cependant, le nom que vous sélectionnez pour chacune d'elles doit être unique au projet.
Une règle de pare-feu peut contenir des plages IPv4 ou IPv6, mais pas les deux.
Lorsque vous créez une règle de pare-feu, vous pouvez choisir d'activer la journalisation des règles de pare-feu. Si vous activez la journalisation, vous pouvez omettre les champs de métadonnées afin d'économiser les coûts de stockage. Pour plus d'informations, consultez la section Utiliser la journalisation des règles de pare-feu.
Si vous souhaitez spécifier plusieurs comptes de service pour le champ du compte de service cible ou source, utilisez la Google Cloud CLI, l'API ou les bibliothèques clientes.
Le réseau par défaut fournit des règles de pare-feu automatiques au moment de la création. Les réseaux en mode automatique et personnalisé vous permettent de créer facilement des pare-feu similaires lors de la création du réseau si vous utilisez la console. Si vous utilisez la CLI gcloud ou l'API, et souhaitez créer des règles de pare-feu similaires à celles fournies par le réseau par défaut, consultez la page Configurer des règles de pare-feu pour les cas d'utilisation courants.
Console
- Accédez à la page "Pare-feu" de Google Cloud Console.
Accéder à la page Pare-feu - Cliquez sur Créer une règle de pare-feu.
- Entrez un nom pour la règle de pare-feu.
Ce nom doit être unique au projet. - (Facultatif) Vous pouvez activer la journalisation des règles de pare-feu en procédant comme suit :
- Cliquez sur Journaux > Activé.
- Pour omettre les métadonnées, développez Détails des journaux, puis désélectionnez Inclure les métadonnées.
- Spécifiez le réseau pour la règle de pare-feu.
- Spécifiez la priorité de la règle.
Plus la valeur est faible, plus la priorité est élevée. - Sélectionnez Entrée ou Sortie pour l'option Direction du trafic.
- Sélectionnez Autoriser ou Refuser pour l'option Action en cas de correspondance.
- Spécifiez les cibles de la règle.
- Si vous souhaitez que la règle s'applique à toutes les instances du réseau, sélectionnez
All instances in the network
(Toutes les instances du réseau). - Si vous souhaitez que la règle s'applique à des instances spécifiques en fonction de tags réseau (cibles), sélectionnez
Specified target tags
(Tags cibles spécifiés), puis saisissez les tags auxquels la règle doit s'appliquer dans le champ Tags cibles. - Si vous souhaitez que la règle s'applique à des instances spécifiques en fonction du compte de service associé, sélectionnez
Specified service account
(Compte de service spécifié), et indiquez si le compte de service se trouve dans le projet en cours ou dans un autre projet dans le champ Champ d'application du compte de service. Choisissez ou saisissez ensuite le nom du compte de service dans le champ Compte de service cible.
- Si vous souhaitez que la règle s'applique à toutes les instances du réseau, sélectionnez
- Pour une règle d'entrée, spécifiez le filtre source :
- Pour filtrer le trafic entrant par plage IPv4 source, sélectionnez
IPv4 ranges
et saisissez les blocs CIDR dans le champ Plages IPv4 sources. Utilisez0.0.0.0/0
pour n'importe quelle source IPv4. - Pour filtrer le trafic entrant par plage IPv6 source, sélectionnez
IPv6 ranges
et saisissez les blocs CIDR dans le champ Plages IPv6 sources. Utilisez::/0
pour n'importe quelle source IPv6. - Pour filtrer le trafic entrant par tag réseau, sélectionnez
Source tags
, puis saisissez les tags réseau dans le champ Tags sources. Pour connaître le nombre maximal de tags sources, consultez la section Limites par réseau. Le filtrage par tag source n'est disponible que si la cible n'est pas spécifiée par compte de service. Pour en savoir plus, consultez la section Filtrer par compte de service ou par tag réseau. - Pour filtrer le trafic entrant par compte de service, sélectionnez
Service account
(Compte de service), puis indiquez si le compte de service se trouve dans le projet en cours ou dans un autre projet dans le champ Champ d'application du compte de service. Choisissez ou saisissez ensuite le nom du compte de service dans le champ Compte de service source. Le filtrage par compte de service source n'est disponible que si la cible n'est pas spécifiée par tag réseau. Pour en savoir plus, consultez la section Filtrer par compte de service ou par tag réseau. - Si vous le souhaitez, définissez un Deuxième filtre source. Ces types de filtre ne peuvent pas utiliser les mêmes critères de filtrage que les filtres principaux. Les plages d'adresses IP sources peuvent être utilisées avec les tags sources ou les comptes de service sources. L'ensemble de sources utilisé correspond à la combinaison des plages d'adresses IP sources et des instances identifiées par des tags réseau ou des comptes de service. En d'autres termes, si la plage d'adresses IP sources ou les tags sources (ou les comptes de service sources) correspondent aux critères de filtrage, la source est incluse dans l'ensemble de sources effectif.
- Les tags sources et les comptes de service sources ne peuvent pas être utilisés conjointement.
- Pour filtrer le trafic entrant par plage IPv4 source, sélectionnez
- Pour une règle de sortie, spécifiez le filtre de destination :
- Pour filtrer le trafic sortant par plage IPv4 de destination, sélectionnez
IPv4 ranges
et saisissez les blocs CIDR dans le champ Plages IPv4 de destination. Utilisez0.0.0.0/0
pour n'importe quelle destination IPv4. - Pour filtrer le trafic sortant par plage IPv6 de destination, sélectionnez
IPv6 ranges
et saisissez les blocs CIDR dans le champ Plages IPv6 de destination. Utilisez::/0
pour n'importe quelle destination IPv6.
- Pour filtrer le trafic sortant par plage IPv4 de destination, sélectionnez
Définissez les Protocoles et ports auxquels la règle s'applique :
Sélectionnez
Allow all
(Tout autoriser) ouDeny all
(Tout refuser) selon l'action à exécuter, pour que la règle s'applique à tous les protocoles et ports de destination.Définissez des protocoles et des ports de destination spécifiques :
- Sélectionnez tcp pour inclure le protocole et les ports de destination TCP. Saisissez
all
ou une liste de ports de destination délimités par des virgules, telle que20-22, 80, 8080
. - Sélectionnez udp pour inclure le protocole et les ports de destination UDP. Saisissez
all
ou une liste de ports de destination délimités par des virgules, telle que67-69, 123
. - Sélectionnez Autres protocoles pour inclure des protocoles tels que
icmp
etsctp
, ou un numéro de protocole. Utilisez le protocole58
pour ICMPv6. Pour en savoir plus, consultez la section Protocoles et ports de destination.
- Sélectionnez tcp pour inclure le protocole et les ports de destination TCP. Saisissez
(Facultatif) Vous pouvez créer la règle de pare-feu sans l'activer en définissant son état d'application sur désactivée. Cliquez sur Désactiver la règle, puis sélectionnez Désactivée.
Cliquez sur Créer.
gcloud
La commande gcloud
permettant de créer des règles de pare-feu est la suivante :
gcloud compute firewall-rules create NAME \ [--network NETWORK; default="default"] \ [--priority PRIORITY;default=1000] \ [--direction (ingress|egress|in|out); default="ingress"] \ [--action (deny | allow )] \ [--target-tags TAG[,TAG,...]] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--source-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--source-tags TAG,TAG,] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT[,IAM_SERVICE_ACCOUNT,...]] \ [--destination-ranges CIDR_RANGE[,CIDR_RANGE,...]] \ [--rules (PROTOCOL[:PORT[-PORT]],[PROTOCOL[:PORT[-PORT]],...]] | all ) \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging] \ [--logging-metadata LOGGING_METADATA]
Utilisez les paramètres en fonction des explications ci-dessous. Des informations plus détaillées sur chacun des paramètres sont disponibles dans la Documentation de référence du SDK.
--network
Réseau associé à la règle. S'il n'est pas renseigné, la règle est créée dans le réseaudefault
. Si vous n'avez pas de réseau par défaut ou si vous souhaitez créer la règle dans un réseau spécifique, vous devez utiliser ce champ.- Le paramètre
--priority
est une valeur numérique indiquant la priorité de la règle. Plus la valeur est faible, plus la priorité est élevée. - Le paramètre
--direction
indique le sens du trafic. Il peut être défini suringress
(entrée) ouegress
(sortie). - Le paramètre
--action
indique l'action en cas de correspondance. Il peut être défini surallow
(autoriser) oudeny
(refuser), et doit être utilisé avec l'option--rules
(règles). - Vous pouvez spécifier une cible de trois manières différentes :
- Ne renseignez pas les options
--target-tags
(tags cibles) et--target-service-accounts
(comptes de service cibles) si la règle doit s'appliquer à toutes les cibles du réseau. - Utilisez l'option
--target-tags
(tags cibles) pour définir des cibles par tags réseau. - Utilisez l'option
--target-service-accounts
(comptes de service cibles) pour définir des cibles par comptes de service associés.
- Ne renseignez pas les options
- Pour une règle d'entrée, spécifiez une source :
- Utilisez l'option
--source-ranges
(plages sources) pour spécifier des plages d'adresses IPv4 ou IPv6 sources au format CIDR. - Si les éléments
--source-ranges
,source-tags
et--source-service-accounts
sont omis, la source d'entrée est toute adresse IPv4,0.0.0.0/0
. - Utilisez l'option
--source-tags
(tags sources) pour spécifier les instances sources par tags réseau. Le filtrage par tag source n'est disponible que si la cible n'est pas spécifiée par compte de service. Pour en savoir plus, consultez la section Filtrer par compte de service ou par tag réseau. - Les options
--source-ranges
(plages sources) et--source-tags
(tags sources) peuvent être utilisées conjointement. Si les deux options sont spécifiées, l'ensemble de sources utilisé correspond à la combinaison des plages d'adresses IP sources et des instances identifiées à l'aide des tags réseau, même si les instances avec tag ne disposent pas d'adresses IP dans les plages sources. - Utilisez l'option
--source-service-accounts
(comptes de service sources) pour spécifier des instances en fonction des comptes de service qu'elles utilisent. Le filtrage par compte de service source n'est disponible que si la cible n'est pas spécifiée par tag réseau. Pour en savoir plus, consultez la section Filtrer par compte de service ou par tag réseau. Les options--source-ranges
(plages sources) et--source-service-accounts
(comptes de service sources) peuvent être utilisées conjointement. Si les deux sont spécifiés, l'ensemble de sources utilisé correspond à la combinaison des plages d'adresses IP sources et des instances identifiées par les comptes de service sources, même si les instances identifiées par les comptes de service sources ne contiennent pas d'adresses IP dans les plages sources.
- Utilisez l'option
- Pour une règle de sortie, spécifiez une destination :
- Utilisez l'option
--destination-ranges
(plages sources) pour spécifier des plages d'adresses IPv4 ou IPv6 sources au format CIDR. - Si l'élément
--destination-ranges
est omis, la destination de sortie est n'importe quelle adresse IPv4,0.0.0.0/0
.
- Utilisez l'option
--rules
Liste des protocoles et ports de destination auxquels la règle s'applique. Sélectionnezall
(tous) pour appliquer la règle à tous les protocoles et à tous les ports de destination. Ce paramètre nécessite l'option--action
.- Par défaut, les règles de pare-feu sont créées et appliquées automatiquement. Cependant, vous pouvez modifier ce comportement.
- Si les options
--disabled
(désactivée) et--no-disabled
(non désactivée) ne sont pas sélectionnées, la règle de pare-feu est créée et appliquée. - Ajoutez l'option
--disabled
(désactivée) pour créer la règle de pare-feu sans l'appliquer. La règle de pare-feu reste désactivée jusqu'à la mise à jour de la règle de pare-feu, qui permet de l'activer. - Ajoutez l'option
--no-disabled
(non désactivée) si vous souhaitez appliquer la règle de pare-feu.
- Si les options
--enable-logging | --no-enable-logging
Vous pouvez activer la journalisation des règles de pare-feu lors de la création ou de la mise à jour d'une règle. La journalisation des règles de pare-feu vous permet de réaliser des audits, des vérifications et des analyses sur les effets de vos règles de pare-feu. Pour en savoir plus, consultez la section Journalisation des règles de pare-feu.--logging-metadata
Si vous activez la journalisation, la journalisation des règles de pare-feu inclut par défaut les champs de base et de métadonnées. Vous pouvez omettre les champs de métadonnées pour réduire les coûts de stockage. Pour plus d'informations, consultez la section Utiliser la journalisation des règles de pare-feu.
API
Créez une règle de pare-feu.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "FIREWALL_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Remplacez les espaces réservés par des valeurs valides :
PROJECT_ID
correspond à l'ID du projet où se trouve le réseau VPC.NETWORK
correspond au nom du réseau VPC dans lequel la règle de pare-feu est créée.FIREWALL_NAME
correspond au nom de la règle de pare-feu.Pour une règle de pare-feu d'entrée, définissez la source d'entrée à l'aide des champs suivants :
sourceRanges
,sourceTags
ousourceServiceAccounts
.sourceRanges
peut être des plages IPv4 ou IPv6, mais pas à une combinaison des deux. Ne spécifiez pas la plage0.0.0.0/0
pour ces champs. Vous ne pouvez pas utiliser conjointement les champssourceTags
etsourceServiceAccounts
. Cependant, vous pouvez associersourceRanges
avecsourceTags
ousourceServiceAccounts
. Dans ce cas, la connexion doit simplement correspondre à l'un ou l'autre des champs pour que la règle de pare-feu s'applique.Pour les champs cibles, vous ne pouvez pas utiliser le champ
targetServiceAccounts
si vous utilisez le champsourceTags
. Vous devez soit utiliser le champtargetTags
, soit aucun champ cible. De même, si vous spécifiez le champsourceServiceAccounts
, vous ne pouvez pas utiliser le champtargetTags
. Si vous ne spécifiez pas de champ cible, la règle s'applique à toutes les cibles du réseau.Pour une règle de pare-feu de sortie, définissez la destination à l'aide du champ
destinationRanges
.destinationRanges
peut être des plages IPv4 ou IPv6, mais pas une combinaison des deux. Si vous ne spécifiez pas de destination, Google Cloud utilise0.0.0.0/0
. Définissez le champtargetTags
outargetServiceAccounts
pour spécifier les cibles auxquelles la règle s'applique. Si vous ne spécifiez pas de champ cible, la règle s'applique à toutes les cibles du réseau.
Pour obtenir plus d'informations et la description de chaque champ, reportez-vous à la méthode firewalls.insert
.
C#
Go
Java
Node.js
PHP
Python
Ruby
Terraform
Vous pouvez utiliser une ressource Terraform pour créer une règle de pare-feu.
Mettre à jour des règles de pare-feu
Vous pouvez modifier certains composants d'une règle de pare-feu, tels que les protocoles et ports de destination spécifiés pour la condition de correspondance. Néanmoins, vous ne pouvez pas modifier son nom, son réseau, l'action en cas de correspondance et le sens du trafic.
Si vous devez modifier le nom, le réseau, l'action ou le sens, vous devez supprimer la règle et en créer une autre.
Si vous souhaitez ajouter ou supprimer plusieurs comptes de service, utilisez Google Cloud CLI, l'API ou les bibliothèques clientes. Vous ne pouvez pas spécifier plusieurs comptes de service cibles ou sources à l'aide de la console.
Console
- Accédez à la page "Pare-feu" de Google Cloud Console.
Accéder à la page Pare-feu - Cliquez sur la règle que vous souhaitez modifier.
- Cliquez sur Modifier.
Modifiez l'un des composants modifiables selon vos besoins.
Dans le champ Protocoles et ports spécifiés, utilisez une liste délimitée par des points-virgules pour spécifier plusieurs protocoles et combinaisons de protocoles et de ports de destination. Pour spécifier le protocole ICMP IPv4, utilisez
icmp
ou le numéro de protocole1
. Pour spécifier le protocole ICMP IPv6, utilisez le numéro de protocole58
. Pour en savoir plus, consultez la section Protocoles et ports de destination.Cliquez sur Enregistrer.
gcloud
La commande gcloud
permettant de mettre à jour des règles de pare-feu est la suivante :
gcloud compute firewall-rules update NAME \ [--priority=PRIORITY] \ [--description=DESCRIPTION] \ [--target-tags=TAG,...] \ [--target-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--source-ranges=CIDR_RANGE,...] \ [--source-tags=TAG,...] \ [--source-service-accounts=IAM_SERVICE_ACCOUNT,_] \ [--destination-ranges=CIDR_RANGE,...] \ [--rules=[PROTOCOL[:PORT[-PORT]],…]] \ [--disabled | --no-disabled] \ [--enable-logging | --no-enable-logging]
Les descriptions de chaque option sont identiques à celles utilisées pour créer des règles de pare-feu. Vous trouverez plus d'informations sur chacune d'elles dans la documentation de référence du SDK.
API
Envoyez une requête PATCH pour mettre à jour les champs suivants : allowed
, description
, sourceRanges
, sourceTags
ou targetTags
. Envoyez une requête PUT ou POST pour tous les autres champs.
(PATCH|(POST|PUT)) https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/FIREWALL_NAME { "name": "FIREWALL_NAME", "network": "projects/PROJECT-ID/global/networks/NETWORK", ... other fields }
Remplacez les espaces réservés par des valeurs valides :
PROJECT_ID
correspond à l'ID du projet où se trouve le réseau VPC.NETWORK
correspond au nom du réseau VPC où se trouve la règle de pare-feu.FIREWALL_NAME
correspond au nom de la règle de pare-feu à mettre à jour.
Pour obtenir plus d'informations et la description de chaque champ, reportez-vous à la méthode firewalls.patch
ou firewalls.update
.
C#
Go
Java
Node.js
PHP
Python
Ruby
Répertorier les règles de pare-feu pour un réseau VPC
Dans Cloud Console, vous pouvez répertorier toutes les règles de pare-feu de votre projet ou d'un réseau VPC particulier. Pour chaque règle de pare-feu, Cloud Console affiche des détails tels que le type, les cibles et les filtres de la règle.
Si vous activez la journalisation des règles de pare-feu, Firewall Insights peut fournir des insights sur vos règles de pare-feu afin de vous aider à mieux comprendre et optimiser en toute sécurité leurs configurations. Par exemple, vous pouvez afficher quelles règles allow
n'ont pas été utilisées au cours des six dernières semaines.
Pour en savoir plus, consultez la section sur l'utilisation de l'écran de détails des règles de pare-feu dans la documentation Firewall Insights.
Console
Pour afficher toutes les règles de pare-feu pour l'ensemble des réseaux de votre projet, procédez comme suit :
- Accédez à la page "Pare-feu" de Google Cloud Console.
Accéder à la page Pare-feu
Pour afficher les règles de pare-feu sur un réseau particulier, procédez comme suit :
- Accédez à la page "Réseaux VPC" dans Google Cloud Console.
Accéder à la page Réseaux VPC - Cliquez sur le nom d'un réseau VPC pour accéder à sa page de détails.
- Sur la page de détails du réseau, cliquez sur l'onglet Règles de pare-feu.
gcloud
La commande suivante génère une liste triée des règles de pare-feu pour un réseau donné ([NETWORK-NAME]
).
gcloud compute firewall-rules list --filter network=NETWORK \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, targetTags.list():label=TARGET_TAGS )"
API
Répertoriez toutes les règles de pare-feu pour un réseau donné.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/?filter=network="NETWORK
Remplacez les espaces réservés par des valeurs valides :
PROJECT_ID
correspond à l'ID du projet où se trouve le réseau VPC.NETWORK
correspond au nom du réseau VPC qui contient les règles de pare-feu à répertorier.
Pour plus d'informations, reportez-vous à la méthode firewalls.list
.
C#
Go
Java
Node.js
PHP
Python
Ruby
Répertorier les règles de pare-feu pour l'interface réseau d'une instance de VM
Pour chaque interface réseau, Cloud Console répertorie les règles de pare-feu qui s'appliquent à l'interface et les règles qui sont réellement utilisées par celle-ci. Les règles de pare-feu peuvent masquer d'autres règles. Il est donc possible que toutes les règles s'appliquant à une interface ne soient pas réellement utilisées par cette dernière.
Les règles de pare-feu sont associées et appliquées à des instances de VM via le paramètre cible d'une règle. En affichant toutes les règles appliquées, vous pouvez vérifier si une règle particulière est réellement appliquée à une interface.
Si vous activez la journalisation des règles de pare-feu, Firewall Insights peut fournir des insights sur vos règles de pare-feu afin de vous aider à mieux comprendre et optimiser en toute sécurité leurs configurations. Par exemple, vous pouvez afficher les règles d'une interface qui ont été appelées au cours des six dernières semaines. Pour en savoir plus, consultez la section sur l'utilisation de l'écran de détails de l'interface réseau de la VM dans la documentation Firewall Insights.
Pour afficher les règles applicables à une interface réseau spécifique d'une instance de VM :
- Accédez à la page "Instances de VM" dans Google Cloud Console et recherchez l'instance à afficher.
Accéder à la page Instances de VM - Dans le menu Autres actions de l'instance (
), sélectionnez Afficher les détails du réseau.
- Si une instance comporte plusieurs interfaces réseau, sélectionnez celle à afficher dans la section Informations sur l'interface réseau.
- Dans la section Détails des pare-feu et des routes, sélectionnez l'onglet Règles de pare-feu.
- Affichez la table pour déterminer si le trafic en provenance ou à destination d'une adresse IP spécifique est autorisé.
Afficher les détails des règles de pare-feu
Vous pouvez inspecter une règle de pare-feu pour voir son nom, son réseau et ses composants, et vérifier si la règle est activée ou désactivée.
Console
- Répertoriez vos règles de pare-feu. Vous pouvez afficher une liste de toutes les règles ou uniquement celles d'un réseau donné.
- Cliquez sur la règle pour l'afficher.
gcloud
La commande suivante décrit une règle de pare-feu individuelle. Remplacez [FIREWALL-NAME]
par le nom de la règle de pare-feu. Les noms de règles de pare-feu étant uniques à chaque projet, vous n'avez pas besoin de spécifier un réseau pour décrire une règle existante.
gcloud compute firewall-rules describe [FIREWALL-NAME]
API
Décrivez une règle de pare-feu donnée.
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/FIREWALL_NAME
Remplacez les espaces réservés par des valeurs valides :
PROJECT_ID
est l'ID du projet dans lequel se trouve la règle de pare-feu.FIREWALL_NAME
correspond au nom de la règle de pare-feu à décrire.
Pour plus d'informations, reportez-vous à la méthode firewalls.get
.
Supprimer des règles de pare-feu
Console
- Répertoriez vos règles de pare-feu. Vous pouvez afficher une liste de toutes les règles ou uniquement celles d'un réseau donné.
- Cliquez sur la règle à supprimer.
- Cliquez sur Supprimer.
- Cliquez à nouveau sur Supprimer pour confirmer votre choix.
gcloud
La commande suivante supprime une règle de pare-feu. Remplacez [FIREWALL-NAME]
par le nom de la règle à supprimer.
gcloud compute firewall-rules delete [FIREWALL-NAME]
API
Supprimez une règle de pare-feu.
DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/FIREWALL_NAME
Remplacez les espaces réservés par des valeurs valides :
PROJECT_ID
est l'ID du projet dans lequel se trouve la règle de pare-feu.FIREWALL_NAME
correspond au nom de la règle de pare-feu à supprimer.
Pour plus d'informations, reportez-vous à la méthode firewalls.delete
.
C#
Go
Java
Node.js
PHP
Python
Ruby
Surveiller des règles de pare-feu
Vous pouvez activer la journalisation des règles de pare-feu pour voir quelle règle a autorisé ou bloqué quel trafic. Consultez la section Utiliser la journalisation des règles de pare-feu pour obtenir des instructions.
Configurer des règles de pare-feu pour les cas d'utilisation courants
Les sections suivantes fournissent un exemple de CLI gcloud et l'API permettant de recréer les règles de pare-feu prédéfinies créées pour les réseaux par défaut. Vous pouvez utiliser les exemples ci-dessous pour créer des règles similaires pour vos réseaux en mode automatique et personnalisé. Chaque règle de pare-feu peut inclure des plages d'adresses IPv4 ou IPv6, mais pas les deux.
Autoriser les connexions d'entrée internes entre les VM
Les exemples suivants créent une règle de pare-feu pour autoriser les connexions internes TCP, UDP et ICMP à vos instances de VM, de la même manière que la règle allow-internal
pour les réseaux par défaut :
gcloud
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:0-65535,udp:0-65535,ICMP_PROTOCOL \ --source-ranges=SUBNET_RANGES
Remplacez les éléments suivants :
NAME
: nom de cette règle de pare-feu.NETWORK
: nom du réseau auquel s'applique cette règle de pare-feu. La valeur par défaut estdefault
.ICMP_PROTOCOL
: spécifiezICMPv4
à l'aide du nom du protocoleicmp
ou du numéro de protocole1
. SpécifiezICMPv6
à l'aide du numéro de protocole58
.SUBNET_RANGES
: une ou plusieurs plages d'adresses IP. Si vous incluez une plage d'adresses IP, le trafic de cette plage peut atteindre n'importe quelle destination de VM dans le réseau VPC. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée.Plages de sous-réseaux IPv4 :
- Les réseaux VPC en mode automatique utilisent des plages d'adresses IP situées dans
10.128.0.0/9
. - Les réseaux en mode personnalisé peuvent utiliser n'importe quelle plage IPv4 valide. Si vous n'utilisez pas de plages contiguës pour les sous-réseaux de votre réseau VPC, vous devrez peut-être spécifier plusieurs plages.
- Vous pouvez utiliser
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
pour autoriser le trafic provenant de toutes les plages d'adresses IPv4 privées (plages RFC 1918).
Plages de sous-réseaux IPv6 :
Si vous avez attribué une plage d'adresses IPv6 interne à votre réseau VPC, vous pouvez l'utiliser comme plage source. Si vous utilisez la plage IPv6 interne du réseau VPC, la règle de pare-feu inclut toutes les plages de sous-réseaux IPv6 internes actuelles et futures. Vous pouvez trouver la plage IPv6 interne du réseau VPC à l'aide de la commande suivante :
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
Vous pouvez également spécifier des plages de sous-réseaux IPv6 internes spécifiques.
Pour autoriser le trafic provenant des plages de sous-réseaux IPv6 externes des sous-réseaux à double pile, vous devez spécifier la plage d'adresses IPv6 de chaque sous-réseau à inclure.
- Les réseaux VPC en mode automatique utilisent des plages d'adresses IP situées dans
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "0-65535" ] }, { "IPProtocol": "udp", "ports": [ "0-65535" ] }, { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "SUBNET_RANGES" ] }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet où se trouve le réseau VPC.FIREWALL_NAME
: nom du réseau VPC dans lequel la règle de pare-feu est créée.NETWORK
: nom de la règle de pare-feu à laquelle s'applique la règle. La valeur par défaut estdefault
.ICMP_PROTOCOL
: spécifiezICMPv4
à l'aide du nom du protocoleicmp
ou du numéro de protocole1
. SpécifiezICMPv6
à l'aide du numéro de protocole58
.INTERNAL_SOURCE_RANGES
: une ou plusieurs plages d'adresses IP. Pour autoriser le trafic interne dans tous les sous-réseaux de vos réseaux VPC, spécifiez les plages d'adresses IP utilisées dans votre réseau VPC. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée.Plages de sous-réseaux IPv4 :
- Les réseaux VPC en mode automatique utilisent des plages d'adresses IP situées dans
10.128.0.0/9
. - Les réseaux en mode personnalisé peuvent utiliser n'importe quelle plage IPv4 valide. Si vous n'utilisez pas de plages contiguës pour les sous-réseaux de votre réseau VPC, vous devrez peut-être spécifier plusieurs plages.
- Vous pouvez utiliser
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
pour autoriser le trafic provenant de toutes les plages d'adresses IPv4 privées (plages RFC 1918).
Plages de sous-réseaux IPv6 :
Si vous avez attribué une plage d'adresses IPv6 interne à votre réseau VPC, vous pouvez l'utiliser comme plage source. Si vous utilisez la plage IPv6 interne du réseau VPC, la règle de pare-feu inclut toutes les plages de sous-réseaux IPv6 internes actuelles et futures. Vous pouvez trouver la plage IPv6 interne du réseau VPC à l'aide de la commande suivante :
gcloud compute networks describe NETWORK \ --format="flattened(internalIpv6Range)"
Vous pouvez également spécifier des plages de sous-réseaux IPv6 internes spécifiques.
Pour autoriser le trafic provenant des plages de sous-réseaux IPv6 externes des sous-réseaux à double pile, vous devez spécifier la plage d'adresses IPv6 de chaque sous-réseau à inclure.
- Les réseaux VPC en mode automatique utilisent des plages d'adresses IP situées dans
Autoriser les connexions SSH d'entrée vers les VM
Les exemples suivants créent une règle de pare-feu pour autoriser les connexions SSH à vos instances de VM, de la même manière que la règle allow-ssh
pour les réseaux par défaut :
gcloud
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:22 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Remplacez les éléments suivants :
NAME
: nom de cette règle de pare-feu.NETWORK
: nom du réseau auquel s'applique cette règle de pare-feu. La valeur par défaut estdefault
.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'inclusion de
35.235.240.0/20
dans les plages sources permet les connexions SSH à l'aide du transfert TCP Identity-Aware Proxy (IAP) si toutes les autres conditions préalables sont remplies. Pour en savoir plus, consultez la page Utiliser IAP pour le transfert TCP. - L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'inclusion de
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet où se trouve le réseau VPC.FIREWALL_NAME
: nom du réseau VPC dans lequel la règle de pare-feu est créée.NETWORK
: nom de la règle de pare-feu.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'inclusion de
35.235.240.0/20
dans les plages sources permet les connexions SSH à l'aide du transfert TCP Identity-Aware Proxy (IAP) si toutes les autres conditions préalables sont remplies. Pour en savoir plus, consultez la page Utiliser IAP pour le transfert TCP. - L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'inclusion de
Autoriser les connexions RDP d'entrée vers les VM
Les exemples suivants créent une règle de pare-feu autorisant les connexions RDP (Microsoft Remote Desktop Protocol) à vos instances de VM, semblable à la règle allow-rdp
pour les réseaux par défaut :
gcloud
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=tcp:3389 \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Remplacez les éléments suivants :
NAME
: nom de cette règle de pare-feu.NETWORK
: nom du réseau auquel s'applique cette règle de pare-feu. La valeur par défaut estdefault
.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'inclusion de
35.235.240.0/20
dans les plages sources permet les connexions TRD à l'aide du transfert TCP Identity-Aware Proxy (IAP) si toutes les autres conditions préalables sont remplies. Pour en savoir plus, consultez la page Utiliser IAP pour le transfert TCP. - L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'inclusion de
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "allowed": [ { "IPProtocol": "tcp", "ports": [ "3389" ] } ], "sourceRanges": [ "EXTERNAL_SOURCE_RANGES" ] }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet où se trouve le réseau VPC.FIREWALL_NAME
: nom du réseau VPC dans lequel la règle de pare-feu est créée.NETWORK
: nom de la règle de pare-feu.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'inclusion de
35.235.240.0/20
dans les plages sources permet les connexions TRD à l'aide du transfert TCP Identity-Aware Proxy (IAP) si toutes les autres conditions préalables sont remplies. Pour en savoir plus, consultez la page Utiliser IAP pour le transfert TCP. - L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'inclusion de
Autoriser les connexions ICMP d'entrée vers les VM
Les exemples suivants créent une règle de pare-feu pour autoriser les connexions ICMP à vos instances de VM, de la même manière que la règle allow-icmp
pour les réseaux par défaut :
gcloud
gcloud compute firewall-rules create NAME \ --action=ALLOW \ --direction=INGRESS \ --network=NETWORK; default="default" \ --priority=1000 \ --rules=ICMP_PROTOCOL \ --source-ranges=RANGES_OUTSIDE_VPC_NETWORK
Remplacez les éléments suivants :
NAME
: nom de cette règle de pare-feu.NETWORK
: nom du réseau auquel s'applique cette règle de pare-feu. La valeur par défaut estdefault
.ICMP_PROTOCOL
: spécifiezICMPv4
à l'aide du nom du protocoleicmp
ou du numéro de protocole1
. SpécifiezICMPv6
à l'aide du numéro de protocole58
.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'utilisation de
API
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "kind": "compute#firewall", "name": "FIREWALL_NAME", "network": "projects/PROJECT_ID/global/networks/NETWORK", "direction": "INGRESS", "priority": 1000, "targetTags": [], "allowed": [ { "IPProtocol": "ICMP_PROTOCOL" } ], "sourceRanges": [ "RANGES_OUTSIDE_VPC_NETWORK" ] }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet où se trouve le réseau VPC.FIREWALL_NAME
: nom du réseau VPC dans lequel la règle de pare-feu est créée.NETWORK
: nom de la règle de pare-feu.ICMP_PROTOCOL
: spécifiezICMPv4
à l'aide du nom du protocoleicmp
ou du numéro de protocole1
. SpécifiezICMPv6
à l'aide du numéro de protocole58
.RANGES_OUTSIDE_VPC_NETWORK
: une ou plusieurs plages d'adresses IP. Vous pouvez spécifier des plages IPv4 ou IPv6 dans une règle de pare-feu donnée. Il est recommandé de spécifier les plages d'adresses IP spécifiques à partir desquelles vous devez autoriser l'accès, plutôt que toutes les sources IPv4 ou IPv6.- L'utilisation de
0.0.0.0/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv4, y compris de sources en dehors de Google Cloud. - L'utilisation de
::/0
en tant que plage source autorise le trafic provenant de toutes les sources IPv6, y compris de sources en dehors de Google Cloud.
- L'utilisation de
Autres exemples de configuration
Le diagramme ci-dessous illustre un exemple de configuration de pare-feu. Le scénario implique un réseau my-network
contenant les éléments suivants :
- Un sous-réseau
subnet1
avec une plage d'adresses IP de10.240.10.0/24
- Un sous-réseau
subnet2
avec une plage d'adresses IP de192.168.1.0/24
- Une instance
vm1
dans le sous-réseausubnet2
avec le tagwebserver
et l'adresse IP interne192.168.1.2
- Une instance
vm2
dans le sous-réseausubnet2
avec le tagdatabase
et l'adresse IP interne192.168.1.3
Exemple 1 : Refuser toutes les connexions TCP entrantes, sauf celles à destination du port 80
depuis le sous-réseau subnet1
Cet exemple crée un ensemble de règles de pare-feu qui refuse toutes les connexions TCP entrantes, à l'exception de celles destinées au port 80
depuis le sous-réseau subnet1
.
Créez une règle de pare-feu pour refuser tout le trafic TCP entrant sur les instances avec le tag
webserver
.gcloud compute firewall-rules create deny-subnet1-webserver-access \ --network NETWORK_NAME \ --action deny \ --direction ingress \ --rules tcp \ --source-ranges 0.0.0.0/0 \ --priority 1000 \ --target-tags webserver
Créez une règle de pare-feu pour autoriser toutes les adresses IP du sous-réseau
subnet1
(10.240.10.0/24
) à accéder au port TCP80
sur les instances avec le tagwebserver
.gcloud compute firewall-rules create vm1-allow-ingress-tcp-port80-from-subnet1 \ --network NETWORK_NAME \ --action allow \ --direction ingress \ --rules tcp:80 \ --source-ranges 10.240.10.0/24 \ --priority 50 \ --target-tags webserver
Exemple 2 : Refuser toutes les connexions TCP sortantes, sauf celles à destination du port 80
de vm1
Créez une règle de pare-feu pour refuser tout le trafic TCP sortant.
gcloud compute firewall-rules create deny-all-access \ --network NETWORK_NAME \ --action deny \ --direction egress \ --rules tcp \ --destination-ranges 0.0.0.0/0 \ --priority 1000
Créez une règle de pare-feu pour autoriser le trafic TCP destiné au port
80
devm1
.gcloud compute firewall-rules create vm1-allow-egress-tcp-port80-to-vm1 \ --network NETWORK_NAME \ --action allow \ --direction egress \ --rules tcp:80 \ --destination-ranges 192.168.1.2/32 \ --priority 60
Exemple 3 : Autoriser les connexions TCP sortantes à destination du port 443
d'un hôte externe
Créez une règle de pare-feu permettant aux instances avec le tag webserver
d'envoyer le trafic TCP sortant vers le port 443
d'une adresse IP externe (192.0.2.5
).
gcloud compute firewall-rules create vm1-allow-egress-tcp-port443-to-192-0-2-5 \ --network NETWORK_NAME \ --action allow \ --direction egress \ --rules tcp:443 \ --destination-ranges 192.0.2.5/32 \ --priority 70 \ --target-tags webserver
Exemple 4 : Autoriser les connexions SSH de vm2
à vm1
Créez une règle de pare-feu qui permet au trafic SSH provenant d'instances avec le tag database
(vm2
) d'atteindre des instances avec le tag webserver
(vm1
).
gcloud compute firewall-rules create vm1-allow-ingress-tcp-ssh-from-vm2 \ --network NETWORK_NAME \ --action allow \ --direction ingress \ --rules tcp:22 \ --source-tags database \ --priority 80 \ --target-tags webserver
Exemple 5 : Autoriser le trafic TCP:1443 depuis le serveur Web vers la base de données à l'aide des comptes de service
Pour obtenir plus d'informations sur les comptes de service et les rôles, consultez la section Attribuer des rôles aux comptes de service.
Examinez le scénario décrit dans le diagramme ci-dessous, qui présente l'autoscaling de deux applications à l'aide de modèles : une application de serveur Web my-sa-web
et une application de base de données "my-sa-db". Un administrateur de sécurité souhaite autoriser les flux TCP sur le port de destination 1443
depuis my-sa-web
vers my-sa-db
.
Voici les étapes de configuration (y compris la création des comptes de service) :
Un éditeur ou propriétaire de projet crée les comptes de service
my-sa-web
etmy-sa-db
.gcloud iam service-accounts create my-sa-web \ --display-name "webserver service account"
gcloud iam service-accounts create my-sa-db \ --display-name "database service account"
Le propriétaire de projet attribue au développeur du serveur Web
web-dev@example.com
un rôle serviceAccountUser pour le compte de servicemy-sa-web
en définissant une stratégie IAM (Identity and Access Management).gcloud iam service-accounts add-iam-policy-binding \ my-sa-web@my-project.iam.gserviceaccount.com \ --member='user:web-dev@example.com' \ --role='roles/iam.serviceAccountUser'
Le propriétaire de projet attribue au développeur de base de données "db-dev@example.com" un rôle serviceAccountUser pour le compte de service
my-sa-db
en définissant une stratégie IAM.gcloud iam service-accounts add-iam-policy-binding \ my-sa-db@my-project.iam.gserviceaccount.com \ --member='user:db-dev@example.com' \ --role='roles/iam.serviceAccountUser'
Le développeur
web-dev@example.com
, qui a le rôle d'administrateur d'instance, crée un modèle d'instance de serveur Web et autorise les instances à s'exécuter en tant que compte de servicemy-sa-web
.gcloud compute instance-templates create [INSTANCE_TEMPLATE_NAME] \ --service-account my-sa-web@my-project-123.iam.gserviceaccount.com
Le développeur
db-dev@example.com
, qui a le rôle d'administrateur d'instance, crée un modèle d'instance de base de données et autorise les instances à s'exécuter en tant que compte de servicemy-sa-db
.gcloud compute instance-templates create [INSTANCE_TEMPLATE_NAME] \ --service-account my-sa-db@my-project-123.iam.gserviceaccount.com
L'administrateur de sécurité crée les règles de pare-feu à l'aide des comptes de service pour autoriser le trafic
TCP:1443
du compte de servicemy-sa-web
vers le compte de servicemy-sa-db
.gcloud compute firewall-rules create FIREWALL_NAME \ --network network_a \ --allow TCP:1443 \ --source-service-accounts my-sa-web@my-project.iam.gserviceaccount.com \ --target-service-accounts my-sa-db@my-project.iam.gserviceaccount.com
Dépannage
Messages d'erreur lors de la création ou de la mise à jour d'une règle de pare-feu
Un des messages d'erreur suivants peut s'afficher :
Should not specify destination range for ingress direction.
Les plages de destination ne sont pas des paramètres valides pour les règles de pare-feu d'entrée. Les règles de pare-feu sont supposées être des règles d'entrée, à moins qu'un sens de sortie (
egress
) ne soit spécifiquement défini. Si vous créez une règle qui ne spécifie pas de direction, elle est créée en tant que règle d'entrée, sans plage de destination. En outre, les plages de sources ne constituent pas des paramètres valides pour les règles de sortie.Firewall direction cannot be changed once created.
Vous ne pouvez pas modifier la direction d'une règle de pare-feu existante. Vous devez créer une nouvelle règle avec les paramètres corrects, puis supprimer l'ancienne.
Firewall traffic control action cannot be changed once created.
Vous ne pouvez pas modifier l'action d'une règle de pare-feu existante. Vous devez créer une nouvelle règle avec les paramètres corrects, puis supprimer l'ancienne.
Service accounts must be valid RFC 822 email addresses.
Le compte de service spécifié dans la règle de pare-feu doit être une adresse e-mail au format RFC 822.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts invalid-email
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – Invalid value for field 'resource.sourceServiceAccounts[0]': 'invalid-email'. Service accounts must be valid RFC 822 email addresses.
ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
Vous ne pouvez pas spécifier à la fois des comptes de service et des tags dans la même règle.gcloud compute firewall-rules create bad --allow tcp --source-service-accounts test@google.com --target-tags target
Creating firewall...failed. ERROR: (gcloud.compute.firewall-rules.create) Could not fetch resource: – ServiceAccounts and Tags are mutually exclusive and can't be combined in the same firewall rule.
Impossibilité de se connecter à l'instance de VM
Si vous n'arrivez pas à vous connecter à une instance de VM, vérifiez vos règles de pare-feu.
Si vous lancez la connexion à partir d'une autre instance de VM, répertoriez les règles de pare-feu de sortie pour cette instance.
gcloud compute firewall-rules list --filter network=[NETWORK-NAME] \ --filter EGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
Vérifiez si l'adresse IP de destination est refusée par les règles de sortie. La règle avec la priorité la plus élevée (définie par la valeur la plus faible) remplace les règles avec les priorité moins élevées. Dans le cas de deux règles avec une priorité identique, la règle de refus est prioritaire.
Vérifiez la règle de pare-feu d'entrée pour le réseau qui contient l'instance de VM de destination.
gcloud compute firewall-rules list --filter network=[NETWORK-NAME] \ --filter INGRESS \ --sort-by priority \ --format="table( name, network, direction, priority, sourceRanges.list():label=SRC_RANGES, destinationRanges.list():label=DEST_RANGES, allowed[].map().firewall_rule().list():label=ALLOW, denied[].map().firewall_rule().list():label=DENY, sourceTags.list():label=SRC_TAGS, sourceServiceAccounts.list():label=SRC_SVC_ACCT, targetTags.list():label=TARGET_TAGS, targetServiceAccounts.list():label=TARGET_SVC_ACCT )"
Exemple de résultat. Les résultats dépendent de votre liste de règles de pare-feu.
NAME NETWORK DIRECTION PRIORITY SRC_RANGES DEST_RANGES ALLOW DENY SRC_TAGS SRC_SVC_ACCT TARGET_TAGS TARGET_SVC_ACCT default-allow-icmp default INGRESS 65534 0.0.0.0/0 icmp default-allow-internal default INGRESS 65534 10.128.0.0/9 tcp:0-65535,udp:0-65535,icmp default-allow-rdp default INGRESS 65534 0.0.0.0/0 tcp:3389 default-allow-ssh default INGRESS 65534 0.0.0.0/0 tcp:22 firewall-with-sa default INGRESS 1000 tcp:10000 test1@google.com target@google.com
Vous pouvez également effectuer des tests de connectivité depuis/vers des instances de VM d'un réseau VPC vers un autre réseau VPC ou vers un réseau autre que Google Cloud pour déterminer si le trafic est interrompu par des règles de pare-feu d'entrée ou de sortie. Pour plus d'informations sur l'exécution de tests de connectivité pour résoudre différents problèmes, consultez la page Exécuter des tests de connectivité.
Ma règle de pare-feu est-elle activée ou désactivée ?
Pour voir si une règle de pare-feu est activée ou désactivée, consultez les détails des règles de pare-feu.
Dans Google Cloud Console, cherchez Enabled
(activé) ou Disabled
(désactivé) sous Application.
Dans le résultat généré par Google Cloud CLI, recherchez le champ disabled
.
Si disabled:false
est affiché, la règle est activée et appliquée. Si disabled: true
est affiché, la règle est désactivée.
Quelle règle est appliquée sur une instance de VM ?
Après avoir créé une règle, vous pouvez vérifier si elle est appliquée correctement sur une instance particulière. Pour plus d'informations, consultez la section Répertorier les règles de pare-feu pour l'interface réseau d'une instance de VM.
Les règles de pare-feu contenant des tags sources ne prennent pas effet immédiatement.
La propagation des règles de pare-feu d'entrée avec des tags sources peut prendre du temps. Pour en savoir plus, consultez les remarques liées aux tags sources pour les règles de pare-feu d'entrée.
Étape suivante
- Consultez la section Présentation des règles de pare-feu pour plus d'informations sur les règles de pare-feu.