1. Introducción
Los Controles del servicio de VPC (VPC-SC) son un control de seguridad a nivel de la organización en Google Cloud que permite a los clientes empresariales mitigar los riesgos de robo de datos. Los Controles del servicio de VPC proporcionan un estilo de acceso de confianza cero a los servicios de múltiples usuarios, ya que permiten que los clientes restrinjan el acceso a las IPs autorizadas, al contexto del cliente y a los parámetros del dispositivo cuando se conectan a servicios de múltiples usuarios desde Internet y otros servicios para reducir las pérdidas intencionales y no intencionales. Puedes usar los Controles del servicio de VPC para crear perímetros que protejan los recursos y datos de los servicios que especifiques de forma explícita.
Los objetivos de este instructivo son los siguientes:
- Comprender los conceptos básicos de los Controles del servicio de VPC
- Crea un perímetro de servicio de VPC
- Protege un proyecto con los Controles del servicio de VPC
- Soluciona problemas relacionados con un incumplimiento de entrada de los Controles del servicio de VPC
2. Configuración y requisitos
Para este instructivo, necesitamos los siguientes requisitos previos:
- Una organización de GCP
- Es una carpeta dentro de la organización.
- 2 proyectos de GCP dentro de la misma organización colocados en la carpeta
- Los permisos obligatorios a nivel de la organización
- Cuenta de facturación para ambos proyectos

Configuración de recursos
- En la consola de Google Cloud, crea una carpeta en la organización y dos proyectos nuevos (puedes reutilizar los existentes).
(Si aún no tienes una cuenta de Google Workspace o Cloud Identity, debes adquirir una, ya que necesitarás tener una organización para este instructivo).
- Verifica que tengas los permisos correctos para este instructivo a nivel de la organización.
- Roles de IAM para carpetas
- Permisos y roles para los proyectos
- Permisos y roles necesarios para configurar los Controles del servicio de VPC
- Permisos y roles necesarios para administrar Compute Engine
- Asegúrate de que ambos proyectos estén disponibles en la carpeta, ya que necesitamos crear una política con alcance a nivel de la carpeta. Obtén más información para mover un proyecto a una carpeta.

Costo
Debes habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa de prueba gratuita de USD 300.
El único recurso que generará un costo es la instancia de VM. Puedes encontrar un costo estimado en la calculadora de precios.
3. Crea un perímetro
En este lab, realizaremos los siguientes pasos:
- En la consola de Google, selecciona tu organización y accede a los Controles del servicio de VPC. Asegúrate de estar a nivel de la organización.

- Haz clic en "Administrar políticas" para crear una nueva política de acceso cuyo permiso se limite a la carpeta "Codelab".

- Crea un perímetro nuevo en modo de aplicación forzosa. Para este instructivo, llamémosla "SuperProtection".
- Cuando crees el perímetro, selecciona el proyecto que se aplicará como ProjectZ.
- Selecciona el tipo de perímetro como "Regular".
- En el diálogo Especificar los servicios que deseas restringir, selecciona el servicio que deseas restringir como "Compute Engine".
La configuración del perímetro debería verse de la siguiente manera:

4. Verifica que se haya aplicado el perímetro
- Accede a ProjectX y verifica si puedes acceder a la API de Compute Engine. Para ello, visita la página principal de Instancias de VM. Deberías poder hacerlo porque projectX no está protegido por el perímetro de VPC-SC creado.
- Accede a ProjectZ y verifica si puedes acceder a Compute Engine. Puedes ver que los Controles del servicio de VPC prohibieron la solicitud porque el perímetro de servicio SuperProtection protege el proyecto ProjectZ y la API de Compute Engine.

