Tema 5 de 10
El apartado 3.2 del temario empieza por Cloud Storage: gestionar y proteger los objetos de los buckets, configurar políticas de ciclo de vida y estimar el coste del almacenamiento. Las clases y ubicaciones de los buckets están en el dominio D2.
Contenido
Uniforme (recomendado)
Detallado (fine-grained)
IAM y ACL funcionan en paralelo
Basta con que uno de los dos conceda acceso. Si el IAM del bucket solo deja leer a unos pocos pero un objeto tiene una ACL pública, ese objeto queda expuesto. IAM no ve los permisos de las ACL ni al revés. La restricción de organización storage.uniformBucketLevelAccess forma parte de la security baseline.
| Rol | Qué permite |
|---|---|
Storage Object Viewerroles/storage.objectViewer | Ver objetos y sus metadatos (sin ACL) y listar los objetos del bucket |
Storage Object Creatorroles/storage.objectCreator | Crear objetos; no ver, borrar ni sobrescribir |
Storage Object Userroles/storage.objectUser | Crear, leer, actualizar y borrar objetos y subidas multiparte |
Storage Object Adminroles/storage.objectAdmin | Control total de los objetos |
Storage Adminroles/storage.admin | Control total de objetos y buckets (en un bucket, solo de ese bucket) |
gcloud storage buckets add-iam-policy-binding gs://my-bucket \ --member=group:analysts@example.com --role=roles/storage.objectViewer
Dan acceso de lectura o escritura temporal a un objeto mediante una URL que tú generas. Cualquiera que tenga la URL puede usarla durante el tiempo indicado, tenga o no cuenta de usuario. Se usan además de IAM y ACL. La caducidad máxima es de 7 días (604 800 segundos).
gcloud storage sign-url gs://my-bucket/report.pdf --duration=2h \ --impersonate-service-account=SA_EMAIL
Cuando se aplica, nadie puede hacer públicos los datos del bucket mediante políticas IAM ni ACL. Se aplica a buckets concretos o con la restricción de organización storage.publicAccessPrevention a nivel de proyecto, carpeta u organización (Google recomienda el nivel más alto posible). Un bucket puede heredarla aunque no la tenga en su configuración.
No afecta a la creación y uso de URL firmadas, porque ese acceso se concede con permisos de cuentas de servicio.
| Función | Qué hace |
|---|---|
| Soft delete | Conserva los objetos y buckets borrados o sobrescritos para poder restaurarlos. Activado por defecto con 7 días, ajustable entre 7 y 90; 0 lo desactiva. Puede encarecer buckets con datos temporales |
| Versiones de objetos | Al reemplazar o borrar un objeto, guarda la versión anterior como no actual, identificada por su número de generación. Google recomienda soft delete para protegerse de borrados; las versiones no protegen frente al borrado del bucket |
| Política de retención (Bucket Lock) | Los objetos no se pueden borrar ni reemplazar hasta cumplir el periodo (error 403 retentionPolicyNotMet). Se aplica también a los objetos existentes |
| Bloqueo de la política | Irreversible: no se puede quitar ni reducir el periodo, solo aumentarlo. El bucket no se puede borrar hasta que todos sus objetos cumplan la retención |
Bucket Lock, junto con el registro de auditoría detallado, ayuda a cumplir normativas como FINRA, SEC y CFTC. Object Retention Lock permite definir la retención objeto a objeto.
Una configuración de ciclo de vida se define en el bucket y contiene reglas. Cada regla tiene una acción y una o más condiciones; el objeto debe cumplirlas todas.
Delete
Borra el objeto (pasa a soft delete si está activo). Con versiones, borrar la versión activa la convierte en no actual. No actúa si hay una retención o un hold pendiente.
SetStorageClass
Cambia la clase hacia una más fría: Standard → Nearline, Coldline o Archive; Nearline → Coldline o Archive; Coldline → Archive. No se usa con Autoclass.
AbortIncompleteMultipartUpload
Cancela subidas multiparte incompletas. Solo con age, matchesPrefix y matchesSuffix.
Condiciones: age, createdBefore, customTimeBefore, daysSinceCustomTime, daysSinceNoncurrentTime, isLive, matchesStorageClass, matchesPrefix/matchesSuffix, noncurrentTimeBefore, numNewerVersions y tamaño.
{
"rule": [
{ "action": { "type": "SetStorageClass", "storageClass": "COLDLINE" },
"condition": { "age": 365, "matchesStorageClass": ["STANDARD"] } },
{ "action": { "type": "Delete" },
"condition": { "numNewerVersions": 3, "isLive": false } }
]
}
gcloud storage buckets update gs://my-bucket --lifecycle-file=lifecycle.json| Componente | De qué depende |
|---|---|
| Almacenamiento | Datos guardados, según clase y ubicación del bucket |
| Procesamiento | Operaciones (clase A, clase B y gratuitas), tarifas de recuperación de las clases frías y replicación entre regiones |
| Red | Datos leídos o movidos entre buckets y salida de datos |
| Borrado anticipado | Borrar antes de la duración mínima de Nearline, Coldline o Archive |
La calculadora de precios de Google Cloud crea estimaciones a partir de tus supuestos y permite compartirlas; Google advierte que pueden no coincidir con la factura real. Para bases de datos como BigQuery se tiene en cuenta además el almacenamiento a largo plazo (tablas sin cambios durante 90 días) y el modelo de cómputo.
| Situación | Respuesta | Por qué |
|---|---|---|
| Dar a un cliente sin cuenta de Google acceso de lectura a un archivo durante 2 horas | URL firmada | Acceso temporal sin cuenta. |
| Asegurarse de que ningún bucket de la organización se haga público | Restricción storage.publicAccessPrevention | Se aplica a proyecto, carpeta u organización. |
| Gestionar permisos solo con IAM y sin ACL por objeto | Acceso uniforme a nivel de bucket | Recomendado; desactiva las ACL. |
| Pasar a Coldline los objetos de más de 365 días | Regla de ciclo de vida SetStorageClass con age | Automático según condiciones. |
| Conservar solo las 3 versiones más recientes de cada objeto | Regla Delete con numNewerVersions | Requiere versiones de objetos. |
| Retención inmutable de registros financieros durante 7 años | Política de retención bloqueada (Bucket Lock) | No se puede reducir ni quitar. |
| Recuperar un objeto borrado por error hace 3 días | Restaurarlo desde soft delete | Se conserva 7 días por defecto. |
| Calcular cuánto costará guardar 50 TB en Nearline | Calculadora de precios de Google Cloud | Estimación según tus supuestos. |
❓ ¿Cuánto puede durar como máximo una URL firmada?
7 días (604 800 segundos).
❓ ¿Se puede desactivar el acceso uniforme a nivel de bucket?
Solo durante 90 días después de activarlo; después es permanente.
❓ ¿Se puede quitar una política de retención bloqueada?
No. Tampoco reducir el periodo; solo aumentarlo.
❓ ¿Una regla de ciclo de vida puede pasar un objeto de Coldline a Nearline?
No. Solo hacia clases más frías; la transición no se produciría.
❓ ¿Cuánto tarda en aplicarse un cambio del ciclo de vida?
Hasta 24 horas, y mientras puede seguir aplicándose la configuración anterior.
❓ ¿Las versiones de objetos protegen si alguien borra el bucket?
No. Solo soft delete permite recuperar objetos de un bucket borrado.
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una aplicación debe permitir que clientes externos, sin cuenta de Google, descarguen su factura en PDF durante las 24 horas siguientes a la compra. El bucket debe seguir siendo privado. ¿Qué usa?
Preguntas originales, cada una con su explicación.
Empezar un simulacro