Agrega etiquetas de red

Una etiqueta es solo una string de caracteres que se agrega al campo de etiquetas en un recurso, como las instancias de máquina virtual (VM) de Compute Engine o las plantillas de instancias. Una etiqueta no es un recurso independiente, por lo que no puedes crearla por separado. Se considera que todos los recursos con esa string tienen esa etiqueta. Las etiquetas te permiten hacer que las reglas de firewall y las rutas se puedan aplicar a instancias de VM específicas.

Puedes asignar las etiquetas de red a las VM nuevas cuando las creas o puedes editar el conjunto de etiquetas asignadas en cualquier momento posterior. Puedes editar las etiquetas de red sin detener una VM.

Especificaciones

Las etiquetas de red que asignas a una instancia se aplican a todas las interfaces de red de la instancia. Una etiqueta de red solo se aplica a las Redes de VPC que se adjuntan directamente a las interfaces de red de la instancia. Esto es así incluso en el Intercambio de tráfico de red de VPC, debido a que las redes de intercambio de tráfico siguen siendo redes distintas. Por lo tanto, las etiquetas de red aún son significativas en la red a la que se adjunta la interfaz de red de la instancia.

Las etiquetas de red deben comenzar con una letra minúscula y contener letras minúsculas, números y guiones. Las etiquetas deben terminar con una letra minúscula o un número.

Permisos

Se requieren las siguientes funciones de IAM para las tareas que se analizan en esta página. Para obtener más detalles, consulta Funciones de IAM de Compute Engine.

Tarea Función requerida
Asignar una etiqueta de red a una instancia nueva cuando se crea Propietario o editor del proyecto o administrador de instancias
Agrega o quita las etiquetas de red para las instancias existentes
Agregar, quitar o editar las reglas de firewall Propietario o editor del proyecto o administrador de seguridad

Límites

Los siguientes límites se aplican a las etiquetas de red:

Límite Valor Descripción
Cantidad máxima de etiquetas por VM 64 Todas las etiquetas de una VM deben ser únicas. Puedes asignar hasta 64 etiquetas diferentes por VM.
Cantidad máxima de caracteres por cada etiqueta 63
Caracteres aceptables para una etiqueta letras minúsculas, números, guiones Además:
• Las etiquetas deben comenzar con una letra en minúscula.
• Las etiquetas deben finalizar con un número o una letra minúscula.

Rutas y reglas de firewall

Las etiquetas de red te permiten aplicar las rutas y reglas de firewall a una instancia específica o a un conjunto de instancias:

  • Puedes usar etiquetas de destino y de origen para que una regla de firewall se pueda aplicar a instancias específicas.

  • Puedes usar una etiqueta para que una ruta se pueda aplicar a instancias específicas.

Destinos para las reglas de firewall

Toda regla de firewall en Google Cloud debe tener un destino que define las instancias a las que se aplica. Todas las instancias de la red son el destino predeterminado; sin embargo, puedes especificar las instancias como destinos con las etiquetas o las cuentas de servicio de destino.

La etiqueta de destino define las VM de Google Cloud a las que se aplica la regla. La regla se aplica a una red de VPC específica. Se aplica a la dirección IP interna principal asociada con la interfaz de red de cualquier instancia adjunta a esa red de VPC que tenga una etiqueta de red correspondiente.

Las reglas de firewall de entrada y salida tienen destinos:

  • Las reglas de entrada se aplican al tráfico que entra a tu red de VPC. Para las reglas de entrada, los objetivos son VM de destino en Google Cloud.

  • Las reglas de salida se aplican al tráfico que sale de tu red de VPC. Para las reglas de salida, los objetivos son las VM de origen en Google Cloud.

Considera una regla de firewall de entrada que permita el tráfico en el puerto TCP 80 desde cualquier origen. La regla tiene una etiqueta de destino de http-server. Esta regla solo se aplicará a las instancias que tengan la etiqueta de red http-server, lo cual significa que se permitirá el tráfico entrante en el puerto 80 a esas instancias.

Filtros de origen para reglas de firewall de entrada

