Configurar políticas de seguridad de Cloud Armor

Sigue estas instrucciones para crear políticas de seguridad de Google Cloud Armor que filtren el tráfico entrante a tu aplicación. Para obtener información conceptual sobre las políticas de seguridad, consulta la información general sobre las políticas de seguridad de Cloud Armor.

Antes de empezar

Antes de configurar las políticas de seguridad, haz lo siguiente:

  • Familiarízate con los conceptos del balanceador de carga de aplicación externo.

  • Examina tus servicios de backend para determinar cuáles no tienen una política de seguridad adjunta. Estos servicios de backend y sus backends asociados no están protegidos por Cloud Armor. Para añadir la protección que ofrece Cloud Armor, sigue las instrucciones de este documento para asociar una política de seguridad recién creada o ya existente al servicio de backend.

Configurar permisos de gestión de identidades y accesos para políticas de seguridad de Cloud Armor

Las siguientes operaciones requieren el rol de gestión de identidades y accesos Administrador de seguridad de Compute (roles/compute.securityAdmin):

  • Configurar, modificar, actualizar y eliminar una política de seguridad de Cloud Armor
  • Usando los siguientes métodos de la API:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

Un usuario con el rol Administrador de red de Compute (roles/compute.networkAdmin) puede realizar las siguientes operaciones:

  • Configurar una política de seguridad de Cloud Armor para un servicio de backend
  • Usando los siguientes métodos de la API:
    • BackendServices setSecurityPolicy
    • BackendServices list (solo gcloud)

Los usuarios con el rol Administrador de seguridad (roles/iam.securityAdmin) y el rol Administrador de redes de Compute pueden ver las políticas de seguridad de Cloud Armor mediante los métodos de la API SecurityPolicies get, list y getRule.

Configurar permisos de gestión de identidades y accesos para roles personalizados

En la siguiente tabla se indican los permisos base de los roles de gestión de identidades y accesos y los métodos de API asociados.

Permiso de gestión de identidades y accesos Métodos de la API
compute.securityPolicies.create SecurityPolicies insert
compute.securityPolicies.delete SecurityPolicies delete
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
compute.securityPolicies.list SecurityPolicies list
compute.securityPolicies.use BackendServices setSecurityPolicy
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
compute.backendServices.setSecurityPolicy BackendServices setSecurityPolicy

Crear políticas de seguridad

Puede configurar políticas, reglas y expresiones de seguridad de Cloud Armor mediante la consola de Google Cloud , la CLI de Google Cloud o la API REST. Cuando uses la CLI de gcloud para crear políticas de seguridad, usa la marca --type para especificar si la política de seguridad es una política de seguridad de backend o una política de seguridad perimetral.

Si no sabes cómo configurar las políticas de seguridad, te recomendamos que consultes ejemplos de políticas de seguridad.

Expresiones de ejemplo

A continuación, se muestran algunas expresiones de ejemplo. Para obtener más información sobre las expresiones, consulta la referencia del lenguaje de reglas personalizadas de Cloud Armor.

