Crea políticas de red de tráfico entre proyectos

En esta página, se proporcionan instrucciones para configurar políticas de red de tráfico entre proyectos en el dispositivo aislado de Google Distributed Cloud (GDC).

El tráfico entre proyectos hace referencia a la comunicación entre servicios y cargas de trabajo de diferentes espacios de nombres de proyectos, pero dentro de la misma organización.

De forma predeterminada, los servicios y las cargas de trabajo de un proyecto están aislados de los servicios y las cargas de trabajo externos. Sin embargo, los servicios y las cargas de trabajo de diferentes espacios de nombres del proyecto y dentro de la misma organización pueden comunicarse entre sí aplicando políticas de red de tráfico entre proyectos.

Antes de comenzar

Para configurar políticas de red de tráfico dentro del proyecto, debes tener lo siguiente:

Crea una política de tráfico entre proyectos

Puedes definir políticas de tráfico entre proyectos de entrada o salida para administrar la comunicación entre proyectos.

Crea una regla de firewall de entrada para el tráfico entre proyectos

Para que las cargas de trabajo o los servicios del proyecto permitan conexiones desde otras cargas de trabajo en otro proyecto, debes configurar una regla de firewall de entrada para permitir el tráfico entrante de otras cargas de trabajo del proyecto.

Sigue estos pasos para crear una regla de firewall nueva y permitir el tráfico entrante de las cargas de trabajo en otro proyecto:

Console

  1. En la consola de GDC del proyecto que estás configurando, ve a Networking > Firewall en el menú de navegación para abrir la página Firewall.
  2. Haz clic en Crear en la barra de acciones para comenzar a crear una nueva regla de firewall.
  3. En la página Detalles de la regla de firewall, completa la siguiente información:

    1. En el campo Nombre, ingresa un nombre válido para tu regla de firewall.
    2. En la sección Dirección del tráfico, selecciona Entrada para permitir el tráfico entrante de cargas de trabajo en otros proyectos.
    3. En la sección Objetivo, selecciona una de las siguientes opciones:
      • Todas las cargas de trabajo del usuario: Permite conexiones a las cargas de trabajo del proyecto que estás configurando.
      • Servicio: Indica que esta regla de firewall se dirige a un servicio específico dentro del proyecto que estás configurando.
    4. Si tu destino es un servicio del proyecto, selecciona el nombre del servicio en la lista de servicios disponibles en el menú desplegable Servicio.
    5. En la sección De, selecciona una de las siguientes dos opciones:
      • Todos los proyectos: Permite conexiones desde cargas de trabajo en todos los proyectos.
      • Otro proyecto y Todas las cargas de trabajo del usuario: Permiten conexiones desde cargas de trabajo en otro proyecto.
    6. Si solo quieres transferir cargas de trabajo desde otro proyecto, selecciona un proyecto al que puedas acceder desde la lista de proyectos en el menú desplegable ID del proyecto.
    7. Si tu objetivo son todas las cargas de trabajo del usuario, selecciona una de las siguientes opciones en la sección Protocolos y puertos:
      • Permitir todo: Permite conexiones con cualquier protocolo o puerto.
      • Protocolos y puertos especificados: Permiten conexiones solo con los protocolos y puertos que especificas en los campos correspondientes de la regla de firewall de entrada.
  4. En la página Detalles de la regla de firewall, haz clic en Crear.

Ahora permitiste las conexiones de otras cargas de trabajo del proyecto. Después de crear la regla de firewall, esta se mostrará en una tabla en la página Firewall.

API

La siguiente política permite que las cargas de trabajo en el proyecto PROJECT_1 permitan conexiones de cargas de trabajo en el proyecto PROJECT_2, así como el tráfico de retorno para los mismos flujos. Aplica la política:

kubectl --kubeconfig API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT_1
  name: allow-inbound-traffic-from-PROJECT_2
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - projectSelector:
        projects:
          matchNames:
          - PROJECT_2
EOF

Reemplaza API_SERVER por la ruta de acceso al kubeconfig del servidor de la API. Si aún no generaste un archivo kubeconfig para el servidor de la API, consulta Accede para obtener más detalles.

El comando anterior permite que PROJECT_2 vaya a PROJECT_1, pero no permite las conexiones iniciadas desde PROJECT_1 a PROJECT_2. En el segundo caso, necesitas una política recíproca en el proyecto PROJECT_2. Aplica la política de reciprocidad:

kubectl --kubeconfig API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT_2
  name: allow-inbound-traffic-from-PROJECT_1
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - projectSelector:
        projects:
          matchNames:
          - PROJECT_1
EOF

Ahora se permiten las conexiones hacia y desde PROJECT_1 y PROJECT_2.