Protege Compute Engine con un perímetro de Controles del servicio de VPC

En este instructivo, se muestra cómo proteger Compute Engine con un perímetro de servicio y solucionar un incumplimiento de entrada para permitir el acceso autorizado a Compute Engine.

Los Controles del servicio de VPC te permiten definir un perímetro de servicio alrededor de los recursos de los servicios administrados por Google para controlar la comunicación hacia esos servicios y entre ellos. Puedes establecer un perímetro de confianza cero alrededor de tus recursos sensibles, lo que restringe el acceso a direcciones IP, usuarios y dispositivos autorizados. Esta capacidad te permite definir políticas de seguridad que evitan el acceso a los servicios administrados por Google fuera de un perímetro de confianza, bloquean el acceso a los datos desde ubicaciones no confiables y mitigan los riesgos de robo de datos.

Este instructivo está dirigido a los administradores de la organización Google Cloud que desean aprender los conceptos básicos de los Controles del servicio de VPC.

Crea un perímetro de servicio

Crea un perímetro de servicio que proteja la API de Compute Engine en el proyecto My-Project-2:

  1. En la consola de Google Cloud , ve a la página Controles del servicio de VPC.

    Ir a los Controles del servicio de VPC

    Asegúrate de estar en el alcance de la organización.

  2. Haz clic en Administrar políticas.

  3. Crea una política de acceso nueva que se limite a la carpeta Exercise.

  4. Crea un perímetro nuevo con los siguientes detalles:

    • Título: MyFirstPerimeter

    • Tipo de perímetro: Normal

    • Modo de aplicación: Aplicado

    • Recursos para proteger: proyecto My-Project-2

    • Servicios restringidos: API de Compute Engine

Verifica el perímetro

En esta sección, puedes realizar solicitudes de acceso a los recursos de los proyectos para confirmar si el perímetro protege los recursos previstos.

  1. Accede al proyecto My-Project-1 y verifica que puedes acceder a Compute Engine visitando la página Instancias de VM.

    Ir a Instancias de VM

    Deberías poder acceder porque My-Project-1 no está protegido por el perímetro que creaste antes.

  2. Accede al proyecto My-Project-2 y verifica que puedes acceder a Compute Engine visitando la página Instancias de VM.

    Deberías ver que los Controles del servicio de VPC rechazan tu solicitud de acceso a Compute Engine porque el perímetro MyFirstPerimeter protege My-Project-2 y la API de Compute Engine.

Soluciona problemas de incumplimientos

Los registros de auditoría de los Controles del servicio de VPC incluyen detalles sobre las solicitudes a recursos protegidos y el motivo por el que los Controles del servicio de VPC rechazaron la solicitud. Necesitas esta información para identificar y solucionar el problema de incumplimiento en el proyecto My-Project-2.

Ver registros de auditoría

  1. Busca el ID único del incumplimiento de los Controles del servicio de VPC en los registros de auditoría del proyecto My-Project-2:

    1. En la consola de Google Cloud , accede a la página Explorador de registros:

      Acceder al Explorador de registros

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

    2. Selecciona el proyecto My-Project-2.

    3. Para mostrar todos los registros de auditoría, ingresa la siguiente consulta en el campo del editor de consultas:

      resource.type="audited_resource"
      protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
      
    4. Haz clic en Ejecutar consulta.

    Esta consulta muestra todos los registros de auditoría de los Controles del servicio de VPC. Para encontrar los detalles del incumplimiento por acceder a la API de Compute Engine en el proyecto My-Project-2, consulta el último registro de errores.

    Para obtener más información, consulta Visualiza los registros.

  2. En el panel Resultados de la consulta, haz clic en Controles del servicio de VPC junto al rechazo que deseas solucionar y, luego, en Rechazo de la solución de problemas.

    Se abrirá la página del analizador de incumplimientos de los Controles del servicio de VPC. En esta página, se muestra el motivo del incumplimiento y otra información, como si se trata de un incumplimiento de ingreso o egreso.

    En este instructivo, busca la siguiente información:

    "principalEmail": "USER@DOMAIN"
    "callerIp": "PUBLIC_IP_ADDRESS"
    "serviceName": "compute.googleapis.com"
    "servicePerimeterName":
    "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter
    "ingressViolations": [
            {
    "targetResource": "projects/PROJECT_NUMBER",
    "servicePerimeter": "accessPolicies/POLICY_NUMBER/servicePerimeters/MyFirstPerimeter"
            }
          ],
    "violationReason": "NO_MATCHING_ACCESS_LEVEL",
    "resourceNames": "PROJECT_ID"
    

    El motivo del incumplimiento es "NO_MATCHING_ACCESS_LEVEL". El incumplimiento de "NO_MATCHING_ACCESS_LEVEL" se produce cuando la dirección IP, el tipo de dispositivo o la identidad del usuario no coinciden con ninguna regla de entrada ni nivel de acceso asociados al perímetro. Si falta la dirección IP del emisor o aparece como una dirección IP interna en el registro, este incumplimiento puede deberse a un servicio Google Cloud que no es compatible con los Controles del servicio de VPC.

Para corregir este rechazo en el proyecto My-Project-2, tienes dos opciones:

  • Crea un nivel de acceso que permita el acceso a la dirección IP de tu sistema al proyecto dentro del perímetro.

  • Crea una regla de entrada que permita el acceso a un cliente de API desde fuera del perímetro a los recursos que se encuentran dentro de él.

En la siguiente sección, se ilustra cómo solucionar este rechazo creando un nivel de acceso.

Crea un nivel de acceso

  1. En la Google Cloud consola, ve a la página Access Context Manager en el alcance de la carpeta Exercise.

    Ir a Access Context Manager

  2. Crea un nivel de acceso con los siguientes detalles:

    • En Crear condiciones en, selecciona Modo básico.

    • En Cuando se cumpla la condición, se devolverá, selecciona Verdadero.

    • Selecciona el atributo Subredes de IP y especifica la dirección IP pública de tu sistema.

    • Selecciona el atributo Ubicaciones geográficas y especifica tu ubicación geográfica.

    Este nivel de acceso solo permite el acceso cuando coinciden la dirección IP y la ubicación geográfica.

  3. Ve a la página Controles del servicio de VPC en el alcance de la organización.

    Ir a los Controles del servicio de VPC

  4. Selecciona la política de acceso que creaste antes en este instructivo.

  5. Agrega el nivel de acceso que creaste en el alcance de la carpeta Exercise al perímetro MyFirstPerimeter.

Prueba el acceso

Después de agregar el nivel de acceso, verifica que puedas acceder a Compute Engine en el proyecto My-Project-2 y crear una instancia de VM.

  1. En la Google Cloud consola, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Crea una instancia de VM.

Después de aproximadamente un minuto, Compute Engine crea una instancia de VM, y esta acción verifica que tengas acceso completo a Compute Engine protegido dentro del perímetro.