Si configuras una regla o una expresión que usa códigos de país o región ISO 3166-1 alfa 2, Cloud Armor trata cada código de forma independiente. Las reglas y expresiones de Cloud Armor usan explícitamente esos códigos de región para permitir o denegar solicitudes.

  • La siguiente expresión busca coincidencias con las solicitudes de la dirección IP 1.2.3.4 y contiene la cadena example en el encabezado User-Agent:

    inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    

    También puede usar el atributo origin.user_ip para buscar coincidencias en el intervalo de direcciones IP de un encabezado de dirección IP de cliente personalizado:

    inIpRange(origin.user_ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
    
  • La siguiente expresión se corresponde con las solicitudes que tienen una cookie con un valor específico:

    has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
    
  • La siguiente expresión coincide con las solicitudes de la región AU:

    origin.region_code == 'AU'
    
  • La siguiente expresión coincide con las solicitudes de la región AU que no están en el intervalo de IPs especificado:

    origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
    
  • La siguiente expresión se compara con las solicitudes que tienen una ruta de variable numerada a un archivo específico si la URI coincide con una expresión regular:

    request.path.matches('/path/[0-9]+/target_file.html')
    
  • La siguiente expresión se corresponde con las solicitudes si el valor decodificado en Base64 del encabezado user-id contiene un valor específico:

    has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
    
  • La siguiente expresión usa un conjunto de expresiones preconfigurado para detectar ataques de inyección de SQL:

    evaluatePreconfiguredWaf('sqli-stable')
    

Gestionar políticas de seguridad

Consulta las siguientes secciones para ver una lista de las políticas de seguridad de tu proyecto, actualizarlas, eliminarlas o probarlas.

Mostrar lista de políticas de seguridad

Sigue estas instrucciones para enumerar todas las políticas de seguridad de Cloud Armor del proyecto actual o de un proyecto que especifiques.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. Para ver una política concreta, en la página Políticas de seguridad, en la lista de políticas, haz clic en su nombre.

gcloud

gcloud compute security-policies list

Por ejemplo:

gcloud compute security-policies list

Resultado:

NAME: my-policy
REGION: us-central1

Para obtener más información, consulta gcloud compute security-policies list.

Actualizar políticas de seguridad

Sigue estas instrucciones para actualizar una política de seguridad de Cloud Armor. Por ejemplo, puede modificar la descripción de la política, el comportamiento de la regla predeterminada, el servicio backend de destino o añadir reglas.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. Para actualizar una política concreta, en la página Políticas de seguridad, en la lista de políticas, haz clic en Menú de la política que quieras actualizar.

    • Para actualizar la descripción de la política de la acción de la regla predeterminada, selecciona Editar, haz los cambios que consideres oportunos y, a continuación, haz clic en Actualizar.
    • Para añadir una regla, selecciona Añadir regla y sigue las instrucciones que se indican en el artículo Añadir reglas a una política de seguridad.
    • Para cambiar el servicio backend de destino de la política, seleccione Aplicar política al destino, haga clic en Añadir destino, seleccione un destino y, a continuación, haga clic en Añadir.

gcloud

Para actualizar una política de seguridad, sigue estas instrucciones de la CLI de Google Cloud:

Eliminar políticas de seguridad

Sigue estas instrucciones para eliminar una política de seguridad de Cloud Armor. Debes quitar todos los servicios de backend de la política antes de poder eliminarla.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, marque la casilla situada junto al nombre de la política de seguridad que quiera eliminar.

  3. En la esquina superior derecha de la página, haz clic en Eliminar.

gcloud

Usa el valor gcloud compute security-policies delete NAME. Sustituye NAME por el nombre de la política de seguridad:

gcloud compute security-policies delete NAME

Probar políticas de seguridad

Te recomendamos que implementes todas las reglas nuevas en modo de vista previa y, a continuación, examines los registros de solicitudes para verificar que las políticas y las reglas se comportan como esperas.

Gestionar reglas de políticas de seguridad

En las siguientes secciones se explica cómo listar, añadir, actualizar o eliminar reglas de políticas de seguridad.

Listar las reglas de una política de seguridad

Sigue estas instrucciones para enumerar las reglas de una política de seguridad de Cloud Armor.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se muestra la página Detalles de la política y las reglas de la política se indican en la pestaña Reglas, situada en el centro de la página.

gcloud

Usa el siguiente comando gcloud para mostrar todas las reglas de una sola política de seguridad junto con una descripción de la política:

gcloud compute security-policies describe NAME \

Usa el siguiente comando gcloud para enumerar todas las reglas de una sola política de seguridad de una región específica junto con una descripción de la política:

gcloud compute security-policies describe NAME \
  --region REGION

Usa el siguiente comando gcloud para describir una regla con la prioridad especificada en la política de seguridad especificada:

gcloud compute security-policies rules describe PRIORITY \
    --security-policy POLICY_NAME

Por ejemplo, el siguiente comando describe la regla con la prioridad 1000 en la política de seguridad my-policy:

gcloud compute security-policies rules describe 1000 \
    --security-policy my-policy

Resultado:

action: deny(403)
description: block traffic from 192.0.2.0/24 and 198.51.100.0/24
kind: compute#securityPolicyRule
match:
  srcIpRanges:
  - '192.0.2.0/24'
  - '198.51.100.0/24'
preview: false
priority: 1000

Para obtener más información, consulta gcloud compute security-policies describe.

Añadir reglas a una política de seguridad

Sigue estas instrucciones para añadir reglas a una política de seguridad de Cloud Armor.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Reglas.

  4. Haz clic en Añadir regla.

  5. Opcional: Escribe una descripción de la regla.

  6. Selecciona el modo:

    • Modo básico: permite o deniega el tráfico en función de las direcciones o los intervalos de IP.
    • Modo avanzado: permite o deniega el tráfico en función de expresiones de reglas.
  7. En el campo Concordancia, especifique las condiciones en las que se aplica la regla:

    • Modo básico: introduzca de uno (1) a diez (10) intervalos de direcciones IP que coincidan con la regla. Puede añadir un máximo de 10 intervalos de direcciones IP. Para ver los límites, consulta las cuotas y los límites de Cloud Armor.

    • Modo avanzado: introduce una expresión o subexpresiones para evaluarlas en las solicitudes entrantes. Para obtener información sobre cómo escribir las expresiones y leer los ejemplos que se muestran a continuación, consulte la referencia del lenguaje de reglas personalizadas.

      • La siguiente expresión busca coincidencias con las solicitudes de la dirección IP 1.2.3.4 y contiene la cadena example en el encabezado User-Agent:

        inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')
        
      • La siguiente expresión se corresponde con las solicitudes que tienen una cookie con un valor específico:

        has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')
        
      • La siguiente expresión coincide con las solicitudes de la región AU:

        origin.region_code == 'AU'
        
      • La siguiente expresión coincide con las solicitudes de la región AU que no están en el intervalo de IPs especificado:

        origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
        
      • La siguiente expresión coincide con las solicitudes si el URI coincide con una expresión regular:

        request.path.matches('/example_path/')
        
      • La siguiente expresión se corresponde con las solicitudes si el valor decodificado en Base64 del encabezado user-id contiene un valor específico:

        has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')
        
      • La siguiente expresión usa un conjunto de expresiones preconfigurado para detectar ataques de inyección de SQL:

        evaluatePreconfiguredWaf('sqli-stable')
        
  8. En Acción, selecciona Permitir o Denegar.

  9. Si vas a configurar una regla de denegación, selecciona un mensaje de Estado de denegación.

  10. Si quiere habilitar el modo de vista previa de la regla, seleccione la casilla Habilitar.

  11. En el campo Priority (Prioridad), introduce un número entero positivo.

  12. Haz clic en Añadir.

gcloud

Usa el comando gcloud compute security-policies rules create PRIORITY. Sustituye PRIORITY por la prioridad de la regla en la política:

gcloud compute security-policies rules create PRIORITY \
    --security-policy POLICY_NAME \
    --description DESCRIPTION \
    --src-ip-ranges IP_RANGES | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ] \
    --preview

