Una instancia de Compute Engine necesita leer de un bucket de Cloud Storage y escribir en una tabla de BigQuery. Otorgue los permisos mínimos requeridos.
→Cree una cuenta de servicio personalizada. Otorguele los roles `roles/storage.objectViewer` y `roles/bigquery.dataEditor`. Adjunte esta cuenta de servicio a la instancia.
Por qué: El uso de una cuenta de servicio personalizada con roles específicos y predefinidos evita la naturaleza excesivamente permisiva de la cuenta de servicio predeterminada de Compute Engine, adhiriéndose al principio de privilegio mínimo.
Otorgar a un usuario permisos para administrar instancias de GCE pero no eliminarlas.
→Cree un rol IAM personalizado. Comience con los permisos del rol `roles/compute.instanceAdmin.v1` y elimine el permiso `compute.instances.delete`.
Por qué: Los roles personalizados proporcionan la flexibilidad para otorgar un conjunto preciso de permisos cuando los roles predefinidos son demasiado amplios o demasiado restrictivos para una función de trabajo específica.
Un desarrollador necesita acceder por SSH a una instancia de Compute Engine que no tiene dirección IP externa, según la política de seguridad.
→Otorgue al desarrollador el rol `roles/iap.tunnelResourceAccessor`. Luego podrá conectarse usando `gcloud compute ssh [INSTANCE_NAME] --tunnel-through-iap`.
Por qué: El reenvío TCP de Identity-Aware Proxy (IAP) proporciona un método seguro y basado en la identidad para acceder a instancias internas sin hosts bastión, VPNs o IPs públicas.
Referencia↗
Permitir tráfico SSH entrante (puerto 22) a VMs específicas solo desde el rango de IP de la oficina corporativa.
→Cree una regla de firewall de VPC con `direction: INGRESS`, `action: ALLOW`, `protocol/ports: tcp:22`, `source ranges: [CORPORATE_IP_CIDR]`, y `target tags: [p. ej., "allow-ssh"]`. Aplique la etiqueta a las VMs previstas.
Por qué: La combinación de rangos de origen y etiquetas de destino proporciona una forma precisa y escalable de controlar el tráfico. Restringe tanto *quién* puede conectarse como *a qué* puede conectarse.
Evitar que los datos de un proyecto sensible de BigQuery sean copiados o accedidos desde fuera de un límite de red confiable, incluso con credenciales válidas.
→Configure Controles de Servicio de VPC (VPC Service Controls). Cree un perímetro de servicio que incluya el proyecto sensible y restrinja la API de BigQuery.
Por qué: Los Controles de Servicio de VPC crean un "perímetro de datos" virtual que controla el acceso a nivel de API, proporcionando una fuerte defensa contra la exfiltración de datos que las reglas de firewall no pueden.
Proporcionar a una aplicación de terceros acceso de lectura temporal y limitado en el tiempo a un objeto privado específico en un bucket de Cloud Storage.
→Genere una URL firmada para el objeto con un tiempo de expiración corto (p. ej., 15 minutos) usando una cuenta de servicio con permisos de lectura.
Por qué: Las URL firmadas otorgan acceso temporal por objeto sin requerir que el tercero tenga una cuenta de Google o permisos IAM. Es el método más seguro para este caso de uso.
Un pod de GKE necesita acceder de forma segura a las APIs de Google Cloud (p. ej., Pub/Sub) sin almacenar claves de cuenta de servicio como secretos de Kubernetes.
→Habilite Workload Identity en el clúster de GKE. Cree una Cuenta de Servicio de Google (GSA) y una Cuenta de Servicio de Kubernetes (KSA). Vincule la KSA a la GSA usando una política de IAM. Configure el pod para usar la KSA.
Por qué: Workload Identity es la forma recomendada y sin claves para que las aplicaciones de GKE se autentiquen en los servicios de Google Cloud. Mapea las identidades de KSA a las identidades de GSA, lo cual es más seguro que gestionar y rotar archivos de clave.
Referencia↗
Una política de organización requiere que todos los datos en un bucket de Cloud Storage estén cifrados usando una clave de cifrado que la organización controla.
→Cree una clave criptográfica en Cloud KMS. Al crear el bucket de Cloud Storage, especifique esta clave como la Clave de Cifrado Gestionada por el Cliente (CMEK).
Por qué: CMEK le da control sobre la clave utilizada para el cifrado, incluyendo la rotación y revocación, mientras sigue aprovechando la infraestructura de cifrado gestionada por Google.
Permitir a los empleados usar sus credenciales existentes de Active Directory local para acceder a los recursos de Google Cloud.
→Configure Cloud Identity para federar con Active Directory usando SAML 2.0. Los usuarios se autentican con AD, que luego afirma su identidad a Google Cloud para el acceso.
Por qué: La federación permite el Inicio de Sesión Único (SSO) y centraliza la gestión de identidades en el IdP existente (Active Directory), evitando la necesidad de gestionar un conjunto separado de contraseñas en Google Cloud.
Otorgar a un contratista externo acceso temporal a un proyecto, que debería expirar automáticamente después de 30 días.
→Agregue al contratista como miembro de IAM con el rol requerido. Agregue una condición a la vinculación de roles con una marca de tiempo de expiración (`request.time < timestamp("YYYY-MM-DDTHH:MM:SSZ")`).
Por qué: Las Condiciones de IAM proporcionan control de acceso basado en atributos. Las condiciones basadas en tiempo son perfectas para accesos temporales, ya que revocan automáticamente los permisos sin necesidad de limpieza manual.