Configurar actualizaciones por lotes de reglas de políticas de cortafuegos

En esta página se explica cómo configurar la actualización por lotes de todas las reglas de políticas de cortafuegos (políticas de cortafuegos jerárquicas y de red). Para realizar la actualización por lotes, puedes usar Google Cloud CLI o la API Compute Engine.

Para obtener más información sobre las actualizaciones por lotes, consulta la página de resumen.

Si usas gcloud CLI para actualizar por lotes las reglas de la política de cortafuegos, usa los siguientes comandos de gcloud CLI:

  • export-rules: te permite exportar la configuración de las reglas de la política de cortafuegos a un archivo YAML. En el archivo YAML, puede añadir, modificar y eliminar la configuración de las reglas de la política de cortafuegos según sus necesidades.

  • import-rules: te permite importar el archivo de configuración de las reglas de la política de cortafuegos modificadas. Sustituye las reglas de la política de cortafuegos especificada.

Si usas APIs REST para actualizar por lotes las reglas de la política de cortafuegos, usa el método patch. El método patch te permite sustituir todas las reglas de la política de cortafuegos proporcionando el campo rules en la solicitud. No es necesario crear un archivo YAML. Cuando uses el método patch, mantén las reglas goto_next predeterminadas con la prioridad más baja.

Antes de empezar

Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso por el que se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine tal como se describe en esta sección.

Consola

Cuando usas la Google Cloud consola para acceder Google Cloud a servicios y APIs, no tienes que configurar la autenticación.

gcloud

  1. Después de instalar la CLI de Google Cloud, inicialízala ejecutando el siguiente comando:

    
    gcloud init
    
    

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  2. Define la región y la zona predeterminadas en tu cliente local.

REST

Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

Después de instalar la CLI de Google Cloud, inicialízala ejecutando el siguiente comando:


gcloud init

Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

Para obtener más información, consulta el artículo Autenticarse para usar REST en laGoogle Cloud documentación de autenticación.

Crear un archivo YAML

Puedes usar el comando export-rules para exportar las reglas de una política de cortafuegos a un archivo YAML. Para obtener más información, consulta Exportar una regla de política de cortafuegos. El archivo YAML exportado incluye las reglas goto_next predeterminadas con la prioridad más baja (reglas con una prioridad igual o superior a 2147483644). Asegúrate de no modificar estas reglas goto_next predeterminadas.

Sin embargo, si no quieres usar el comando export-rules, también puedes crear un archivo YAML manualmente para editar las reglas. Para crear un archivo YAML manualmente, siga estos pasos:

  1. Crea un archivo YAML RULES_YAML_FILE. Sustituye RULES_YAML_FILE por el nombre de archivo que quieras.

  2. Añade el campo rules al archivo YAML. El campo rules contiene una lista de las reglas de la política de cortafuegos. Para ver un esquema que describa el formato de exportación o importación, consulta CLOUDSDKROOT/lib/googlecloudsdk/schemas/compute/beta/FirewallPolicy.yaml. Donde CLOUDSDKROOT es el directorio de instalación de Google Cloud CLI.

    A continuación, se muestra un ejemplo de un esquema YAML.

        rules:
        -action: deny
         description:
         priority: 1
         disabled: false
         enable-logging: false
         kind: compute#firewallPolicyRule
         ...
        -action: goto_next
         priority: 2
         disabled: false
         enable-logging: false
         ...
      

    Para modificar las reglas de la política de cortafuegos, consulta Modificar reglas de la política de cortafuegos.

Exportar una regla de política de cortafuegos

Puedes iniciar actualizaciones con la CLI de gcloud o con la API de Compute Engine.

Exportar una política de cortafuegos jerárquica

Exporta las reglas de la política de cortafuegos jerárquica.

gcloud

Para exportar reglas de una política de cortafuegos jerárquica, usa el comando gcloud compute firewall-policies export-rules:

gcloud compute firewall-policies export-rules FIREWALL_POLICY \
    --destination=DESTINATION \
    --organization=ORGANIZATION

Haz los cambios siguientes:

  • FIREWALL_POLICY: el nombre abreviado o el ID de la política de cortafuegos jerárquica de la que quieres exportar las reglas.
  • DESTINATION: ruta a un archivo YAML donde se exportará la configuración
  • ORGANIZATION: organización en la que se va a actualizar la política de firewall de la organización. Se debe definir si FIREWALL_POLICY es un nombre corto.

API

Para exportar las reglas de la política de cortafuegos jerárquica, usa el método firewallPolicies.get de la API Compute Engine:

  GET https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Haz los cambios siguientes:

Exportar una política de cortafuegos de red

Exporta las reglas de cortafuegos de la política de cortafuegos de red.

gcloud

Para exportar la configuración de las reglas de una política de cortafuegos de red a un archivo, usa el comando gcloud compute network-firewall-policies export-rules:

gcloud compute network-firewall-policies export-rules FIREWALL_POLICY \
    --destination=RULES_YAML_FILE_PATH \
    --global | --region=REGION