Por ejemplo, el siguiente comando añade una regla para bloquear el tráfico de los intervalos de direcciones IP 192.0.2.0/24 y 198.51.100.0/24. La regla tiene la prioridad 1000 y es una regla de una política llamada my-policy:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
    --src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
    --action "deny-403"

Usa la marca --expression para especificar una condición en la referencia del lenguaje de reglas personalizadas. El siguiente comando añade una regla para permitir el tráfico de la dirección IP 1.2.3.4 y contiene la cadena example en el encabezado User-Agent:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
    --action allow \
    --description "Block User-Agent 'example'"

El siguiente comando añade una regla para bloquear las solicitudes si la cookie de la solicitud contiene un valor específico:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['cookie']) && request.headers['cookie'].contains('80=BLAH')" \
    --action deny-403 \
    --description "Cookie Block"

El siguiente comando añade una regla para bloquear las solicitudes de la región AU:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == 'AU'" \
    --action deny-403 \
    --description "AU block"

El siguiente comando añade una regla para bloquear las solicitudes de la región AU que no estén en el intervalo de IPs especificado:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')" \
    --action deny-403 \
    --description "country and IP block"

El siguiente comando añade una regla para bloquear las solicitudes con un URI que coincida con una expresión regular:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "request.path.matches('/example_path/')" \
    --action deny-502 \
    --description "regex block"

El siguiente comando añade una regla para bloquear las solicitudes si el valor decodificado en Base64 del encabezado user-id contiene un valor específico:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
    --action deny-403 \
    --description "country and IP block"

El siguiente comando añade una regla que usa un conjunto de expresiones preconfigurado para mitigar los ataques de inyección de SQL:

gcloud compute security-policies rules create 1000 \
    --security-policy my-policy \
    --expression "evaluatePreconfiguredWaf('sqli-stable')" \
    --action deny-403

Actualizar una sola regla de una política de seguridad

