En este documento, se describe el proceso recomendado para configurar y aplicar la protección de los Controles del servicio de VPC en tu organización de Google Cloud .
La habilitación descuidada de los Controles del servicio de VPC puede causar problemas con las aplicaciones existentes y podría provocar una interrupción. Recomendamos que planifiques la habilitación con cuidado y que tengas el tiempo suficiente para recopilar datos, realizar pruebas y analizar registros de incumplimiento. Asegúrate de que las partes interesadas de tu equipo de operaciones de Controles del servicio de VPC y del equipo de aplicaciones estén disponibles para completar la tarea.
En cada carga de trabajo o aplicación que incorpores a los Controles del servicio de VPC, debes repetir el proceso de habilitación.
Coordina la comunicación
Con frecuencia, el equipo de seguridad de redes o de habilitación en la nube lidera el esfuerzo de habilitación de los Controles del servicio de VPC. Recomendamos que cuentes con una persona dedicada que cree y haga un seguimiento de las reuniones multifuncionales y los elementos de acción de los documentos. Tus equipos colaboran en las siguientes áreas:
- Patrones de acceso a las APIs deGoogle Cloud
- Identificación de incumplimientos del perímetro de servicio
- Autorización de acceso al perímetro
De manera similar a los firewalls de red convencionales, la intención es identificar y permitir los flujos necesarios para el funcionamiento eficiente de las cargas de trabajo comerciales legítimas.
Documenta los patrones de acceso y los casos de uso
Para iniciar el proceso de habilitación, identifica y documenta con claridad todos los patrones de acceso válidos. Los patrones de acceso son tipos repetibles de interacciones entre elementos fuera y dentro del perímetro. A continuación, se muestran algunos patrones de acceso comunes:
- Patrones de acceso a los datos: Son los servicios fuera del perímetro que almacenan o recuperan datos que residen dentro del perímetro.
- Patrones de acceso a recursos:
- Los usuarios acceden a los proyectos en el perímetro con la consola deGoogle Cloud .
- Las herramientas o los servicios de terceros administran y acceden a los recursos dentro del perímetro.
- Los servicios o recursos dentro del perímetro acceden a las APIs de Google.
- Patrones de acceso a extremos:
- Los usuarios acceden a los recursos dentro del perímetro desde un dispositivo que administra tu organización.
- Los recursos locales se comunican con los recursos dentro del perímetro.
Después de identificar los patrones de acceso para una carga de trabajo, identifica tus casos de uso y clasifícalos en uno de los patrones de acceso de la lista anterior. A continuación, se muestran algunos casos de uso comunes:
- Los administradores de la nube administran proyectos que forman parte de un perímetro.
- Los servicios de automatización como Terraform, Jenkins y Microsoft Azure DevOps que están fuera del perímetro administran la implementación de recursos dentro del perímetro.
- Los servicios de administración de configuraciones, como Ansible, Chef o Puppet, que están fuera del perímetro, administran la implementación y la configuración del software en recursos ubicados dentro del perímetro.
- La supervisión de seguridad y la aplicación de servicios como Forseti o SIEM que están fuera del perímetro consumen datos o aplican las políticas de seguridad en un recurso dentro del perímetro.
En cada caso de uso, documenta lo siguiente:
- El patrón de acceso
- Los agentes que pueden activar el caso de uso
- Las condiciones que activan el caso de uso
- Si el caso de uso es un patrón de acceso válido y se debe permitir
- Las suposiciones relacionadas con el caso de uso
Para obtener un patrón de acceso y una herramienta de seguimiento de casos de uso de ejemplo, consulta la plantilla de incorporación de los Controles del servicio de VPC: casos de uso (PDF).
Realiza entrevistas
Realiza entrevistas con tus equipos de cargas de trabajo para analizar los patrones de acceso y los casos de uso que recopilas de las plantillas de comunicación anteriores. A continuación, se muestran ejemplos de preguntas que puedes formular durante estas entrevistas:
¿Tus casos de uso son la primera prioridad para tener en cuenta en la habilitación de los Controles del servicio de VPC? Te recomendamos que solo consideres las cargas de trabajo de primera prioridad para la habilitación inicial y que incorpores otras cargas de trabajo de menor prioridad después de proteger los recursos esenciales para la empresa.
¿Puedes completar una ejecución integral de todos los casos de uso? Debes hacerlo para activar todas las situaciones posibles de perímetro que puedes analizar por completo y confirmar que la aplicación funcionará correctamente después de que apliques el perímetro.
¿Cuánto tiempo se tarda en ejecutar la ejecución de casos de uso?
¿Planificas cambios importantes para esta carga de trabajo que puedan entrar en conflicto con la habilitación de los Controles del servicio de VPC? Las características de la carga de trabajo deben estar en un estado estable antes de habilitar los Controles del servicio de VPC.
Prepara una prueba de validación
El modo de ejecución de prueba reduce la complejidad de las pruebas de aplicación de los Controles del servicio de VPC, ya que identifica los incumplimientos sin interrumpir las aplicaciones. Configuras una ejecución de prueba como un perímetro independiente que registra todos los incumplimientos, pero no realiza ningún bloqueo. Puedes ejecutar cargas de trabajo dentro en el perímetro de ejecución de prueba y generar registros de incumplimiento para su análisis.
Para preparar el entorno de ejecución de prueba, sigue estos pasos:
- Identifica todos los proyectos que están calificados para formar parte del perímetro y completa el caso de uso y el proceso de entrevista de esos proyectos.
- Crea un perímetro de ejecución de prueba y agrega todos los proyectos.
- En el perímetro de servicio de los Controles del servicio de VPC, en Servicios restringidos > Servicios para proteger, agrega todos los servicios admitidos.
Crea un receptor de registros agregado que envíe todos los registros a BigQuery o crea un receptor de registros para cada proyecto que envíe los registros de ejecución de prueba a un conjunto de datos común de BigQuery. Para consultar estos mensajes de registro y, además, identificar los incumplimientos en los Controles del servicio de VPC, puedes usar una consulta en SQL.
Para crear un receptor de registros que incluya todos los mensajes de registro de Controles del servicio de VPC correspondientes, usa el siguiente filtro:
logName="projects/$PROJECT/logs/cloudaudit.googleapis.com%2Fpolicy"Para maximizar la seguridad, no permitas el acceso a los servicios no admitidos. Configura tu perímetro de modo que solo los servicios restringidos funcionen en él. Para hacerlo, configura la lista de servicios accesibles a
RESTRICTED-SERVICES.Si ya tienes una lista de IPs públicas, identidades, dispositivos de confianza, proyectos o redes de VPC permitidos, agrégalos a una regla de entrada o a un nivel de acceso, según corresponda, en el perímetro de ejecución de prueba. Permitir flujos legítimos conocidos ayuda a reducir la cantidad de registros de incumplimientos y permite que los revisores se enfoquen en eventos prácticos.
Verifica que ninguna de las VPC de los proyectos tenga una ruta de salida a Internet o la VIP privada.
Verifica que todas las VPC tengan el DNS
*.googleapis.comque apunte arestricted.googleapis.com.
Ejecuta casos de uso
En un momento acordado, pídele al equipo de tu aplicación que ejecute su carga de trabajo en el proyecto en el perímetro de ejecución de prueba. Asegúrate de tener una cobertura completa de todo el código que pueda llamar a las APIs de Google. Cuando se completa la ejecución de prueba, tu equipo de revisión designado puede realizar el análisis de registros de incumplimientos.
Analiza los incumplimientos
Los registros de incumplimiento de la ejecución de prueba contienen la mayor parte de la información que necesitas para
determinar si un incumplimiento de la aplicación requiere alguna acción, como agregar
identidades o direcciones IP a la lista de entidades permitidas del perímetro. Los datos de incumplimiento se
almacenan en la tabla de BigQuery cloudaudit_googleapis_com_policy.
A continuación, se muestran los principales elementos que se deben analizar en el incumplimiento:
- El servicio y el método de la API protegidos que se llaman
- El proyecto dentro del perímetro que bloquea la solicitud
- El correo electrónico de la identidad que llama a la API protegida
- La dirección IP de la persona que llama
- El tipo de incumplimiento
En el siguiente ejemplo, se muestra una consulta de BigQuery que devuelve todos los detalles del incumplimiento:
SELECT
receiveTimestamp, #time of violation
Resource.labels.service, #protected Google Cloud service being blocked
protopayload_auditlog.methodName, #method name being called
resource.labels.project_id as PROJECT, #protected project blocking the call
protopayload_auditlog.authenticationInfo.principalEmail, #caller identity
protopayload_auditlog.requestMetadata.callerIp, #caller IP
JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.dryRun') as DRYRUN, #dry-run indicator
JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.violationReason') as REASON, #reason for violation
protopayload_auditlog.metadataJson, #raw violation entry
FROM `BQ_DATASOURCE_NAME.cloudaudit_googleapis_com_policy_*`
where JSON_EXTRACT(protopayload_auditlog.metadataJson, '$.dryRun') = "true" #ensure these are dry-run logs
Consulta los incumplimientos correspondientes
Las siguientes estrategias pueden ayudarte a identificar los incumplimientos correspondientes:
Agrega un calificador de marca de tiempo del período cuando cada aplicación única ejecutó su caso de uso:
WHERE receiveTimestamp >'2020-07-23 19:53:48.241317 UTC'Agrega un filtro para la convención de nombres de identidades de cargas de trabajo o de proyectos:
WHERE where resource.labels.project_id like '%APPLICATION_NAME%'
Revisa los registros de incumplimiento
Cuando revises los registros de incumplimiento, determina si se cumplen las siguientes condiciones:
- ¿Se espera que la identidad (correo electrónico) invoque las APIs protegidas?
- ¿Se debe permitir que la persona que llama invoque la API desde fuera del perímetro?
En función de los criterios anteriores, determina si debes permitir que la identidad, el dispositivo, la dirección IP, el rango CIDR, el proyecto o la red accedan al perímetro desde afuera.
Algunas entradas podrían tener una dirección IP de private. Esto indica que la llamada
provino de la Red de Google, ya sea a través de los servicios de Google o una VPC
en un proyecto fuera del perímetro. En el caso de los servicios de Google, como los
escritores de receptores de registros,
debes agregar la cuenta de servicio de Google a una lista de entidades permitidas.
Las entradas sin correos electrónicos se deben a la redacción que realiza Registros de auditoría de Cloud en las operaciones de solo lectura que se rechazaron debido a la falta de permisos de IAM. En esos casos, puedes usar la dirección IP y los nombres de recursos para comprender el origen del intento de acceso. Este tipo de intento de acceso puede ser un acceso accidental por parte de un usuario que no pertenece a tu organización. Por ejemplo, un usuario que escribe mal el nombre de un bucket con un nombre similar.
Si ves un tipo de incumplimiento de SERVICE_NOT_ALLOWED_FROM_VPC, es posible que la carga de trabajo
use un servicio que es compatible con los Controles del servicio de VPC, pero que no
se agregó a la lista de las APIs protegidas. Por ejemplo, si IAM
causó ese incumplimiento, el administrador debe agregar la IAM a la
lista de servicios accesibles
con el siguiente comando de Google Cloud CLI.
gcloud access-context-manager perimeters update perimeter_test \
--add-vpc-allowed-services=RESTRICTED-SERVICES,IAM.googleapis.com \
--policy=1234567890
Puedes crear un panel de Looker Studio para revisar los incumplimientos. Para obtener más información, consulta Supervisa los incumplimientos de los Controles del servicio de VPC en tu organización de Google Cloud con Looker Studio. Looker Studio antes se llamaba Data Studio.
¿Qué sigue?
- Obtén más información sobre los perímetros de servicio.
- Obtén más información para crear un perímetro de servicio.