Cuando creas reglas de firewall de entrada, debes especificar un origen. Puedes definirlo mediante rangos de direcciones IP internas o externas o en relación con las instancias específicas. Puedes especificar las instancias mediante las etiquetas o las cuentas de servicio de origen.

La etiqueta de origen de una regla de firewall de entrada que se aplica en una red de VPC define una fuente de tráfico como si proviniera de la dirección IP interna principal asociada con la interfaz de red conectada a esa red de VPC para cualquier instancia que tenga una etiqueta de red coincidente.

Puedes usar una combinación de rangos de IP y etiquetas de origen o una combinación de rangos de IP y cuentas de servicio de origen. No puedes usar etiquetas de red y cuentas de servicio en la misma regla. Para obtener más información acerca de las etiquetas y cuentas de servicio de origen, consulta Comparación entre el filtrado por cuenta de servicio y por etiqueta de red.

Consideraciones

Cuando usas una regla de firewall de entrada con etiquetas de origen, es posible que observes una demora de propagación. Esta demora suele ser de algunos segundos, pero puede ser, en algunos casos, de algunos minutos. Cuando realizas los siguientes cambios, la regla de firewall de entrada puede llevar tiempo en aplicarse o quitarse de una instancia asociada:

  • Iniciar o detener una instancia que tiene una etiqueta asociada con la etiqueta de origen de una regla
  • Iniciar una instancia que tiene una etiqueta asociada con la etiqueta de destino de una regla
  • Agregar o quitar etiquetas de una instancia si las etiquetas se usan en los campos de origen o de destino de una regla
  • Agregar o quitar etiquetas de origen o de destino de una regla

Esta demora de propagación se aplica solo a las reglas de entrada que usan etiquetas de origen. Todas las demás reglas de firewall se aplican de inmediato en una instancia. Por ejemplo, una regla de entrada que usa un rango de direcciones IP de origen y etiquetas de destino no tiene demora de propagación.

Interacción con rutas estáticas

Cuando creas una ruta estática, especificas una red de VPC. Luego, puedes especificar etiquetas de modo que la ruta solo se aplique al tráfico enviado desde las VMs con etiquetas de red que coincidan en la red de VPC especificada.

Agrega, visualiza y quita etiquetas

Puedes especificar etiquetas de red cuando creas una instancia de VM. También puedes agregar y quitar etiquetas de una VM existente.

Agrega etiquetas al momento de crear una VM

Consola

  1. Ve a la página Instancias de VM.
    Ir a la página Instancias de VM
  2. Haz clic en Crear instancia.
  3. Haz clic en Administración, seguridad, discos, herramientas de redes, instancia única para abrir esa sección.
  4. Haz clic en la pestaña Redes.
  5. En el campo Etiquetas de redes, especifica una o más etiquetas, separadas por comas.
  6. Propaga los demás campos para la VM.
  7. Haz clic en Crear.

gcloud

Para asignar etiquetas nuevas a una instancia, usa el siguiente comando de gcloud.

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS \
    ...other parameters as needed.

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.
  • ZONE: La zona de la instancia.
  • TAGS: Una lista de etiquetas delimitadas por comas.

Consulta la documentación de gcloud para obtener más información.

Terraform

Puedes usar el recurso de Terraform para crear una instancia de VM que tenga etiquetas de red.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "backend-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  tags = ["health-check", "ssh"]
}

Si deseas obtener más información para aplicar o quitar una configuración de Terraform, consulta los comandos básicos de Terraform.

Agrega etiquetas a una VM existente

Consola

  1. Ve a la página Instancias de VM.
    Ir a la página Instancias de VM
  2. Haz clic en un nombre de Instancia.
  3. En la página Detalles de instancias de VM, haz clic en Editar.
  4. En la sección Etiquetas de red, especifica una o más etiquetas, separadas por comas.
  5. Haz clic en Guardar.

gcloud

Para asignar etiquetas nuevas a una instancia, usa el siguiente comando de gcloud.

gcloud compute instances add-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.
  • ZONE: La zona de la instancia.
  • TAGS: Una lista de etiquetas delimitadas por comas.

Consulta la documentación de gcloud para obtener más información.

Visualiza etiquetas

