Puedes orientar las llamadas HTTP de la ejecución de tu flujo de trabajo a un endpoint privado mediante el registro de servicios de Directorio de servicios con Workflows. De esta forma, puedes proporcionar a tu flujo de trabajo un nombre de servicio de Service Directory. La ejecución de tu flujo de trabajo usa la información obtenida del registro de servicios para enviar la solicitud HTTP adecuada sin salir a una red pública.
En este documento se explica cómo registrar una máquina virtual (VM) en una red de nube privada virtual (VPC) como endpoint de Service Directory:
Una red de VPC proporciona conectividad a tus instancias de VM y te permite crear endpoints privados en tu red de VPC mediante direcciones IP internas. Las llamadas HTTP a un recurso de una red de VPC se envían a través de una red privada, al tiempo que se aplican Gestión de Identidades y Accesos (IAM) y Controles de Servicio de VPC.
Service Directory es un registro de servicios que almacena información sobre los servicios de red registrados, como sus nombres, ubicaciones y atributos. Independientemente de su infraestructura, puedes registrar servicios automáticamente y obtener sus detalles. Esto te permite descubrir, publicar y conectar servicios a gran escala para todos tus endpoints de servicio.
En este diagrama se ofrece un resumen:
A grandes rasgos, debes hacer lo siguiente:
- Concede permisos al agente de servicio de Cloud Workflows para que pueda ver los recursos de Service Directory y acceder a las redes de VPC mediante Service Directory.
- Crea una red de VPC para proporcionar funciones de red.
- Crea una regla de cortafuegos de VPC para permitir o denegar el tráfico hacia o desde las instancias de VM de tu red de VPC.
- Crea una instancia de VM en la red de VPC. Una instancia de VM de Compute Engine es una máquina virtual alojada en la infraestructura de Google. Los términos instancia de Compute Engine, instancia de VM y VM son sinónimos y se usan indistintamente.
- Despliega una aplicación en la máquina virtual. Puedes ejecutar una aplicación en tu instancia de VM y confirmar que el tráfico se sirve correctamente.
Configura Directorio de servicios para que la ejecución del flujo de trabajo pueda invocar un endpoint de Directorio de servicios.
Crea y despliega tu flujo de trabajo. El valor
private_service_namede tu flujo de trabajo especifica el endpoint de Directorio de servicios que has registrado en el paso anterior.
Conceder permisos al agente de servicio de Cloud Workflows
Algunos Google Cloud servicios tienenagentes de servicio que permiten que los servicios accedan a tus recursos. Si una API requiere un agente de servicio, Google lo crea después de que actives y uses la API.
La primera vez que despliegues un flujo de trabajo, se creará automáticamente el agente de servicio de Cloud Workflows con el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.comPuedes crear manualmente la cuenta de servicio en un proyecto sin ningún flujo de trabajo con este comando:
gcloud beta services identity create \ --service=workflows.googleapis.com \ --project=PROJECT_ID
Sustituye
PROJECT_IDpor el ID de tu proyecto. Google CloudPara ver los recursos de Directorio de servicios, asigna el rol Lector de Directorio de servicios (
servicedirectory.viewer) en el proyecto al agente de servicio de Workflows:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \ --role=roles/servicedirectory.viewer
Sustituye
PROJECT_NUMBERpor el número de tu proyecto. Google Cloud Puedes encontrar el número de tu proyecto en la página Bienvenido de la consola Google Cloud o ejecutando el siguiente comando:gcloud projects describe PROJECT_ID --format='value(projectNumber)'
Para acceder a redes de VPC mediante Service Directory, asigna el rol Servicio autorizado de Private Service Connect (
roles/servicedirectory.pscAuthorizedService) al agente de servicio de Workflows en el proyecto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-workflows.iam.gserviceaccount.com \ --role=roles/servicedirectory.pscAuthorizedService
Crear una red VPC
Una red de VPC es una versión virtual de una red física que se implementa en la red de producción de Google. Proporciona conectividad a las instancias de máquina virtual de Compute Engine.
Puedes crear una red de VPC en modo automático o personalizado. Cada red que cree debe tener un nombre único en el mismo proyecto.
Por ejemplo, el siguiente comando crea una red de VPC automática: