gcloud compute firewall-rules update NAME [--allow=[PROTOCOL[:PORT[-PORT]],…]] [--description=DESCRIPTION] [--destination-ranges=[CIDR_RANGE,…]] [--disabled] [--[no-]enable-logging] [--logging-metadata=LOGGING_METADATA] [--priority=PRIORITY] [--rules=[PROTOCOL[:PORT[-PORT]],…]] [--source-ranges=[CIDR_RANGE,…]] [--source-service-accounts=[EMAIL,…]] [--source-tags=[TAG,…]] [--target-service-accounts=[EMAIL,…]] [--target-tags=[TAG,…]] [GCLOUD_WIDE_FLAG …]
gcloud compute firewall-rules update is used to update firewall
rules that allow/deny incoming/outgoing traffic. The firewall rule will only be
updated for arguments that are specifically passed. Other attributes will remain
unaffected. The action flag (whether to allow or deny matching
traffic) cannot be defined when updating a firewall rule; use gcloud compute
firewall-rules delete to remove the rule instead.
RULE to enable
logging, run:
gcloud compute firewall-rules update RULE --enable-loggingNAME--allow=[PROTOCOL[:PORT[-PORT]],…]
The protocols allowed over this connection. This can be the (case-sensitive)
string values tcp, udp, icmp,
esp, ah, sctp, or any IP protocol number.
An IP-based protocol must be specified for each rule. The rule applies only to
specified protocol.
For port-based protocols - tcp, udp, and
sctp - a list of destination ports or port ranges to which the rule
applies may optionally be specified. If no port or port range is specified, the
rule applies to all destination ports.
The ICMP protocol is supported, but there is no support for configuring ICMP packet filtering by ICMP code.
For example, to create a rule that allows TCP traffic through port 80 and ICMP traffic:
gcloud compute firewall-rules update MY-RULE --allow tcp:80,icmpTo create a rule that allows TCP traffic from port 20000 to 25000:
gcloud compute firewall-rules update MY-RULE --allow tcp:20000-25000To create a rule that allows all TCP traffic:
gcloud compute firewall-rules update MY-RULE --allow tcp--description=DESCRIPTION--destination-ranges=[CIDR_RANGE,…]Setting this will override the existing destination ranges for the firewall. The following will clear the existing destination ranges:
gcloud compute firewall-rules update MY-RULE --destination-ranges--disabledgcloud compute firewall-rules update MY-RULE --no-disabled--[no-]enable-logginggcloud compute firewall-rules update MY-RULE --enable-loggingTo disable logging on an existing rule, run:
gcloud compute firewall-rules update MY-RULE --no-enable-logging--enable-logging to enable and --no-enable-logging
to disable.
--logging-metadata=LOGGING_METADATALOGGING_METADATA must be one of:
exclude-all, include-all.
--priority=PRIORITY--rules=[PROTOCOL[:PORT[-PORT]],…]PROTOCOL is the IP protocol whose traffic will be checked. PROTOCOL can be either the name of a well-known protocol (e.g., tcp or icmp) or the IP protocol number. A list of IP protocols can be found at http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
A port or port range can be specified after PROTOCOL to which the firewall rule apply on traffic through specific ports. If no port or port range is specified, connections through all ranges are applied. TCP and UDP rules must include a port or port range.
Setting this will override the current values.--source-ranges=[CIDR_RANGE,…]
If neither --source-ranges nor --source-tags are specified, --source-ranges
defaults to 0.0.0.0/0, which means that the rule applies to all
incoming IPv4 connections from inside or outside the network. If both
--source-ranges and --source-tags are specified, the rule matches if either the
range of the source matches --source-ranges or the tag of the source matches
--source-tags.
Setting this will override the existing source ranges for the firewall. The following will clear the existing source ranges:
gcloud compute firewall-rules update MY-RULE --source-ranges--source-service-accounts=[EMAIL,…]If a source service account is specified then neither source tags nor target tags can also be specified.
Setting this will override the existing source service accounts for the firewall. The following will clear the existing source service accounts:
gcloud compute firewall-rules update MY-RULE --source-service-accounts--source-tags=[TAG,…]0.0.0.0/0,
which means that the rule applies to all incoming IPv4 connections from inside
or outside the network.
If both --source-ranges and --source-tags are specified, an inbound connection is allowed if either the range of the source matches --source-ranges or the tag of the source matches --source-tags.
Tags can be assigned to instances during instance creation.
If source tags are specified then neither a source nor target service account can also be specified.
Setting this will override the existing source tags for the firewall. The following will clear the existing source tags:
gcloud compute firewall-rules update MY-RULE --source-tags--target-service-accounts=[EMAIL,…]If a target service account is specified then neither source tag nor target tags can also be specified.
Setting this will override the existing target service accounts for the firewall. The following will clear the existing target service accounts:
gcloud compute firewall-rules update MY-RULE --target-service-accounts--target-tags=[TAG,…]If target tags are specified, then neither a source nor target service account can also be specified.
If both target tags and target service account are omitted, all instances on the network can receive connections that match the rule.
Setting this will override the existing target tags for the firewall. The following will clear the existing target tags:
gcloud compute firewall-rules update MY-RULE --target-tags--access-token-file,
--account, --billing-project,
--configuration,
--flags-file,
--flatten, --format, --help, --impersonate-service-account,
--log-http,
--project, --quiet, --trace-token, --user-output-enabled,
--verbosity.
Run $ gcloud help for details.
gcloud alpha compute firewall-rules updategcloud beta compute firewall-rules updategcloud preview compute firewall-rules update
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-05-27 UTC.