Consola

  1. Ve a la página Instancias de VM.
    Ir a la página Instancias de VM
  2. Ve las etiquetas en la columna Etiquetas de red.

    Si es necesario, haz clic en Opciones de visualización de columnas para agregar la columna Etiquetas de red.

  3. Para ver las instancias etiquetadas con una etiqueta específica, en el filtro, selecciona la propiedad Etiquetas de red y, luego, ingresa las etiquetas que deseas filtrar.

gcloud

Para enumerar las instancias con sus etiquetas, ejecuta el siguiente comando:

gcloud compute instances list --format='table(name,status,tags.list())'

Para enumerar las instancias etiquetadas con una etiqueta específica, ejecuta el siguiente comando:

gcloud compute instances list --filter='tags:TAG_EXPRESSION'

Reemplaza lo siguiente:

  • TAG_EXPRESSION: Es la expresión que deseas filtrar. Por ejemplo, tag1, tag1 OR tag2, tag1 AND tag2. Consulta filtros de temas de gcloud para obtener más información sobre cómo filtrar los resultados.

Quitar las etiquetas

Consola

  1. Ve a la página Instancias de VM.
    Ir a la página Instancias de VM
  2. Haz clic en un nombre de Instancia.
  3. En la página Detalles de instancias de VM, haz clic en Editar.
  4. En la sección Etiquetas de red, haz clic en la X para quitar las etiquetas.
  5. Haz clic en Guardar.

gcloud

Para quitar las etiquetas de una instancia, usa el siguiente comando de gcloud.

gcloud compute instances remove-tags INSTANCE_NAME \
    --zone ZONE \
    --tags TAGS

Reemplaza lo siguiente:

  • INSTANCE_NAME: El nombre de la instancia.
  • ZONE: La zona de la instancia.
  • TAGS: Una lista de etiquetas delimitadas por comas.

Consulta la documentación de gcloud para obtener más información.

Solicitudes directas a la API

Puedes establecer las etiquetas de red asociadas con una instancia mediante una solicitud directa a la API. A diferencia del uso de los comandos de gcloud o la consola de Google Cloud, la actualización de etiquetas mediante la solicitud directa a la API no conserva las etiquetas existentes. Asegúrate de especificar todo el conjunto de etiquetas que se deben asociar a una instancia siempre que actualices las etiquetas de esta forma.

Para actualizar las etiquetas mediante una solicitud directa a la API, haz lo siguiente:

  1. Determina la última huella digital asociada con las etiquetas. La huella digital se usa para prevenir cualquier colisión derivada de solicitudes simultáneas a la API. El proceso de actualización de las etiquetas de red de una instancia es similar al proceso de actualización de los metadatos de la instancia.

    Realiza una solicitud GET a la instancia; por ejemplo:

    GET https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance
    

    Busca la propiedad tags.fingerprint en la respuesta:

    200 OK
    {
    ...
    "tags": {
     "items": [
     "http-server",
     "db-client"
     ],
     "fingerprint": "MW8EqhxILtc="
    },
    ...
    }
    

    También puedes usar un comando de gcloud para obtener fingerprint, como se muestra en el siguiente ejemplo:

    gcloud compute instances describe INSTANCE_NAME \
       --zone ZONE \
       --format="get(tags.fingerprint)"
  2. Realiza una solicitud POST al método instance().setTags. El cuerpo de la solicitud debe contener todas las etiquetas que se deben asociar con la instancia, además del valor de fingerprint.

    Ejemplo de solicitud:

    POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance/setTags
    {
     "items": [
      "http-server",
      "db-client",
      "allow-internet-access"
      ],
     "fingerprint": "MW8EqhxILtc="
    }
    

    Ejemplo de respuesta:

    200 OK
    {
          "kind": "compute#operation",
          "id": "9251830049681941507",
          "name": "operation-1442414898862-51fde63aa57b1-422323e0-c439fb04",
          "zone": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f",
          "operationType": "setTags",
          "targetLink": "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instances/example-instance",
          "targetId": "4392196237934605253",
          "status": "PENDING",
          "user": "user@example.com",
          "progress": 0,
    ...
    }
    

¿Qué sigue?