Sigue estas instrucciones para actualizar una sola regla de una política de seguridad de Cloud Armor. Para actualizar varias reglas de forma atómica, consulta Actualizar varias reglas de forma atómica en una política de seguridad.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Reglas.

  4. Junto a la regla que quieras actualizar, haz clic en Editar. Se mostrará la página Editar regla.

  5. Haz los cambios que quieras y, a continuación, haz clic en Actualizar.

gcloud

Usa este comando para actualizar una regla con la prioridad especificada en una política de seguridad designada. Solo puedes actualizar una política de seguridad a la vez con este comando:

gcloud compute security-policies rules update PRIORITY [ \
    --security-policy POLICY_NAME  \
    --description DESCRIPTION  \
    --src-ip-ranges IP_RANGES  | --expression EXPRESSION \
    --action=[ allow | deny-403 | deny-404 | deny-502 ]  \
    --preview
  ]
  

Por ejemplo, el siguiente comando actualiza una regla con prioridad 1111 para permitir el tráfico del intervalo de direcciones IP 192.0.2.0/24:

gcloud compute security-policies rules update 1111 \
    --security-policy my-policy \
    --description "allow traffic from 192.0.2.0/24" \
    --src-ip-ranges "192.0.2.0/24" \
    --action "allow"

Para obtener más información sobre este comando, consulta gcloud compute security-policies rules update.

Para actualizar la prioridad de una regla, debes usar la API REST. Para obtener más información, consulta securityPolicies.patchRule.

Actualizar de forma atómica varias reglas de una política de seguridad

Una actualización atómica aplica cambios a varias reglas en una sola actualización. Si actualizas las reglas una a una, es posible que observes un comportamiento inesperado, ya que las reglas antiguas y las nuevas pueden funcionar juntas durante un breve periodo.

Para actualizar varias reglas de forma atómica, exporta la política de seguridad actual a un archivo JSON o YAML y, a continuación, modifícalo. Usa el archivo modificado para crear una política de seguridad y, a continuación, cambia la política de seguridad de los servicios backend correspondientes.