5. Soluciona el rechazo
Primero, debemos identificar cuál es exactamente el problema para determinar cómo solucionarlo.
- Los registros de los Controles del servicio de VPC incluyen detalles sobre las solicitudes a recursos protegidos y el motivo por el que estos controles rechazaron la solicitud. Busquemos el ID único de los Controles del servicio de VPC en los registros de auditoría de ProjectZ con la siguiente consulta en el Explorador de registros:
resource.type="audited_resource" protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
Se mostrarán todos los registros de auditoría de los Controles del servicio de VPC. Buscaremos el último registro de errores.
- Haz clic en el encabezado Controles del servicio de VPC y selecciona "Solucionar problemas de rechazo", lo que abrirá el solucionador de problemas de los Controles del servicio de VPC.
Esta API nos mostrará en una IU amigable el motivo del incumplimiento y si se trató de un incumplimiento de ingreso o salida, entre otras cosas útiles.
En este ejercicio, buscaremos lo siguiente:
"principalEmail": "user@domain"
"callerIp": "PUBLIC_IP_ADDRESS"
"serviceName": "compute.googleapis.com"
"servicePerimeterName":
"accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection
"ingressViolations": [
{
"targetResource": "projects/[PROJECT_NUMBER]",
"servicePerimeter": "accessPolicies/[POLICY_NUMBER]/servicePerimeters/SuperProtection"
}
],
"violationReason": "NO_MATCHING_ACCESS_LEVEL",
"resourceNames": "[PROJECT_ID]"
Tenemos dos opciones para corregir este rechazo en ProjectZ.
- Crear un nivel de acceso para permitir el acceso al proyecto dentro del perímetro otorgando acceso a la IP de mi sistema
- Crea una regla de entrada para permitir el acceso de un cliente de API desde fuera del perímetro de servicio a los recursos dentro de un perímetro de servicio.
En este instructivo, solucionaremos el problema creando un nivel de acceso.
- Ve a Access Context Manager en el permiso de la carpeta (Codelab) y crea un nivel de acceso nuevo.
- Usa el "Modo básico" y permitiremos el acceso cuando se cumplan la subred IP y la ubicación geográfica.

- Ve a los Controles del servicio de VPC en el permiso de la organización. Selecciona tu política de acceso para este codelab y edita el perímetro que creamos antes.
- Agrega el nivel de acceso creado en el permiso de la carpeta y guarda los cambios.

6. Resultados de la prueba
Confirma que tenemos acceso a Compute Engine y que podemos crear una instancia de VM. Ahora que creamos el nivel de acceso, intentemos acceder a Compute Engine en ProjectZ y crear una instancia de VM.
- Ve a Compute Engine y haz clic en Crear instancia.

- Deja todo con su configuración predeterminada y trata de crear una instancia de VM de bajo costo.
Después de aproximadamente un minuto, deberías ver la instancia de VM creada y podrás verificar que tienes acceso completo a Compute Engine protegido dentro del perímetro.

7. Limpieza
Si bien no se cobra por separado el uso de los Controles del servicio de VPC cuando el servicio no está en uso, se recomienda limpiar la configuración utilizada en este lab. También puedes borrar tu instancia de VM o tus proyectos de Cloud para evitar que se generen cargos. Si borras tu proyecto de Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.
- Para borrar tu instancia de VM, selecciona la casilla de verificación que se encuentra a la izquierda del nombre de la instancia y, luego, haz clic en Borrar.

- Para borrar el perímetro, completa los siguientes pasos:
- En la consola de Google Cloud, haz clic en Seguridad y, luego, en Controles del servicio de VPC en el alcance de la organización.
- En la página Controles del servicio de VPC, en la fila de la tabla correspondiente al perímetro que deseas borrar, haz clic en el ícono de borrar.
- Para borrar el nivel de acceso, completa los siguientes pasos:
- En la consola de Google Cloud, abre la página Access Context Manager en el permiso de la carpeta.
- En la cuadrícula, en la fila del nivel de acceso que deseas borrar, haz clic en "Ícono de borrar" y, luego, en Borrar.
- Para apagar tus proyectos, completa los siguientes pasos:
- En la consola de Google Cloud, ve a la página Configuración de IAM y administración del proyecto que deseas borrar.
- En la página Configuración de IAM y administración, haz clic en Cerrar.
- Ingresa el ID del proyecto y haz clic en Cerrar de todos modos.
8. ¡Felicitaciones!
En este codelab, creaste un perímetro de Controles del servicio de VPC, lo aplicaste y solucionaste los problemas relacionados.
Más información
- Consulta la documentación de los Controles del servicio de VPC.
- Consulta la documentación de Access Context Manager.
- Consulta la documentación del solucionador de problemas de VPC-SC.
Licencia
Este trabajo cuenta con una licencia Atribución 2.0 Genérica de Creative Commons.