Para centralizar la administración y aplicar de forma coherente las políticas de seguridad en tus redes de nube privada virtual (VPC), migra tus reglas de firewall de VPC que usan etiquetas de red y cuentas de servicio de origen a una política de firewall de red global. De esta manera, puedes reducir tu superficie de ataque, optimizar la configuración del firewall y reforzar los límites de seguridad identificando y abordando las reglas demasiado permisivas.
Este documento está dirigido a administradores de redes, ingenieros de seguridad y arquitectos de seguridad que configuran y administran políticas de seguridad de redes.
Para migrar reglas que no usan etiquetas de red ni cuentas de servicio, consulta Migra reglas de firewall de VPC que no usan etiquetas de red y cuentas de servicio.
Para completar esta migración, realiza las siguientes tareas:
- Evalúa el entorno.
- Enumera las etiquetas de red y las cuentas de servicio existentes.
- Crea etiquetas seguras para cada etiqueta de red y cuenta de servicio de origen.
- Asigna las etiquetas de red y las cuentas de servicio a las etiquetas seguras que crees.
- Vincula etiquetas seguras a máquina virtual (VM).
- Migra las reglas de firewall de VPC a una política de firewall de red global.
- Revisa la nueva política de firewall de red.
- Completa las tareas posteriores a la migración.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init - Asegúrate de tener el rol de Administrador de seguridad de Compute (
roles/compute.securityAdmin).
Evalúa el entorno
Antes de migrar tus reglas de firewall de VPC a una política de firewall de red global, evalúa tu entorno existente y los roles y los permisos de Identity and Access Management (IAM):
- Identifica la cantidad de reglas de firewall de VPC en tu red de VPC.
- Toma nota de las prioridades asociadas con cada regla de firewall de VPC.
- Asegúrate de tener los roles y los permisos de IAM necesarios para crear, asociar, modificar y ver políticas de firewall de red globales.
Asegúrate de tener los roles y permisos de IAM necesarios para crear, actualizar y borrar definiciones de etiquetas seguras.
En la siguiente tabla, se proporciona un resumen de los diversos roles necesarios para crear y administrar etiquetas seguras:
Nombre del rol Tareas realizadas Rol de administrador de etiquetas ( roles/resourcemanager.tagAdmin)Crea, actualiza y borra definiciones de etiquetas. Para obtener más información, consulta Administra etiquetas. Rol de visualizador de etiquetas ( roles/resourcemanager.tagViewer)Visualiza las definiciones y etiquetas de etiquetas que se adjuntan a los recursos. Rol de usuario de etiquetas ( roles/resourcemanager.tagUser)Agrega y quita las etiquetas adjuntas a los recursos.
Enumera las etiquetas de red y las cuentas de servicio existentes
Determina si tus reglas de firewall de VPC usan etiquetas de red o cuentas de servicio, y crea un archivo JSON para guardar los detalles de las etiquetas de red y las cuentas de servicio existentes.
Para exportar las etiquetas de red y las cuentas de servicio de tu red a un archivo JSON de asignación, usa el comando gcloud beta compute firewall-rules migrate con la marca --export-tag-mapping:
gcloud beta compute firewall-rules migrate \
--source-network=NETWORK_NAME \
--export-tag-mapping \
--tag-mapping-file=TAG_MAPPING_FILE
Reemplaza lo siguiente:
NETWORK_NAME: El nombre de la red de VPC que contiene las reglas de firewall de VPC que deseas migrar.TAG_MAPPING_FILE: el nombre del archivo JSON de asignación.
Si tus reglas de firewall de VPC solo contienen cuentas de servicio, el archivo JSON generado solo contendrá cuentas de servicio. Del mismo modo, si tus reglas de firewall de VPC solo contienen etiquetas de red, el archivo JSON generado solo contendrá etiquetas de red. Las cuentas de servicio tienen el prefijo sa, y las etiquetas de red no tienen ningún prefijo.
Por ejemplo, el siguiente archivo JSON generado contiene una etiqueta de red sql-server y una cuenta de servicio example@example.com.
{"sql-server": null, "sa:example@example.com": null}
Crea etiquetas seguras
Según las etiquetas de red y las cuentas de servicio de origen enumeradas en el archivo de asignación, debes crear las etiquetas seguras correspondientes en tu red.
Las nuevas etiquetas seguras sirven como reemplazo de las etiquetas de red y las cuentas de servicio, y conservan la configuración de red original después de la migración.
Como principal con el rol de administrador de etiquetas, para cada etiqueta de red y cuenta de servicio, crea el par clave-valor de etiqueta segura correspondiente.
Para crear una clave y un valor de etiqueta seguros para cada etiqueta de red y cuenta de servicio, usa el comando gcloud resource-manager tags keys create y el comando gcloud resource-manager tags values create:
gcloud resource-manager tags keys create TAG_KEY \
--parent=organizations/ORGANIZATION_ID \
--purpose=GCE_FIREWALL \
--purpose-data=network=PROJECT_ID/NETWORK_NAME
gcloud resource-manager tags values create TAG_VALUE \
--parent=ORGANIZATION_ID/TAG_KEY
Reemplaza lo siguiente:
TAG_KEY: Es el nombre de la clave de etiqueta segura.ORGANIZATION_ID: Es el ID de la organización.PROJECT_ID: el ID del proyectoNETWORK_NAMEes el nombre de la red de VPC.TAG_VALUE: Es el valor que se asignará a la clave de etiqueta segura.
Por ejemplo, si tienes una regla de firewall de VPC con una etiqueta de red llamada sql-server, crea un par clave-valor de etiqueta segura correspondiente de sql-server:production.
gcloud resource-manager tags keys create sql-server \
--parent=organizations/123456 \
--purpose=GCE_FIREWALL \
--purpose-data=network=test-project/test-network
gcloud resource-manager tags values create production \
--parent=123456/sql-server
Asigna etiquetas de red y cuentas de servicio a etiquetas seguras
Después de crear etiquetas seguras regidas por IAM para cada etiqueta de red y cuenta de servicio que usan las reglas de firewall de tu VPC, debes asignar las etiquetas seguras a las etiquetas de red y cuentas de servicio correspondientes en el archivo JSON de asignación.
Edita el archivo JSON para asignar las etiquetas de red y las cuentas de servicio a las etiquetas seguras correspondientes.
{"sql-server": "tagValues/yyyyy", "sa:example@example.com": "tagValues/zzzzz"}
Por ejemplo, el siguiente archivo JSON asigna la etiqueta de red sql-server al valor de etiqueta segura de la clave sql-server y la cuenta de servicio example@example.com al valor de etiqueta segura de la clave example@example.com:
{"sql-server": "tagValues/production", "sa:example@example.com": "tagValues/example"}
Vincula etiquetas seguras a las VMs
Según el archivo JSON de asignación de etiquetas, vincula las etiquetas seguras recién creadas a las VMs a las que se adjuntan las etiquetas de red existentes:
Como principal con el rol de administrador de etiquetas, haz lo siguiente:
- Revisa los permisos necesarios para adjuntar etiquetas seguras a los recursos de Google Cloud .
- Asigna el rol de usuario de etiquetas al principal que usa las etiquetas seguras y las vincula a las VMs.
Como principal con el rol de usuario de etiquetas, vincula las etiquetas seguras a las instancias de VM con el comando
gcloud beta compute firewall-rules migratecon la marca--bind-tags-to-instances:gcloud beta compute firewall-rules migrate \ --source-network=NETWORK_NAME \ --bind-tags-to-instances \ --tag-mapping-file=TAG_MAPPING_FILEReemplaza lo siguiente:
NETWORK_NAMEes el nombre de la red de VPC.TAG_MAPPING_FILE: El nombre del archivo JSON de asignación.
Migra las reglas de firewall de VPC a una política de firewall de red global.
Para migrar reglas de firewall de VPC a una política de firewall de red global, usa el comando gcloud beta compute firewall-rules migrate:
gcloud beta compute firewall-rules migrate \
--source-network=NETWORK_NAME \
--target-firewall-policy=POLICY_NAME \
--tag-mapping-file=TAG_MAPPING_FILE
Reemplaza lo siguiente:
NETWORK_NAME: El nombre de la red de VPC que contiene las reglas de firewall de VPC que deseas migrar.POLICY_NAME: Es el nombre de la política de firewall de red global que se creará durante la migración.TAG_MAPPING_FILE: el nombre del archivo JSON de asignación.
Excluye reglas de firewall de la migración
Para excluir reglas de firewall específicas de la migración, usa el comando gcloud beta compute
firewall-rules migrate con la marca --exclusion-patterns-file:
gcloud beta compute firewall-rules migrate \
--source-network=NETWORK_NAME \
--target-firewall-policy=POLICY_NAME \
--exclusion-patterns-file=EXCLUSION_PATTERNS_FILE
Reemplaza lo siguiente:
NETWORK_NAME: El nombre de la red de VPC que contiene las reglas de firewall de VPC que deseas migrar.POLICY_NAME: Es el nombre de la política de firewall de red global que se creará durante la migración.EXCLUSION_PATTERNS_FILE: Es el nombre del archivo que contiene expresiones regulares que definen patrones de nombres de firewall de VPC para excluir de la migración. Asegúrate de especificar la ruta de acceso completa del archivo. Se omiten las reglas de firewall que coinciden con los patrones especificados.Cuando definas los patrones de exclusión, ten en cuenta lo siguiente:
- Cada expresión regular debe estar en su propia línea y representar un solo patrón de nomenclatura de firewall.
- Las expresiones regulares no contienen espacios en blanco iniciales ni finales.
Cómo ver las reglas de firewall excluidas
Según los patrones de nombres de reglas de firewall excluidas, la herramienta de migración no migra algunas reglas de firewall, como las reglas de firewall de Google Kubernetes Engine (GKE). Para exportar la lista de patrones de nombres de reglas de firewall excluidas, usa el comando gcloud beta compute firewall-rules migrate con las marcas --export-exclusion-patterns y --exclusion-patterns-file.
gcloud beta compute firewall-rules migrate \
--source-network=NETWORK_NAME \
--target-firewall-policy=POLICY_NAME \
--exclusion-patterns-file=EXCLUSION_PATTERNS_FILE \
--export-exclusion-patterns
Reemplaza lo siguiente:
NETWORK_NAME: El nombre de la red de VPC que contiene las reglas de firewall de VPC que deseas migrar.POLICY_NAME: Es el nombre de la política de firewall de red global que se creará durante la migración.EXCLUSION_PATTERNS_FILE: Es la ruta de acceso del archivo en el que se exportan los siguientes patrones de nombres de reglas de firewall excluidas.gke-(.+)-ipv6-all gke-(.+)-(.+)-((master)|(vms)|(all)|(inkubelet)|(exkubelet)|(mcsd)) k8s-fw-(l7-)?(.+) k8s-(.+)-((node)|(http)|(node-http))-hc (.+)-hc k8s2-(.+)-(.+)-(.+)-(.+)(-fw)? k8s2-(.+)-l4-shared-hc-fw gke((gw)|(mcg))1-l7-(.+)-(.+)
Para migrar las reglas de firewall excluidas que coinciden con un patrón específico, quita el patrón de la lista exportada y ejecuta el comando gcloud beta compute
firewall-rules migrate con la marca --exclusion-patterns-file.
Forzar la migración y conservar el orden de evaluación
Durante la migración, si el orden de evaluación de una regla de firewall excluida se encuentra entre los órdenes de evaluación de las reglas de firewall especificadas por el usuario, la migración falla.Esto sucede porque las reglas de firewall excluidas no se migran, y la herramienta de migración no puede conservar el orden de evaluación original de las reglas definidas por el usuario en la nueva política de firewall de red.
Por ejemplo, si tus reglas de firewall tienen las siguientes prioridades, la migración fallará.
- Una regla especificada por el usuario con prioridad 100
- Una regla excluida con prioridad 200
- Una regla especificada por el usuario con prioridad 300
Para forzar la migración de las reglas especificadas por el usuario con la herramienta de migración y, al mismo tiempo, conservar su orden de evaluación original y omitir las reglas de firewall excluidas, usa el comando gcloud beta compute firewall-rules migrate con la marca --force.
gcloud beta compute firewall-rules migrate \
--source-network=NETWORK_NAME \
--target-firewall-policy=POLICY_NAME \
--force
Reemplaza lo siguiente:
NETWORK_NAME: El nombre de la red de VPC que contiene las reglas de firewall de VPC que deseas migrar.POLICY_NAME: Es el nombre de la política de firewall de red global que se creará durante la migración.
Revisa la nueva política de firewall de red global
Antes de asociar la política recién creada a una red de VPC, Google recomienda que revises la política para asegurarte de que el proceso de migración se haya completado con exactitud.
Verifica la siguiente información:
La configuración de las reglas de la política de firewall es correcta, y los siguientes componentes de reglas se migran de forma correcta para cada regla:
- Prioridad relativa
- Dirección del tráfico
- Acción en caso de coincidencia
- Configuración de registros
- Parámetros de destino
- Parámetros de origen (para reglas de entrada)
- Parámetros de destino (para reglas de salida)
- Restricciones de protocolos y puertos
Verifica si las etiquetas seguras están adjuntas a la VM correcta. Para verificar esto, usa el comando
gcloud resource-manager tags bindings list:gcloud resource-manager tags bindings list \ --location=ZONE_ID \ --parent=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE_ID/instances/INSTANCE_NAME \ --effectiveReemplaza lo siguiente:
ZONE_ID: la zona de la VM.PROJECT_ID: el ID del proyectoINSTANCE_NAME: el nombre de la VM.
Tareas posteriores a la migración
Para activar y usar la nueva política de firewall de red global, completa las tareas posteriores a la migración. Para obtener más información, consulta Tareas posteriores a la migración.
¿Qué sigue?
- Obtén más información para conocer cómo migrar las reglas de firewall de VPC.
- Migra las reglas de firewall de VPC sin dependencias.