En esta página, se explica cómo crear buckets de almacenamiento de escritura única y lectura múltiple (WORM) en entornos aislados de Google Distributed Cloud (GDC). En este lab, se abordan los requisitos previos y los pasos para crear un bucket de WORM con un período de retención definido y para otorgar permisos de acceso con vinculaciones de roles. Esta información te permite aplicar prácticas estrictas de retención de datos y de inmutabilidad, lo que proporciona un almacén de datos sólido y que cumple con las normativas para registros y casos de uso, como el registro de auditoría.
Esta página está dirigida a públicos como administradores de TI dentro del grupo de operadores de infraestructura o desarrolladores dentro del grupo de operadores de aplicaciones que administran la configuración de retención de datos y cumplimiento para los buckets de almacenamiento en entornos de GDC aislado. Para obtener más información, consulta Públicos de la documentación de GDC aislado.
Antes de comenzar
Los buckets de almacenamiento son recursos que se limitan a un proyecto específico. El proyecto actúa como un contenedor, agrupa tus buckets y habilita su administración a través del servidor de la API de Management. Antes de realizar las operaciones de esta página, debes crear un proyecto nuevo o seleccionar uno existente en el que tengas los permisos suficientes.
Roles de IAM obligatorios
Comunícate con el administrador de IAM de tu proyecto para solicitar los siguientes roles en el espacio de nombres del proyecto:
- Administrador de proyectos de buckets (
project-bucket-admin): Crea, actualiza y borra buckets de almacenamiento. - Visualizador de proyectos de objetos de bucket (
project-bucket-object-viewer): Permite ver y verificar los detalles de los buckets y objetos de almacenamiento.
Para obtener más información, consulta Otorga acceso al bucket.
Prepara el entorno
Para ejecutar comandos en el servidor de la API de administración o en el servidor de la API global, haz lo siguiente:
- Accede y genera el archivo kubeconfig para el servidor de la API de administración zonal si no tienes uno.
- En el caso de los buckets de zona doble, haz lo siguiente:
- Verifica con tu operador de infraestructura (IO) que se haya creado el recurso personalizado
BucketLocationConfigpara tus zonas vinculadas. - Genera el archivo kubeconfig para el servidor de la API global.
- Verifica con tu operador de infraestructura (IO) que se haya creado el recurso personalizado
Crea un bucket de WORM
Un bucket de WORM garantiza que nada más reemplace los objetos y los retiene durante un período mínimo. El registro de auditoría es un ejemplo de caso de uso para un bucket de WORM.
Sigue estos pasos para crear un bucket de WORM:
Establece un período de retención cuando crees el bucket. El período de retención define cuántos días se bloquea cada versión del objeto para que no se borre ni se modifique. Este período de retención es distinto de la duración mínima de almacenamiento de la clase de almacenamiento (como el mínimo de 30 días para la clase de almacenamiento
Standard). Por ejemplo, el siguiente bucket establece un período de retención de 365 días. Comunícate con tu operador de infraestructura (IO) si necesitas superar los límites de la política de retención.apiVersion: object.gdc.goog/v1 kind: Bucket metadata: name: foo-logging-bucket namespace: foo-service spec: description: "Audit logs for foo" storageClass: Standard bucketPolicy: lockingPolicy: defaultObjectRetentionDays: 365Otorga el rol
project-bucket-object-viewera todos los usuarios que necesiten acceso de solo lectura:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: foo-service name: object-readonly-access roleRef: kind: Role name: project-bucket-object-viewer apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-log-processor - kind: User name: bob@example.com apiGroup: rbac.authorization.k8s.ioOtorga el rol
project-bucket-object-admina los usuarios que necesiten escribir contenido en el bucket:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: namespace: foo-service name: object-write-access roleRef: kind: Role name: project-bucket-object-admin apiGroup: rbac.authorization.k8s.io subjects: - kind: ServiceAccount namespace: foo-service name: foo-service-account