Proteger Compute Engine con un perímetro de Controles de Servicio de VPC


En este tutorial se muestra cómo proteger Compute Engine mediante un perímetro de servicio y cómo solucionar un problema de infracción de entrada para permitir el acceso autorizado a Compute Engine.

Controles de Servicio de VPC te permite definir un perímetro de servicio alrededor de los recursos de los servicios gestionados por Google para controlar la comunicación entre dichos servicios. 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 función te permite definir políticas de seguridad que impidan el acceso a los servicios gestionados por Google fuera de un perímetro de confianza, bloquear el acceso a los datos desde ubicaciones no fiables y mitigar los riesgos de filtración externa de datos.

Este tutorial está dirigido a Google Cloud administradores de organizaciones que quieren aprender los conceptos básicos de Controles de Servicio de VPC.

Objetivos

  • Familiarizarse con los conceptos básicos de Controles de Servicio de VPC.
  • Crea un perímetro de servicio.
  • Protege un proyecto con Controles de Servicio de VPC.
  • Soluciona problemas de una infracción de entrada de Controles de Servicio de VPC.

Costes

En este documento, se utilizan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Los usuarios nuevos Google Cloud pueden disfrutar de una prueba gratuita.

Cuando termines las tareas que se describen en este documento, puedes evitar que se te siga facturando eliminando los recursos que has creado. Para obtener más información, consulta la sección Limpiar.

Antes de empezar

Crear un perímetro de servicio

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

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

    Ir a Controles de Servicio de VPC

    Asegúrate de que estás en el ámbito de la organización.

  2. Haz clic en Gestionar políticas.

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

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

    • Título: MyFirstPerimeter

    • Tipo de perímetro: Normal

    • Modo obligatorio: Obligatorio

    • Recursos que se van a proteger: My-Project-2 proyecto

    • Servicios restringidos: API de Compute Engine

Verificar el perímetro

En esta sección, puedes enviar 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 comprueba 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 has creado anteriormente.

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

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

Solucionar problemas relacionados con una infracción

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

Ver registros de auditoría

  1. Busca el ID único de la infracción de Controles de Servicio de VPC en los My-Project-2registros de auditoría del proyecto:

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

      Ve al Explorador de registros.

      Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.

    2. Selecciona el proyecto My-Project-2.

    3. Para mostrar todos los registros de auditoría, introduce 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 Realizar una consulta.

    Esta consulta muestra todos los registros de auditoría de Controles de Servicio de VPC. Para consultar los detalles de la infracción al acceder a la API de Compute Engine en el My-Project-2proyecto, consulta el último registro de errores.

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

  2. En el panel Resultados de la consulta, haz clic en Controles de Servicio de VPC junto a la denegación que quieras solucionar y, a continuación, haz clic en Solucionar denegación.

    Se abrirá la página Herramienta para solucionar problemas de Controles de Servicio de VPC. En esta página se muestra el motivo de la infracción y otra información, como si se trata de una infracción de entrada o de salida.

    En este tutorial, 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 de la infracción es "NO_MATCHING_ACCESS_LEVEL". La infracción "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 con ningún nivel de acceso asociado al perímetro. Si falta la dirección IP del llamante o aparece como una dirección IP interna en el registro, esta infracción puede deberse a un Google Cloud servicio que no admite Controles de Servicio de VPC.

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

  • Crea un nivel de acceso que permita acceder a la dirección IP de tu sistema al proyecto que se encuentra 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 del perímetro.

En la siguiente sección se muestra cómo solucionar este problema creando un nivel de acceso.

Crear un nivel de acceso

  1. En la Google Cloud consola, ve a la página Administrador de contextos de acceso en el ámbito de la carpeta Exercise.

    Ir a Administrador de contextos de acceso

  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, devuelve, selecciona Verdadero.

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

    • Seleccione el atributo Ubicaciones geográficas y especifique la 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 de Servicio de VPC en el ámbito de la organización.

    Ir a Controles de Servicio de VPC

  4. Selecciona la política de acceso que has creado anteriormente en este tutorial.

  5. Añade el nivel de acceso que has creado en el ámbito de la carpeta Exercise al perímetro MyFirstPerimeter.

Probar el acceso

Después de añadir el nivel de acceso, comprueba que puedes acceder a Compute Engine en el proyecto My-Project-2 y crear una instancia de VM.

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

    Ir a instancias de VM

  2. Crea una instancia de máquina virtual.

Al cabo de un minuto, Compute Engine crea una instancia de VM y esta acción verifica que tienes acceso completo a Compute Engine protegido dentro del perímetro.

Limpieza

Para evitar que los recursos utilizados en este tutorial se cobren en tu cuenta de Google Cloud, elimina el proyecto que contiene los recursos o conserva el proyecto y elimina los recursos.

Eliminar el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminar recursos concretos

Eliminar instancias de VM

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. Select the checkbox for the instance that you want to delete.
  3. To delete the instance, click More actions, click Delete, and then follow the instructions.

Eliminar recursos de Controles de Servicio de VPC

  1. Elimina el perímetro de servicio.

  2. Elimina el nivel de acceso que has creado en el ámbito de la carpeta Exercise.

Siguientes pasos