Haz los cambios siguientes:

  • FIREWALL_POLICY: nombre de la política de cortafuegos de red de la que se van a exportar las reglas
  • RULES_YAML_FILE_PATH: ruta a un archivo YAML en el que se exporta la configuración.
  • REGION: especifica --global si se trata de una política global o REGION si es una política regional.

API

Para exportar las reglas de la política de cortafuegos de red global, usa el método networkFirewallPolicies.get de la API de Compute Engine:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicies/FIREWALL_POLICY_NAME
   

Haz los cambios siguientes:

  • PROJECT: el ID de tu proyecto
  • FIREWALL_POLICY_NAME: el nombre de la política de cortafuegos que quieras exportar

Para exportar las reglas de la política de cortafuegos de red regional, usa el método regionNetworkFirewallPolicies.get de la API Compute Engine:

GET https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME

Haz los cambios siguientes:

  • PROJECT: el ID de tu proyecto
  • REGION: la región de las reglas de la política de cortafuegos
  • FIREWALL_POLICY_NAME: el nombre de la política de cortafuegos que quieras exportar

Esta solicitud devuelve una definición de recurso de política de cortafuegos.

Modificar reglas de política de cortafuegos

Modifica las reglas de la política de cortafuegos que has exportado en la sección anterior.

  1. Abre el archivo exportado. Por ejemplo, RULES_YAML_FILE.

  2. Añade el campo rules, como se muestra en el siguiente ejemplo.

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
      

  3. Añade los campos de configuración adicionales, como action, direction y priority. A continuación, se muestra un ejemplo de un archivo YAML básico.

        rules:
         -action: allow
          description: test-rule1
          direction: INGRESS
          disabled: false
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 1
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -::/0
            layer4Configs:
            -ipProtocol: all
          priority: 2147483644
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -::/0
          priority: 2147483645
          ruleTupleCount: 2
         -action: goto_next
          description: default egress rule
          direction: EGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            destIpRanges:
            -198.51.100.0/24
            layer4Configs:
            -ipProtocol: all
          priority: 2147483646
          ruleTupleCount: 2
         -action: goto_next
          description: default ingress rule
          direction: INGRESS
          enableLogging: false
          kind: compute#firewallPolicyRule
          match:
            layer4Configs:
            -ipProtocol: all
            srcIpRanges:
            -192.0.2.0/24
          priority: 2147483647
          ruleTupleCount: 2
      

Importar reglas de política de cortafuegos

Importe las reglas a su política de cortafuegos después de cambiar el archivo con las actualizaciones por lotes que necesite. Si importa el archivo modificado, las reglas de política de cortafuegos se sustituirán por las que se proporcionen.

Importar reglas de políticas de cortafuegos jerárquicas

Importa las reglas de cortafuegos a la política de cortafuegos jerárquica.

gcloud

Para importar reglas a la política de cortafuegos jerárquica, usa el comando gcloud compute firewall-policies import-rules:

gcloud compute firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --organization=ORGANIZATION

Haz los cambios siguientes:

  • FIREWALL_POLICY: nombre abreviado o ID de la política de cortafuegos jerárquica que quieras actualizar
  • RULES_YAML_FILE_PATH: ruta al archivo YAML desde el que se importarán las reglas.
  • ORGANIZATION: organización en la que se va a actualizar la política de firewall de la organización. Se debe definir si FIREWALL_POLICY es un nombre corto.

API

Para importar las reglas de la política de cortafuegos, usa el método firewallPolicies.patch de la API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/locations/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Haz los cambios siguientes:

Importar una política de cortafuegos de red

Importa el archivo YAML de reglas de cortafuegos modificado a la política de cortafuegos de red.

gcloud

Para importar reglas a la política de cortafuegos de red, usa el comando gcloud compute network-firewall-policies import-rules:

gcloud compute network-firewall-policies import-rules FIREWALL_POLICY \
    --source=RULES_YAML_FILE_PATH \
    --global | --region=REGION

Haz los cambios siguientes:

  • FIREWALL_POLICY: nombre de la política de cortafuegos de red que quieres actualizar
  • RULES_YAML_FILE_PATH: la ruta elegida para importar las reglas.
  • REGION: especifica --global si se trata de una política global o REGION si es una política regional.

API

Para importar las reglas de la política de cortafuegos de red modificadas, usa el método networkFirewallPolicies.patch de la API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/global/firewallPolicy/FIREWALL_POLICY_NAME
  

Haz los cambios siguientes:

  • PROJECT: el ID de proyecto de las reglas de la política de cortafuegos de red
  • FIREWALL_POLICY_NAME: el nombre de la política de cortafuegos de red que quieras exportar

Para importar las reglas de la política de cortafuegos de red regional modificadas, usa el método regionNetworkFirewallPolicies.patch de la API Compute Engine:

  PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/firewallPolicies/FIREWALL_POLICY_NAME
   

Haz los cambios siguientes:

  • PROJECT: el ID de proyecto de las reglas de la política de cortafuegos de red regional
  • REGION: la región de las reglas de la política de cortafuegos
  • FIREWALL_POLICY_NAME: el nombre de la política de cortafuegos que quieras exportar

    Esta solicitud devuelve una definición de recurso de política de cortafuegos de red.

Siguientes pasos