La ingeniería de seguridad comienza definiendo quién puede actuar sobre un recurso, qué rutas permiten acceder a él y qué evidencias registran el resultado. Nuestro límite más pequeño es un bucket de Cloud Storage en un proyecto de Google Cloud, al que accede un servicio de Cloud Run. El curso ampliará este límite para incluir controles de identidad, red, cifrado, detección y verificación.
Identity and Access Management (IAM) autoriza a una entidad principal a realizar una acción permitida sobre un recurso. Las políticas de permisos de IAM pueden heredarse desde la organización, la carpeta o el proyecto hasta el bucket. Una cuenta de servicio es una identidad de carga de trabajo, no una cuenta de administrador humano. Conceder el permiso del bucket únicamente a la cuenta de servicio de tiempo de ejecución limita el alcance de las solicitudes en el plano de datos.
Los controles de red regulan las rutas de tráfico en lugar de los permisos de los recursos. Las reglas de firewall de VPC evalúan el tráfico de las interfaces de red de Compute Engine. Cloud Key Management Service (Cloud KMS) administra las claves de cifrado controladas por el cliente para los recursos compatibles. Security Command Center recopila información sobre la postura de seguridad y los hallazgos de detección de amenazas. Cada control responde a una pregunta distinta, por lo que ninguno sustituye a la autorización de IAM.
Analicemos cómo convergen los controles de organización, proyecto y recurso en el límite de una carga de trabajo.
Supongamos que example-payments-project aloja un servicio de Cloud Run en us-central1. Su cuenta de servicio de tiempo de ejecución escribe los recibos aprobados en example-receipts-bucket. Un grupo de administradores revisa la configuración. Una cuenta de servicio independiente para integración y entrega continuas despliega las revisiones. Separar estas identidades evita que una credencial de despliegue se convierta automáticamente en una credencial de acceso a datos.
El modelo de amenazas incluye una credencial de desarrollador comprometida, un rol de tiempo de ejecución con permisos excesivos y la exportación no intencionada de datos. El servicio de Cloud Run solo necesita realizar las acciones requeridas en el bucket. El grupo de administradores necesita acceso de gestión controlado. La identidad de despliegue requiere permisos de despliegue, no amplios privilegios de administración operativa. Esto establece el principio de menor privilegio como un requisito verificable, en lugar de una intención genérica.
Visualicemos las identidades, la región y el recurso de datos que definen el alcance de seguridad de esta carga de trabajo.