gcloud

  1. Exporta la política que quieras actualizar, tal como se muestra en el siguiente ejemplo:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
    

    La política exportada tendrá un aspecto similar al siguiente ejemplo:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredWaf('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  2. Usa cualquier editor de texto para modificar la política. Por ejemplo, puede modificar las prioridades de las reglas que ya tenga y añadir una nueva:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: deny(404)
      description: my-rule-1
      match:
        expr:
          expression: evaluatePreconfiguredWaf('xss-stable')
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 1
    - action: allow
      description: my-new-rule
      match:
        config:
          srcIpRanges:
          - '1.2.3.1'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 10
    - action: allow
      description: my-rule-2
      match:
        config:
          srcIpRanges:
          - '1.2.3.4'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 11
    - action: deny
      description: default rule
      kind: compute#securityPolicyRule
      match:
        config:
          srcIpRanges:
          - '*'
        versionedExpr: SRC_IPS_V1
      preview: false
      priority: 2147483647
    selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
    
  3. Crea una política de seguridad de Cloud Armor y especifica el nombre y el formato del archivo modificado, como se muestra en el siguiente ejemplo:

    gcloud compute security-policies create new-policy \
        --file-name modified-policy \
        --file-format yaml
    
  4. Elimina la política de seguridad antigua del servicio de backend correspondiente, como se muestra en el siguiente ejemplo:

    gcloud compute backend-services update my-backend \
        --security-policy ""
    
  5. Añade la nueva política de seguridad al servicio de backend, tal como se muestra en el siguiente ejemplo:

    gcloud compute backend-services update my-backend \
        --security-policy new-policy
    
  6. Si no se usa la política antigua, elimínala:

    gcloud compute security-policies delete my-policy
    

Eliminar reglas de una política de seguridad

Sigue estas instrucciones para eliminar reglas de una política de seguridad de Cloud Armor.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Google Cloud Armor.

    Ir a las políticas de Google Cloud Armor

  2. Haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, en la pestaña Reglas, marque la casilla situada junto a la regla que quiera eliminar.

  4. Haz clic en Eliminar.

gcloud

Usa este comando para eliminar una regla con la prioridad especificada de una política de seguridad designada. Solo puedes modificar una política de seguridad a la vez, pero puedes eliminar varias reglas a la vez:

gcloud compute security-policies rules delete PRIORITY [...] [
    --security-policy POLICY_NAME \
  ]

Por ejemplo:

gcloud compute security-policies rules delete 1000 \
    --security-policy my-policy

Asociar y eliminar políticas de seguridad

En las siguientes secciones se explica cómo adjuntar y quitar políticas de seguridad de servicios y segmentos de backend.

Adjuntar una política de seguridad a un servicio de backend

Sigue estas instrucciones para asociar una política de seguridad de Cloud Armor a un servicio de backend. Una política de seguridad se puede adjuntar a más de un servicio de backend, pero un servicio de backend solo puede tener un tipo de política de seguridad adjunto.

Consola

Google Cloud
  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Objetivos.

  4. Haz clic en Aplicar política a nuevo objetivo.

  5. Haga clic en Añadir objetivo.

  6. En la lista Objetivo, selecciona un objetivo y, a continuación, haz clic en Añadir.

gcloud

Cuando adjuntes una política de seguridad de backend a un servicio de backend, usa el comando gcloud compute backend-services y la marca --security-policy:

gcloud compute backend-services update my-backend \
    --security-policy my-policy

Cuando adjuntes una política de seguridad perimetral a un servicio de backend, usa el comando gcloud compute backend-services y la marca --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy my-policy

Quitar una política de seguridad de un servicio backend

Sigue estas instrucciones para quitar una política de seguridad de backend o de perímetro de Cloud Armor de un servicio de backend.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Objetivos.

  4. Seleccione el servicio de backend de destino del que va a quitar la política.

  5. Haz clic en Quitar.

  6. En el mensaje Quitar objetivo, haga clic en Quitar.

gcloud

Para quitar una política de seguridad de backend, usa el comando gcloud compute backend-services y la marca --security-policy:

gcloud compute backend-services update my-backend \
    --security-policy ""

Para eliminar una política de seguridad perimetral, usa el comando gcloud compute backend-services y la marca --edge-security-policy:

gcloud compute backend-services update my-backend \
    --edge-security-policy ""

Asociar una política de seguridad a un backend de Cloud Storage

Sigue estas instrucciones para asociar una política de seguridad perimetral de Cloud Armor a un segmento de backend. Una política de seguridad perimetral se puede adjuntar a más de un backend.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Objetivos.

  4. Haz clic en Aplicar política a nuevo objetivo.

  5. Haga clic en Añadir objetivo.

  6. En la lista Objetivo, selecciona un objetivo y, a continuación, haz clic en Añadir.

gcloud

Cuando adjuntes una política de seguridad perimetral a un segmento de backend, usa el comando cloud compute backend-buckets y la marca --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy my-edge-policy

Quitar una política de seguridad de un segmento de backend

Sigue estas instrucciones para quitar una política de seguridad perimetral de Cloud Armor de un segmento de backend.

Consola

  1. En la Google Cloud consola, ve a la página Políticas de Cloud Armor.

    Ir a las políticas de Cloud Armor

  2. En la página Políticas de seguridad, haga clic en el nombre de la política de seguridad. Se mostrará la página Detalles de la política.

  3. En el centro de la página, haga clic en la pestaña Objetivos.

  4. Seleccione el servicio de backend de destino del que va a quitar la política.

  5. Haz clic en Quitar.

  6. En el mensaje Quitar objetivo, haga clic en Quitar.

gcloud

Para quitar una política de seguridad perimetral de un segmento de backend, usa el comando cloud compute backend-buckets y la marca --edge-security-policy:

gcloud compute backend-services update my-bucket \
    --edge-security-policy ""

Importar y exportar políticas de seguridad

En las siguientes secciones se explica cómo importar y exportar políticas de seguridad como archivos YAML o JSON.

Exportar políticas de seguridad

Puede exportar una política de seguridad de Cloud Armor como un archivo YAML o JSON mediante la CLI de Google Cloud. Esta función ofrece las siguientes ventajas:

  • Guardar una copia para controlar las versiones o crear una copia de seguridad: al exportar la política, se crea una copia local. Puedes guardar esta copia en sistemas de control de código fuente como copia de seguridad o para hacer un seguimiento de los cambios a lo largo del tiempo. Puede volver a importarla más adelante para restaurar una versión anterior de su política si es necesario.

  • Modificar y actualizar políticas de forma local: puedes modificar las políticas exportadas sin conexión a Internet con el editor de texto que prefieras. Después de hacer los cambios, vuelve a importar la política actualizada para aplicar las modificaciones a Cloud Armor.

gcloud

  1. En el siguiente comando, NAME es el nombre de la política de seguridad. Los formatos de archivo válidos son YAML y JSON. Si no proporcionas el formato de archivo, Cloud Armor usará el formato YAML predeterminado.

    gcloud compute security-policies export NAME \
        --file-name FILE_NAME  \
        --file-format FILE_FORMAT
    

    En el siguiente ejemplo se exporta la política de seguridad my-policy al archivo my-file en formato YAML:

    gcloud compute security-policies export my-policy \
        --file-name my-file \
        --file-format yaml
     

    En el siguiente ejemplo se muestra una política de seguridad exportada:

    description: my description
    fingerprint: PWfLGDWQDLY=
    id: '123'
    name: my-policy
    rules:
    - action: allow
      description: default rule
      match:
          config:
            srcIpRanges:
            - '*'
          versionedExpr: SRC_IPS_V1
        preview: false
        priority: 2147483647
      selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policy
      
  2. Puede modificar el archivo exportado con cualquier editor de texto y, a continuación, importarlo de nuevo a Google Cloud con el comando import.

Importar políticas de seguridad

Puedes importar políticas de seguridad de Cloud Armor desde un archivo YAML o JSON mediante la CLI de Google Cloud. No puedes usar el comando import para actualizar las reglas de una política. En su lugar, debes actualizar las reglas una a una mediante el procedimiento Actualizar una sola regla de una política de seguridad o todas a la vez mediante el procedimiento Actualizar atómicamente varias reglas de una política de seguridad.

gcloud

Para importar políticas de seguridad, usa el comando gcloud compute security-policies import NAME. Sustituye NAME por el nombre de la política de seguridad que vas a importar. Si no indica el formato del archivo, se asumirá el formato correcto en función de la estructura del archivo. Si la estructura no es válida, verás un error.

gcloud compute security-policies import NAME \
    --file-name FILE_NAME  \
   [--file-format FILE_FORMAT]

Por ejemplo, el siguiente comando actualiza la política my-policy importando el archivo my-file.

gcloud compute security-policies import my-policy \
    --file-name my-file \
    --file-format json

Si la huella digital de la política no está actualizada cuando la importas, Cloud Armor muestra un error. Esto significa que la política se ha modificado desde la última vez que la exportó. Para solucionarlo, usa el comando describe en la política para obtener la huella digital más reciente. Combina las diferencias entre la política descrita y la tuya, y sustituye la huella digital obsoleta por la más reciente.

Mostrar reglas preconfiguradas disponibles

Lista las reglas preconfiguradas para ver las reglas y firmas de protección de aplicaciones predefinidas, como el conjunto de reglas principales de OWASP, que proporciona Cloud Armor. Estas reglas preconfiguradas contienen varias firmas integradas que Cloud Armor usa para evaluar las solicitudes entrantes. Puedes añadir estas reglas preconfiguradas a reglas nuevas o ya creadas mediante la referencia del lenguaje de reglas personalizadas.

Para obtener más información, consulta las reglas preconfiguradas.

gcloud

  1. Ejecuta el comando gcloud compute security-policies list-preconfigured-expression-sets:

    gcloud compute security-policies list-preconfigured-expression-sets
    

    En el siguiente ejemplo se muestra el formato de la salida del comando:

    EXPRESSION_SET
    expression-set-1
       RULE_ID                SENSITIVITY
       expression-set-1-id-1  sensitivity-value-1
       expression-set-1-id-2  sensitivity-value-2
    expression-set-2
       alias-1
       RULE_ID                SENSITIVITY
       expression-set-2-id-1  sensitivity-value-1
       expression-set-2-id-2  sensitivity-value-2
    

    En el siguiente ejemplo se incluye una muestra del resultado real del comando. Ten en cuenta que el resultado real incluiría todas las reglas que se indican en Activar las reglas de WAF de Cloud Armor.

    gcloud compute security-policies list-preconfigured-expression-sets
    
    EXPRESSION_SET
    sqli-canary
        RULE_ID                          SENSITIVITY
        owasp-crs-v030001-id942110-sqli  2
        owasp-crs-v030001-id942120-sqli  2
        …
    xss-canary
        RULE_ID                         SENSITIVITY
        owasp-crs-v030001-id941110-xss  1
        owasp-crs-v030001-id941120-xss  1
    …
    sourceiplist-fastly
    sourceiplist-cloudflare
    sourceiplist-imperva
    

Siguientes pasos